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模拟点击事件实现代码
Nov 06 Javascript
Javascript玩转继承(三)
May 08 Javascript
JS实现一个按钮的方法
Feb 05 Javascript
javascript实现了照片拖拽点击置顶的照片墙代码
Apr 03 Javascript
jQuery实现调整表格单列顺序完整实例
Jun 20 Javascript
javascript如何创建对象
Aug 29 Javascript
AngularJS指令中的绑定策略实例分析
Dec 14 Javascript
js的继承方法小结(prototype、call、apply)(推荐)
Apr 17 Javascript
微信小程序--获取用户地理位置名称(无须用户授权)的方法
Apr 29 Javascript
jQuery实现的鼠标拖动画矩形框示例【可兼容IE8】
May 17 jQuery
通过实例了解JS 连续赋值
Sep 24 Javascript
微信小程序网络请求实现过程解析
Nov 06 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 友好URL的实现(吐血推荐)
2008/10/04 PHP
php 数组的合并、拆分、区别取值函数集
2010/02/15 PHP
浏览器关闭后,能继续执行的php函数(ignore_user_abort)
2012/08/01 PHP
php.ini save_handler 修改不生效的解决办法
2014/07/22 PHP
使用PHP进行微信公众平台开发的示例
2015/08/21 PHP
功能强大的php分页函数
2016/07/20 PHP
详解使用php-cs-fixer格式化代码
2020/09/16 PHP
javascript 关于# 和 void的区别分析
2009/10/26 Javascript
JQuery下关于$.Ready()的分析
2009/12/13 Javascript
javascript面向对象之二 命名空间
2011/02/08 Javascript
javascript代码运行不出来执行错误的可能情况整理
2013/10/18 Javascript
js采用map取到id集合组并且实现点击一行选中一行
2013/12/16 Javascript
js整数字符串转换为金额类型数据(示例代码)
2013/12/26 Javascript
JavaScript fontsize方法入门实例(按照指定的尺寸来显示字符串)
2014/10/17 Javascript
javascript产生随机数方法汇总
2016/01/25 Javascript
微信小程序教程系列之视图层的条件渲染(10)
2017/04/19 Javascript
详解vue跨组件通信的几种方法
2017/06/15 Javascript
Node.js创建一个Express服务的方法详解
2020/01/06 Javascript
基于vue-draggable 实现三级拖动排序效果
2020/01/10 Javascript
vue+vuex+axios从后台获取数据存入vuex,组件之间共享数据操作
2020/07/31 Javascript
vuex Module将 store 分割成模块的操作
2020/12/07 Vue.js
[00:53]TI3正赛第三天 DK怒破A队不败金身 现场国旗飘扬热血激昂
2013/08/10 DOTA
Python实现统计英文单词个数及字符串分割代码
2015/05/28 Python
Python赋值语句后逗号的作用分析
2015/06/08 Python
Python实现周期性抓取网页内容的方法
2015/11/04 Python
解决Python的str强转int时遇到的问题
2018/04/09 Python
Python中的Numpy矩阵操作
2018/08/12 Python
python实现微信小程序用户登录、模板推送
2019/08/28 Python
Python异常模块traceback用法实例分析
2019/10/22 Python
40个你可能不知道的Python技巧附代码
2020/01/29 Python
保时捷设计:Porsche Design
2019/03/30 全球购物
日期和时间问题
2015/01/04 面试题
教师自我反思材料
2014/02/14 职场文书
《愚公移山》教学反思
2014/02/20 职场文书
安全生产警示教育活动总结
2015/05/09 职场文书
python实现学生信息管理系统(面向对象)
2022/06/05 Python