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 相关文章推荐
JS类库Bindows1.3中的内存释放方式分析
Mar 08 Javascript
javascript中Number对象的toString()方法分析
Dec 20 Javascript
json实现前后台的相互传值详解
Jan 05 Javascript
jQuery插件slider实现拖动滑块选取价格范围
Apr 30 Javascript
Vue.js每天必学之计算属性computed与$watch
Sep 05 Javascript
基于vue实现swipe分页组件实例
May 25 Javascript
原生javascript实现的全屏滚动功能示例
Sep 19 Javascript
简单谈谈js的数据类型
Sep 25 Javascript
JavaScript中Object值合并方法详解
Dec 22 Javascript
vue完成项目后,打包成静态文件的方法
Sep 03 Javascript
解决Layui中layer报错的问题
Sep 03 Javascript
js作用域及作用域链工作引擎
Jul 07 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
php基于PDO实现功能强大的MYSQL封装类实例
2017/02/27 PHP
thinkphp 框架数据库切换实现方法分析
2020/05/18 PHP
用JavaScript页面不刷新时全选择,全删除(GridView)
2009/04/14 Javascript
jquery 图片 上一张 下一张 链接效果(续篇)
2010/04/20 Javascript
js对象的构造和继承实现代码
2010/12/05 Javascript
jquery live()调用不存在的解决方法
2014/02/26 Javascript
jqeury-easyui-layout问题解决方法
2014/03/24 Javascript
jQuery中attr()和prop()在修改checked属性时的区别
2014/07/18 Javascript
JavaScript实现列出数组中最长的连续数
2014/12/29 Javascript
jquery获取节点名称
2015/04/26 Javascript
JavaScript类的写法
2016/09/17 Javascript
详解VUE 定义全局变量的几种实现方式
2017/06/01 Javascript
深入理解vue Render函数
2017/07/19 Javascript
Angular中自定义Debounce Click指令防止重复点击
2017/07/26 Javascript
vue添加axios,并且指定baseurl的方法
2018/09/19 Javascript
vuejs简单验证码功能完整示例
2019/01/08 Javascript
VueCli4项目配置反向代理proxy的方法步骤
2020/05/17 Javascript
解决pycharm双击但是无法打开的情况
2020/10/31 Javascript
js实现抽奖功能
2020/11/24 Javascript
调试Python程序代码的几种方法总结
2015/04/28 Python
python机器人行走步数问题的解决
2018/01/29 Python
Python cookbook(数据结构与算法)将名称映射到序列元素中的方法
2018/03/22 Python
理想高通滤波实现Python opencv示例
2019/01/30 Python
python-序列解包(对可迭代元素的快速取值方法)
2019/08/24 Python
Python编程快速上手——Excel到CSV的转换程序案例分析
2020/02/28 Python
Ruby如何定义一个类
2012/10/08 面试题
大学生职业生涯规划书范文
2014/01/04 职场文书
中级会计职业生涯规划范文
2014/01/16 职场文书
新学期家长寄语
2014/01/19 职场文书
演讲稿格式
2014/04/30 职场文书
商业项目策划方案
2014/06/05 职场文书
幼儿园见习报告
2014/10/30 职场文书
2014年工程部工作总结
2014/11/25 职场文书
祝福语集锦:送给闺蜜的生日祝福语
2019/10/08 职场文书
Java使用httpRequest+Jsoup爬取红蓝球号码
2021/07/02 Java/Android
基于Python实现西西成语接龙小助手
2022/08/05 Golang