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 相关文章推荐
让网页根据不同IE版本显示不同的内容
Feb 08 Javascript
js中一个函数获取另一个函数返回值问题探讨
Nov 21 Javascript
javascript中普通函数的使用介绍
Dec 19 Javascript
js读取cookie方法总结
Oct 31 Javascript
vue2.0构建单页应用最佳实战
Apr 01 Javascript
详解RequireJS按需加载样式文件
Apr 12 Javascript
Angualrjs 表单验证的两种方式(失去焦点验证和点击提交验证)
May 09 Javascript
Angular.JS中指令ng-if的注意事项小结
Jun 21 Javascript
原生js实现密码输入框值的显示隐藏
Jul 17 Javascript
客户端(vue框架)与服务器(koa框架)通信及服务器跨域配置详解
Aug 26 Javascript
IntelliJ IDEA编辑器配置vue高亮显示
Sep 26 Javascript
Vue的全局过滤器和私有过滤器的实现
Apr 20 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
火车采集器 免费版使出收费版本功能实现原理
2009/09/17 PHP
WIN8.1下搭建PHP5.6环境
2015/04/29 PHP
php实现计算百度地图坐标之间距离的方法
2016/05/05 PHP
PHP表单数据写入MySQL数据库的代码
2016/05/31 PHP
Sample script that displays all of the users in a given SQL Server DB
2007/06/16 Javascript
Extjs4 Treegrid 使用心得分享(经验篇)
2013/07/01 Javascript
JS Date函数整理方便使用
2013/10/23 Javascript
jquery分页插件jpaginate在IE中不兼容问题
2014/04/22 Javascript
nodejs爬虫抓取数据之编码问题
2015/07/03 NodeJs
JavaScript开发Chrome浏览器扩展程序UI的教程
2016/05/16 Javascript
深入理解JS函数的参数(arguments)的使用
2016/05/28 Javascript
Angular.js实现注册系统的实例详解
2016/12/18 Javascript
JavaScript仿微信打飞机游戏
2020/07/05 Javascript
使用Browserify来实现CommonJS的浏览器加载方法
2017/05/14 Javascript
微信小程序联网请求的轮播图
2017/07/07 Javascript
关于TypeScript中import JSON的正确姿势详解
2017/07/25 Javascript
利用jQuery+localStorage实现一个简易的计时器示例代码
2017/12/25 jQuery
对于防止按钮重复点击的尝试详解
2019/04/22 Javascript
如何让Nodejs支持H5 History模式(connect-history-api-fallback源码分析)
2019/05/30 NodeJs
深入理解javascript prototype的相关知识
2019/09/19 Javascript
浅谈v-for 和 v-if 并用时筛选条件方法
2019/11/07 Javascript
node.JS二进制操作模块buffer对象使用方法详解
2020/02/06 Javascript
如何在 ant 的table中实现图片的渲染操作
2020/10/28 Javascript
python使用win32com在百度空间插入html元素示例
2014/02/20 Python
Flask框架工厂函数用法实例分析
2019/05/25 Python
从列表或字典创建Pandas的DataFrame对象的方法
2019/07/06 Python
linux环境中没有网络怎么下载python
2019/07/07 Python
python实现网站用户名密码自动登录功能
2019/08/09 Python
python实现单目标、多目标、多尺度、自定义特征的KCF跟踪算法(实例代码)
2020/01/08 Python
基于html5 canvas实现漫天飞雪效果实例
2014/09/10 HTML / CSS
网上开商店的创业计划书
2014/01/19 职场文书
《放小鸟》教学反思
2014/04/20 职场文书
委托公证书格式
2015/01/26 职场文书
2016年春季运动会通讯稿
2015/11/25 职场文书
MySQL锁机制
2021/04/05 MySQL
Java基础-封装和继承
2021/07/02 Java/Android