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 相关文章推荐
用js实现层随着内容大小动态渐变改变 推荐
Dec 19 Javascript
用js判断页面是否加载完成实现代码
Dec 11 Javascript
jquery click([data],fn)使用方法实例介绍
Jul 08 Javascript
jQuery之过滤元素操作小结
Nov 30 Javascript
利用jQuery实现可以编辑的表格
May 26 Javascript
node.js请求HTTPS报错:UNABLE_TO_VERIFY_LEAF_SIGNATURE\的解决方法
Dec 18 Javascript
jQuery实现 上升、下降、删除、添加一行代码
Mar 06 Javascript
vue3.0 CLI - 2.6 - 组件的复用入门教程
Sep 14 Javascript
vue+高德地图写地图选址组件的方法
May 18 Javascript
JavaScript实现PC端横向轮播图
Feb 07 Javascript
JavaScript实现图片放大预览效果
Nov 02 Javascript
JavaScript控制台的更多功能
Apr 28 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
IIS6.0+PHP5.x+MySQL5.x+Zend3.0x+GD+phpMyAdmin2.8x通用安装实例(已经完成)
2006/12/06 PHP
PHP面向对象程序设计组合模式与装饰模式详解
2016/12/02 PHP
php empty 函数判断结果为空但实际值却为非空的原因解析
2018/05/28 PHP
php对微信支付回调处理的方法
2018/08/23 PHP
Javascript this关键字使用分析
2008/10/21 Javascript
利用javascript/jquery对上传文件格式过滤的方法
2009/07/25 Javascript
基于jquery的商品展示放大镜
2010/08/07 Javascript
jquery ajax post提交数据乱码
2013/11/05 Javascript
通过设置CSS中的position属性来固定层的位置
2015/12/14 Javascript
在Linux系统中搭建Node.js开发环境的简单步骤讲解
2016/01/26 Javascript
jQuery基本选择器和层次选择器学习使用
2017/02/27 Javascript
JavaScript数组迭代方法
2017/03/03 Javascript
原生JS改变透明度实现轮播效果
2017/03/24 Javascript
Windows下快速搭建NodeJS本地服务器的步骤
2017/08/09 NodeJs
微信小程序-getUserInfo回调的实例详解
2017/10/27 Javascript
使用ThinkJs搭建微信中控服务的实现方法
2019/08/08 Javascript
angular inputNumber指令输入框只能输入数字的实现
2019/12/03 Javascript
JavaScript中作用域链的概念及用途讲解
2020/08/06 Javascript
初步介绍Python中的pydoc模块和distutils模块
2015/04/13 Python
python实现数独算法实例
2015/06/09 Python
Python递归函数实例讲解
2019/02/27 Python
Django Channels 实现点对点实时聊天和消息推送功能
2019/07/17 Python
Django使用Celery加redis执行异步任务的实例内容
2020/02/20 Python
关于keras中keras.layers.merge的用法说明
2020/05/23 Python
Anaconda+spyder+pycharm的pytorch配置详解(GPU)
2020/10/18 Python
IE8下CSS3选择器nth-child() 不兼容问题的解决方法
2016/11/16 HTML / CSS
英国最受欢迎的手表网站:Watch Shop
2016/10/21 全球购物
27个经典Linux面试题及答案,你知道几个?
2013/01/10 面试题
亲子读书活动方案
2014/02/22 职场文书
早会主持词
2014/03/17 职场文书
法人代表授权委托书
2014/04/08 职场文书
《凡卡》教学反思
2014/04/09 职场文书
《画风》教学反思
2014/04/16 职场文书
旅游安全协议书
2014/04/21 职场文书
六年级学生评语
2014/04/22 职场文书
拒绝黄毒毒宣传标语
2014/06/26 职场文书