如何用原生JS实现类似jQuery的animate动画效果?
- 内容介绍
- 相关推荐
本文共计878个文字,预计阅读时间需要4分钟。
使用原生JS实现jq的animate效果(存在一定bug,有时时间补上):javascript@param obj 执行动画的元素@param css JSON数值对,格式为{属性名:属性值},指示执行动画的属性及值例如:javascriptanimate(document.getElementById('element'), {width: 200, height: 100});
原生js实现jq的animate效果(有一定bug未修复,有时间补上)//原生js实现jq的animate效果 /** *@param obj 执行动画的元素 *@param css JSON数值对,形式为“{属性名: 属性值}",指要执行动画的书序及其对应值 *@param interval 属性每执行一次改变的时间间隔 *@param speedFactor 速度因子,使动画具有缓冲效果,而不是匀速不变(speedFactor为1) *@param func 执行完动画后的回调函数 */ // 必须为每一个元素分别添加一个定时器,否则会互相影响。 // cur != css[arr]判断是否每一个属性已经达到目标值。 // 只有所有属性都达到目标值,才会清除定时器,flag的作用是防止某个属性第一个达到目标值但还有其他属性没有达到目标值的情况下清除定时器。 // 因此,在每次改变前初始化flag为true,只要遇到一个没有达到目标的属性,就将flag置为false,直至所有属性达到目标值才清除定时器。 // 属性值opacity的值有小数,所以需要特殊处理: Math.ceil(speed)和Math.floor(speed)以及* 100和 / 100操作。
本文共计878个文字,预计阅读时间需要4分钟。
使用原生JS实现jq的animate效果(存在一定bug,有时时间补上):javascript@param obj 执行动画的元素@param css JSON数值对,格式为{属性名:属性值},指示执行动画的属性及值例如:javascriptanimate(document.getElementById('element'), {width: 200, height: 100});
原生js实现jq的animate效果(有一定bug未修复,有时间补上)//原生js实现jq的animate效果 /** *@param obj 执行动画的元素 *@param css JSON数值对,形式为“{属性名: 属性值}",指要执行动画的书序及其对应值 *@param interval 属性每执行一次改变的时间间隔 *@param speedFactor 速度因子,使动画具有缓冲效果,而不是匀速不变(speedFactor为1) *@param func 执行完动画后的回调函数 */ // 必须为每一个元素分别添加一个定时器,否则会互相影响。 // cur != css[arr]判断是否每一个属性已经达到目标值。 // 只有所有属性都达到目标值,才会清除定时器,flag的作用是防止某个属性第一个达到目标值但还有其他属性没有达到目标值的情况下清除定时器。 // 因此,在每次改变前初始化flag为true,只要遇到一个没有达到目标的属性,就将flag置为false,直至所有属性达到目标值才清除定时器。 // 属性值opacity的值有小数,所以需要特殊处理: Math.ceil(speed)和Math.floor(speed)以及* 100和 / 100操作。

