JS实现动画兼容性的transition和transform实例分析


Posted in Javascript onDecember 13, 2016

本文实例讲述了JS实现动画兼容性的transition和transform方法。分享给大家供大家参考,具体如下:

今天在开发纯手工js打造图片滚动效果的时候,遇到一件不愉快的兼容事件。

之前js设置图片滚动动画效果如下:

var addSlideStyle = function(time, leftWidth) {
 time = time || 0;
 leftWidth = leftWidth || 0;
 return 'transition: all ' + time + 's ease-in-out; transform: translate3d(' + leftWidth + 'px, 0px, 0px);';
};

使用如下:

slideUlObj.style = addSlideStyle();

以上使用js设置style样式的方式实现,在pc端显示的各种好,可以自动滚动,一到手机上面各种不兼容就出来了。在addSlideStyle里面添加-webkit-前缀也没有得以解决。

于是乎,各种搜索原来是mobile的兼容问题,改成js设置动画:

var setTransition = function(obj, time) {
 time = time || 0;
 var style = 'all ' + time + 's ease-in-out';
 obj.style.webkitTransition = style;
 obj.style.transition = style;
};
var setTransform = function(obj, leftWidth) {
 leftWidth = leftWidth || 0;
 var style = 'translate3d(' + leftWidth + 'px, 0px, 0px)';
 obj.style.webkitTransform = style;
 obj.style.transform = style;
};
var setAnimate = function(obj, time, leftWidth) {
 setTransition(obj, time);
 setTransform(obj, leftWidth);
};

调用如下:

setAnimate(slideUlObj);

知识小科普:其中设置各种浏览器兼容性格式如下

webkitProperty
MozProperty
msProperty
OProperty
property

调用如下:

element.style.webkitTransform = "";
element.style.MozTransform = "";
element.style.msTransform = "";
element.style.OTransform = "";
element.style.transform = "";

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
如何在一个页面显示多个百度地图
Apr 07 Javascript
jquery动态调整div大小使其宽度始终为浏览器宽度
Jun 06 Javascript
node.js中的querystring.stringify方法使用说明
Dec 10 Javascript
JavaScript中的slice()方法使用详解
Jun 06 Javascript
JS判断字符串变量是否含有某个字串的实现方法
Jun 03 Javascript
easyui取消表单实时验证,提交时统一验证的简单实例
Nov 07 Javascript
Node.js使用Express创建Web项目详细教程
Mar 31 Javascript
Angular中封装fancyBox(图片预览)遇到问题小结
Sep 01 Javascript
浅谈如何使用webpack构建多页面应用
May 30 Javascript
详解webpack引用jquery(第三方模块)的三种办法
Aug 21 jQuery
v-slot和slot、slot-scope之间相互替换实例
Sep 04 Javascript
JavaScript实现淘宝商品图切换效果
Apr 29 Javascript
简单实现js浮动框
Dec 13 #Javascript
javascript中this关键字详解
Dec 12 #Javascript
深入理解javascript函数参数与闭包
Dec 12 #Javascript
smartupload实现文件上传时获取表单数据(推荐)
Dec 12 #Javascript
Javascript中call,apply,bind方法的详解与总结
Dec 12 #Javascript
微信小程序开发之圆形菜单 仿建行圆形菜单实例
Dec 12 #Javascript
深入理解javascript中concat方法
Dec 12 #Javascript
You might like
thinkphp实现上一篇与下一篇的方法
2014/12/08 PHP
php中使用key,value,current,next和prev函数遍历数组的方法
2015/03/17 PHP
Centos 6.5下PHP 5.3安装ffmpeg扩展的步骤详解
2017/03/02 PHP
js调试工具 Javascript Debug Toolkit 2.0.0版本发布
2008/12/02 Javascript
用JavaScript页面不刷新时全选择,全删除(GridView)
2009/04/14 Javascript
JQuery写动态树示例代码
2013/07/31 Javascript
快速解决jQuery与其他库冲突的方法介绍
2014/01/02 Javascript
js判断手机号运营商的方法
2015/10/23 Javascript
理解js对象继承的N种模式
2016/01/25 Javascript
Three.js学习之几何形状
2016/08/01 Javascript
浅谈js中startsWith 函数不能在任何浏览器兼容的问题
2017/03/01 Javascript
使用nvm管理不同版本的node与npm的方法
2017/10/31 Javascript
分享ES6的7个实用技巧
2018/01/18 Javascript
详解.vue文件中style标签的几个标识符
2018/07/17 Javascript
详解vue-cli3 中跨域解决方案
2019/04/10 Javascript
Js通过AES加密后PHP用Openssl解密的方法
2019/07/12 Javascript
vuex管理状态 刷新页面保持不被清空的解决方案
2019/11/11 Javascript
python用模块zlib压缩与解压字符串和文件的方法
2016/12/16 Python
Django验证码的生成与使用示例
2017/05/20 Python
Python对字符串实现去重操作的方法示例
2017/08/11 Python
Python3之读取连接过的网络并定位的方法
2018/04/22 Python
Python中最大递归深度值的探讨
2019/03/05 Python
python定时按日期备份MySQL数据并压缩
2019/04/19 Python
图文详解Django使用Pycharm连接MySQL数据库
2019/08/09 Python
python3.8下载及安装步骤详解
2020/01/15 Python
Django中的模型类设计及展示示例详解
2020/05/29 Python
浅谈django框架集成swagger以及自定义参数问题
2020/07/07 Python
css3 按钮 利用css3实现超酷下载按钮
2013/03/18 HTML / CSS
如何使用canvas绘制可移动网格的示例代码
2020/12/14 HTML / CSS
阿联酋电子产品购物网站:Menakart
2017/09/15 全球购物
如何从一个文件档案的尾端新增记录
2016/12/02 面试题
会计实习生自我鉴定
2013/12/12 职场文书
网站推广策划方案
2014/06/04 职场文书
经理岗位职责
2015/02/02 职场文书
Nginx+Tomcat实现负载均衡、动静分离的原理解析
2021/03/31 Servers
浅析MongoDB之安全认证
2021/06/26 MongoDB