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 相关文章推荐
Exjs 入门篇
Apr 07 Javascript
JavaScript中使用构造器创建对象无需new的情况说明
Mar 01 Javascript
编写针对IE的JS代码两种编写方法
Jan 30 Javascript
js几秒以后倒计时跳转示例
Dec 26 Javascript
JavaScript中数据结构与算法(一):栈
Jun 19 Javascript
基于jQuery Bar Indicator 插件实现进度条展示效果
Sep 30 Javascript
Js 获取当前函数参数对象的实现代码
Jun 20 Javascript
JS实现物体带缓冲的间歇运动效果示例
Dec 22 Javascript
Map.vue基于百度地图组件重构笔记分享
Apr 17 Javascript
微信小程序实战之仿android fragment可滑动底部导航栏(4)
Apr 16 Javascript
详解Angular6 热加载配置方案
Aug 18 Javascript
JavaScript代理模式原理与用法实例详解
Mar 10 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
收听短波不可能有声音清晰的品质吗
2021/03/01 无线电
PHP setcookie指定domain参数后,在IE下设置cookie失效的解决方法
2011/09/09 PHP
PHP统计数值数组中出现频率最多的10个数字的方法
2015/04/20 PHP
linux平台编译安装PHP7并安装Redis扩展与Swoole扩展实例教程
2016/09/30 PHP
ThinkPHP实现静态缓存和动态缓存示例代码
2017/05/02 PHP
php中字符串和整数比较的操作方法
2019/06/06 PHP
用js实现手把手教你月入万刀(转贴)
2007/11/07 Javascript
js 颜色选择器(兼容firefox)
2009/03/05 Javascript
让div层随鼠标移动的实现代码 ie ff
2009/12/18 Javascript
jQuery队列控制方法详解queue()/dequeue()/clearQueue()
2010/12/02 Javascript
把jQuery的类、插件封装成seajs的模块的方法
2014/03/12 Javascript
jquery实现类似淘宝星星评分功能有截图
2014/09/15 Javascript
MVC Ajax Helper或Jquery异步加载部分视图
2015/11/29 Javascript
jqPlot jQuery绘图插件的使用
2016/06/18 Javascript
JS生成不重复的随机数组的简单实例
2016/07/10 Javascript
JavaScript 中Date对象的格式化代码方法汇总
2017/09/06 Javascript
javascript json字符串到json对象转义问题
2019/01/22 Javascript
Layui带搜索的下拉框的使用以及动态数据绑定方法
2019/09/28 Javascript
解决ant design vue中树形控件defaultExpandAll设置无效的问题
2020/10/26 Javascript
Python简单爬虫导出CSV文件的实例讲解
2018/07/06 Python
Python发送邮件功能示例【使用QQ邮箱】
2018/12/04 Python
python实现石头剪刀布程序
2021/01/20 Python
Django REST框架创建一个简单的Api实例讲解
2019/11/05 Python
python词云库wordCloud使用方法详解(解决中文乱码)
2020/02/17 Python
Python logging日志模块 配置文件方式
2020/07/12 Python
CSS3 选择器 基本选择器介绍
2012/01/21 HTML / CSS
详解CSS3+JS完美实现放大镜模式
2020/12/03 HTML / CSS
计划生育宣传标语
2014/06/21 职场文书
2015年幼师工作总结
2015/04/28 职场文书
结婚堵门保证书
2015/05/08 职场文书
军事博物馆观后感
2015/06/05 职场文书
2016继续教育研修日志
2015/11/13 职场文书
导游词之舟山普陀山
2019/11/06 职场文书
如何使用CocosCreator对象池
2021/04/14 Javascript
python 中的@运算符使用
2021/05/26 Python
超越Nginx的Web服务器caddy优雅用法
2022/06/21 Servers