本文介绍了浅谈原生JS实现jQuery的animate()动画示例,希望此文章对各位有所帮助。

参数介绍:
| obj |
执行动画的元素 |
| css | JSON数值对,形式为“{属性名: 属性值}",指要执行动画的书序及其对应值 |
| interval |
属性每执行一次改变的时间间隔 |
| speedFactor | 速度因子,使动画具有缓冲效果,而不是匀速不变(speedFactor为1) |
| func | 执行完动画后的回调函数 |
注意:
必须为每一个元素分别添加一个定时器,否则会互相影响。
cur != css[arr]判断是否每一个属性已经达到目标值。只有所有属性都达到目标值,才会清除定时器,flag的作用是防止某个属性第一个达到目标值但还有其他属性没有达到目标值的情况下清除定时器。因此,在每次改变前初始化flag为true,只要遇到一个没有达到目标的属性,就将flag置为false,直至所有属性达到目标值才清除定时器。
属性值opacity的值有小数,所以需要特殊处理: Math.ceil(speed)和Math.floor(speed)以及* 100和 / 100操作。
function animate(obj, css, interval, speedFactor, func) {
clearInterval(obj.timer);
function getCss(obj, prop) {
if (obj.currentStyle)
return obj.currentStyle[prop]; // ie
else
return document.defaultView.getComputedStyle(obj, null)[prop]; // 非ie
}
obj.timer = setInterval(function(){
var flag = true;
for (var prop in css) {
var cur = 0;
if(prop == "opacity")
cur = Math.round(parseFloat(getStyle(obj, prop)) * 100);
else
cur = parseInt(getStyle(obj, prop));
var speed = (css[prop] - cur) * speedFactor;
speed = speed > 0 ? Math.ceil(speed): Math.floor(speed);
if (cur != css[prop])
flag = false;
if (prop == "opacity") {
obj.style.filter = "alpha(opacity : '+(cur + speed)+' )";
obj.style.opacity = (cur + speed) / 100;
}
else
obj.style[prop] = cur + speed + "px";
}
if (flag) {
clearInterval(obj.timer);
if (func)
func();
}
}, interval);
}
var li = document.getElementsByTagName("li");
for(var i = 0; i < li.length; i ++){
li[i].onmouseover = function(){
animate(this, {width: 100, opacity: 0.5}, 10, 0.01, function(){
alert("Finished!");
});
}
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# 原生js实现animate
# jquery
# animate
# 原生js
# 原生JS封装animate运动框架的实例
# jQuery animate()实现背景色渐变效果的处理方法【使用jQuery.color.js插件
# 原生js实现jquery函数animate()动画效果的简单实例
# 原生js仿jquery animate动画效果
# js实现类似jquery里animate动画效果的方法
# js动画(animate)简单引擎代码示例
# 用js实现的模拟jquery的animate自定义动画(2.5K)
# javascript 中动画制作方法 animate()属性
# 第一个
# 才会
# 的书
# 就将
# 浅谈
# 则会
# 回调
# 大家多多
# 而不是
# 判断是否
# 情况下
# arr
# cur
# func
# alert
# speedFactor
# false
# width
# Math
# opacity
相关文章:
如何设置并定期更换建站之星安全管理员密码?
建站之星ASP如何实现CMS高效搭建与安全管理?
PHP正则匹配日期和时间(时间戳转换)的实例代码
如何挑选最适合建站的高性能VPS主机?
盐城做公司网站,江苏电子版退休证办理流程?
建站主机是否等同于虚拟主机?
如何在万网自助建站平台快速创建网站?
存储型VPS适合搭建中小型网站吗?
深圳网站制作平台,深圳市做网站好的公司有哪些?
测试制作网站有哪些,测试性取向的权威测试或者网站?
建站之星导航配置指南:自助建站与SEO优化全解析
建站之星下载版如何获取与安装?
如何解决VPS建站LNMP环境配置常见问题?
如何在宝塔面板中修改默认建站目录?
如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?
建站主机如何安装配置?新手必看操作指南
长沙企业网站制作哪家好,长沙水业集团官方网站?
Swift开发中switch语句值绑定模式
如何在企业微信快速生成手机电脑官网?
专业网站建设制作报价,网页设计制作要考什么证?
外贸公司网站制作哪家好,maersk船公司官网?
韩国网站服务器搭建指南:VPS选购、域名解析与DNS配置推荐
制作网站的基本流程,设计网站的软件是什么?
香港服务器网站搭建教程-电商部署、配置优化与安全稳定指南
怎么制作一个起泡网,水泡粪全漏粪育肥舍冬季氨气超过25ppm,可以有哪些措施降低舍内氨气水平?
盘锦网站制作公司,盘锦大洼有多少5G网站?
文字头像制作网站推荐软件,醒图能自动配文字吗?
如何在新浪SAE免费搭建个人博客?
如何通过云梦建站系统实现SEO快速优化?
手机怎么制作网站教程步骤,手机怎么做自己的网页链接?
如何在阿里云通过域名搭建网站?
如何做网站制作流程,*游戏网站怎么搭建?
网站制作企业,网站的banner和导航栏是指什么?
建站之星免费版是否永久可用?
如何制作新型网站程序文件,新型止水鱼鳞网要拆除吗?
如何在建站之星网店版论坛获取技术支持?
如何快速使用云服务器搭建个人网站?
公司门户网站制作公司有哪些,怎样使用wordpress制作一个企业网站?
制作网页的网站有哪些,电脑上怎么做网页?
香港服务器部署网站为何提示未备案?
如何解决ASP生成WAP建站中文乱码问题?
如何有效防御Web建站篡改攻击?
Python lxml的etree和ElementTree有什么区别
高端建站三要素:定制模板、企业官网与响应式设计优化
网站制作软件有哪些,制图软件有哪些?
建站之星如何保障用户数据免受黑客入侵?
如何自定义建站之星网站的导航菜单样式?
建站主机数据库如何配置才能提升网站性能?
建站VPS推荐:2025年高性能服务器配置指南
Android滚轮选择时间控件使用详解
*请认真填写需求信息,我们会在24小时内与您取得联系。