我是靠谱客的博主 饱满店员,最近开发中收集的这篇文章主要介绍js的animate函数,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

/*
 	动画函数:
 		dom:要运动的节点对象
 		o:{属性:目标值,属性:目标值....}  (透明度使用属性:opacity:100) 透明度的值是0-100;  里面的opacity 和  filter会自动做转换。
 		time:切换的频率,表示运动的快慢
 		fn:回调函数,在运动执行完毕后执行。
 */
                             function animate(dom, o,time,fn) {
				if(time==undefined){  //默认的切换频率
					time=10;
				}
				//dom.termId :为每一个运动的物体添加一个属于自己的线程标识
				clearInterval(dom.termId);

				dom.termId = setInterval(function() { //创建一个定时器,实现运动
					dom.isOver = true; //是否可以停止定時器
					for (var property in o) {
						if (property == "opacity") {//如果是透明度
							var currentValue = parseInt(getStylePropertyValue(dom, property) * 100); //当前样式属性的值		
						} else{//其他样式属性
							var currentValue = parseInt(getStylePropertyValue(dom, property)); 当前样式属性的值
						}
						
						//速度   正速度  负速度
						var speed = (o[property] - currentValue) / 10;
						// 三元表达式  三目运算符
						speed = currentValue > o[property] ? Math.floor(speed) : Math.ceil(speed)

						currentValue += speed; //改变样式属性的值

						if (currentValue != o[property]) {
							dom.isOver = false; //標識不停止定時器
						}

						if (property == "opacity") {
							dom.style.opacity = currentValue / 100;
							dom.style.filter = 'alpha(opacity= ' + currentValue + ')';
						} else {
							dom.style[property] = currentValue + "px"; //改变物体的样式属性值		
						}

					}

					if (dom.isOver) {  //停止定时器
						clearInterval(dom.termId);
						if(fn){  //执行回调函数
							fn();
						}
					}

				}, time)  //基于切换的频率来改变运动的快慢

			}

			/*获取指定样式的属性值*/
			function getStylePropertyValue(dom, property) {
				if (window.getComputedStyle) { //標準瀏覽器
					//
					return getComputedStyle(dom, null)[property];
				} else {
					return dom.currentStyle[property]; //IE瀏覽器
				}
			}
		

最后

以上就是饱满店员为你收集整理的js的animate函数的全部内容,希望文章能够帮你解决js的animate函数所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(61)

评论列表共有 0 条评论

立即
投稿
返回
顶部