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 相关文章推荐
jQuery学习笔记之jQuery的动画
Dec 22 Javascript
让页面上两个div中的滚动条(滑块)同步运动示例
Aug 07 Javascript
jquery制作搜狐快站页面效果示例分享
Feb 21 Javascript
JSON键值对序列化和反序列化解析
Jan 24 Javascript
vue-cli如何添加less 以及sass
Jul 06 Javascript
JS实现图片居中悬浮效果
Dec 25 Javascript
VueJs里利用CryptoJs实现加密及解密的方法示例
Apr 29 Javascript
jQuery与原生JavaScript选择HTML元素集合用法对比分析
Nov 26 jQuery
vue如何使用async、await实现同步请求
Dec 09 Javascript
5分钟快速看懂ES6中的反射与代理
Dec 19 Javascript
解决vue组件销毁之后计时器继续执行的问题
Jul 21 Javascript
Vue实现点击导航栏当前标签后变色功能
Aug 19 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中Session的概念
2006/10/09 PHP
php生成excel列序号代码实例
2013/12/24 PHP
CodeIgniter框架提示Disallowed Key Characters的解决办法
2014/04/21 PHP
ThinkPHP3.1新特性之字段合法性检测详解
2014/06/19 PHP
Prototype使用指南之form.js
2007/01/10 Javascript
JS加ASP二级域名转向的代码
2007/05/17 Javascript
比较搞笑的js陷阱题
2010/02/07 Javascript
Prototype源码浅析 String部分(四)之补充
2012/01/16 Javascript
js中eval详解
2012/03/30 Javascript
基于js disabled="false"不起作用的解决办法
2013/06/26 Javascript
查询json的数据结构的8种方式简介
2014/03/10 Javascript
Javascript遍历Html Table示例(包括内容和属性值)
2014/07/08 Javascript
浅谈javascript中的DOM方法
2015/07/16 Javascript
JavaScript 性能优化小结
2015/10/12 Javascript
JavaScript中最容易混淆的作用域、提升、闭包知识详解(推荐)
2016/09/05 Javascript
微信小程序中顶部导航栏的实现代码
2017/03/30 Javascript
Google 爬虫如何抓取 JavaScript 的内容
2017/04/07 Javascript
JavaScript实现焦点进入文本框内关闭输入法的核心代码
2017/09/20 Javascript
Python中Collection的使用小技巧
2014/08/18 Python
python通过getopt模块如何获取执行的命令参数详解
2017/12/29 Python
Jupyter notebook在mac:linux上的配置和远程访问的方法
2019/01/14 Python
Python编程学习之如何判断3个数的大小
2019/08/07 Python
Pytorch修改ResNet模型全连接层进行直接训练实例
2019/09/10 Python
opencv中图像叠加/图像融合/按位操作的实现
2020/04/01 Python
加拿大最大的书店:Indigo
2017/01/01 全球购物
英国领先的男士服装和时尚零售商:Burton
2017/01/09 全球购物
德国最大的婴儿用品网上商店:Kidsroom.de(支持中文)
2020/09/02 全球购物
如何写自我鉴定
2014/03/19 职场文书
小学班级口号
2014/06/09 职场文书
ktv服务员岗位职责
2015/02/09 职场文书
应届生简历自我评价
2015/03/11 职场文书
铁人观后感
2015/06/16 职场文书
学校运动会通讯稿
2015/07/18 职场文书
校运会广播稿
2015/08/19 职场文书
MySQL 那些常见的错误设计规范,你都知道吗
2021/07/16 MySQL
postgresql如何找到表中重复数据的行并删除
2023/05/08 MySQL