js+css3实现旋转效果


Posted in Javascript onJanuary 20, 2017

我的前面一张文章实现了用css3制作旋转的效果,现在呢,我换另外一种方法来实现.就是使用js结合css3的方法来实现的.下面我就先上图给大家看看效果吧

js+css3实现旋转效果

下面呢我先放上我的css代码,代码很简单:

.one{
width:200px;
height: 200px;
border:1px solid #adadad;
transition:all 0.1s;
border-radius:50%;
background:url(images/1.jpg) no-repeat center center;
background-size:cover;
margin:50px auto;
}

上面的代码大家都看得懂,我就不介绍了.我重点讲的是js的代码部分.

window.onload=function(){
 var div=document.getElementsByClassName("one")[0];
 console.log(div);
 setCss3(div,{transform:"rotate(10deg)","transform-origin":"50% 50%"})
 var angel=0;
 setInterval(function(){
 angel+=8;
 setCss3(div,{transform:"rotate("+angel+"deg)","transform-origin":"0 0"})
 },30)
 function setCss3(obj,objAttr){
 //循环属性对象
 for(var i in objAttr){
 var newi=i;
 //判断是否存在transform-origin这样格式的属性
 if(newi.indexOf("-")>0){
 var num=newi.indexOf("-");
 newi=newi.replace(newi.substr(num,2),newi.substr(num+1,1).toUpperCase());
 }
 //考虑到css3的兼容性问题,所以这些属性都必须加前缀才行
 obj.style[newi]=objAttr[i];
 newi=newi.replace(newi.charAt(0),newi.charAt(0).toUpperCase());
 obj.style[newi]=objAttr[i];
 obj.style["webkit"+newi]=objAttr[i];
 obj.style["moz"+newi]=objAttr[i];
 obj.style["o"+newi]=objAttr[i];
 obj.style["ms"+newi]=objAttr[i];
 }
 }
}

我在这就把相对的难点讲一下:

if(newi.indexOf("-")>0){
  var num=newi.indexOf("-");
  newi=newi.replace(newi.substr(num,2),newi.substr(num,2).toUpperCase());
 }

newi=newi.replace(newi.substr(num,2),newi.substr(num,2).toUpperCase());

这一句代码其实就是把首字母转成是大写的

({transform:"rotate(10deg)","transform-origin":"0 0"))

因为在js中修改样式的时候,是不存在-webkit-transformz这样的格式的,两个单词之间的"-"是必须要省略掉的,换成第二个单词的字母为大写.所以主要就是把这个处理好了之后久ok了<br><span style="color: #ff0000">注意点:1.因为如果不添加css3的过渡属性的话,旋转的时候是会有种卡顿效果的,就是旋转的时候不顺畅,所以我这里添加了transition属性,让他转动起来的时候看起来顺畅的.<br>  2.transform-origin的值如果为0 0的时候,是绕着原点旋转的,50% 50%的时候就是绕着中心点旋转的.不过默认的时候就是绕着中心点旋转的<br></span>

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木!

Javascript 相关文章推荐
超轻量级的基于jquery的三级展开列表
Apr 26 Javascript
jquery 页面滚动到底部自动加载插件集合
Jan 31 Javascript
JavaScript按位运算符的应用简析
Feb 04 Javascript
Angular.js实现注册系统的实例详解
Dec 18 Javascript
基于BootStrap栅格栏系统完成网站底部版权信息区
Dec 23 Javascript
cnpm加速Angular项目创建的方法
Sep 07 Javascript
JavaScript根据json生成html表格的示例代码
Oct 24 Javascript
浅谈webpack+react多页面开发终极架构
Nov 11 Javascript
详解nuxt路由鉴权(express模板)
Nov 21 Javascript
vue+iview 兼容IE11浏览器的实现方法
Jan 07 Javascript
手写Vue弹窗Modal的实现代码
Sep 11 Javascript
JavaScript实现音乐播放器
Aug 14 Javascript
Bootstrap 手风琴菜单的实现代码
Jan 20 #Javascript
浅谈angularjs $http提交数据探索
Jan 20 #Javascript
原生js实现无限循环轮播图效果
Jan 20 #Javascript
原生js实现弹出层效果
Jan 20 #Javascript
jQuery中DOM节点删除之empty与remove
Jan 20 #Javascript
原生js实现图片放大缩小计时器效果
Jan 20 #Javascript
详解基于angular路由的requireJs按需加载js
Jan 20 #Javascript
You might like
ecshop 订单确认中显示省市地址信息的方法
2010/03/15 PHP
thinkPHP的Html模板标签使用方法
2012/11/13 PHP
php动态绑定变量的用法
2015/06/16 PHP
javascript奇异的arguments分析
2010/10/20 Javascript
利用json获取字符出现次数的代码
2012/03/22 Javascript
JavaScript 函数replace深入了解
2013/03/14 Javascript
在js中判断checkboxlist(.net控件客户端id)是否有选中
2013/04/11 Javascript
使用firebug进行调试javascript的示例
2013/12/16 Javascript
js的[defer]和[async]属性
2014/11/24 Javascript
JavaScript判断手机号运营商是移动、联通、电信还是其他(代码简单)
2015/09/25 Javascript
javascript实现tab切换的四种方法
2015/11/05 Javascript
详解vue 模版组件的三种用法
2017/07/21 Javascript
详解JS中的this、apply、call、bind(经典面试题)
2017/09/19 Javascript
微信小程序实现action-sheet弹出底部菜单功能【附源码下载】
2017/12/09 Javascript
Webpack中publicPath路径问题详解
2018/05/03 Javascript
Bootstrap-table使用footerFormatter做统计列功能
2018/09/07 Javascript
JavaScript中的惰性载入函数及优势
2020/02/18 Javascript
微信小程序:报错(in promise) MiniProgramError
2020/10/30 Javascript
[01:14]英雄,所敬略同——2018完美盛典宣传视频4K
2018/12/05 DOTA
[01:02:20]Mineski vs TNC 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
Python的SQLalchemy模块连接与操作MySQL的基础示例
2016/07/11 Python
浅谈Python类里的__init__方法函数,Python类的构造函数
2016/12/10 Python
详解Python网络框架Django和Scrapy安装指南
2019/04/01 Python
python通过txt文件批量安装依赖包的实现步骤
2019/08/13 Python
Python 实现平台类游戏添加跳跃功能
2020/03/27 Python
Python Scrapy框架:通用爬虫之CrawlSpider用法简单示例
2020/04/11 Python
通过实例解析python and和or使用方法
2020/11/14 Python
CSS3伪类选择器:nth-child()
2009/04/02 HTML / CSS
不可轻视HTML5!App三年内将被html5顶替彻底消失
2015/11/18 HTML / CSS
美国最顶级的精品店之一:Hampden Clothing
2016/12/22 全球购物
英国安全产品购物网站:The Safe Shop
2017/03/20 全球购物
2014年小学语文工作总结
2014/12/20 职场文书
使用Python的开发框架Brownie部署以太坊智能合约
2021/05/28 Python
JavaScript 数组去重详解
2021/09/15 Javascript
如何vue使用el-table遍历循环表头和表体数据
2022/04/26 Vue.js
windows server 2012安装FTP并配置被动模式指定开放端口
2022/06/10 Servers