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获取div高度的代码
Aug 09 Javascript
innerHTML与jquery里的html()区别介绍
Oct 12 Javascript
jquery缓动swing liner控制动画过程不同时刻的速度
May 29 Javascript
JavaScript检查某个function是否是原生代码的方法
Aug 20 Javascript
javascript格式化日期时间方法汇总
Jun 19 Javascript
浅谈jQuery animate easing的具体使用方法(推荐)
Jun 17 Javascript
基于cssSlidy.js插件实现响应式手机图片轮播效果
Aug 30 Javascript
Angular2入门教程之模块和组件详解
May 28 Javascript
让bootstrap的carousel支持滑动滚屏的实现代码
Nov 27 Javascript
AngularJS监听ng-repeat渲染完成的两种方法
Jan 16 Javascript
js最全的数组的降维5种办法(小结)
Apr 28 Javascript
JS ES6异步解决方案
Apr 29 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
php+ajax实时刷新简单实例
2015/02/25 PHP
PHP实现的XML操作类【XML Library】
2016/12/29 PHP
JS网络游戏-(模拟城市webgame)提供的一些例子下载
2007/10/14 Javascript
ie和firefox不兼容的解决方法集合
2009/04/28 Javascript
jQuery之尺寸调整组件的深入解析
2013/06/19 Javascript
解决extjs grid 不随窗口大小自适应的改变问题
2014/01/26 Javascript
jquery的ajax简单结构示例代码
2014/02/17 Javascript
Javascript基础知识(二)事件
2014/09/29 Javascript
jquery实现点击弹出可放大居中及关闭的对话框(附demo源码下载)
2016/05/10 Javascript
实现React单页应用的方法详解
2016/08/02 Javascript
在Web项目中引入Jquery插件报错的完美解决方案(图解)
2016/09/19 Javascript
获取url中用&amp;隔开的参数实例(分享)
2017/05/28 Javascript
Express系列之multer上传的使用
2017/10/27 Javascript
Angular5.1新功能分享
2017/12/21 Javascript
vue 实现类似淘宝星级评分的示例
2018/03/01 Javascript
在vue项目中引入highcharts图表的方法(详解)
2018/03/05 Javascript
Js中将Long转换成日期格式的实现方法
2018/06/05 Javascript
微信小程序日历/日期选择插件使用方法详解
2018/12/28 Javascript
spring+angular实现导出excel的实现代码
2019/02/27 Javascript
vue iview多张图片大图预览、缩放翻转
2019/07/13 Javascript
Node配合WebSocket做多文件下载以及进度回传
2019/11/07 Javascript
详解小程序BackgroundAudioManager踩坑之旅
2019/12/08 Javascript
原生JS实现留言板功能
2020/02/08 Javascript
基于JS正则表达式实现模板数据动态渲染(实现思路详解)
2020/03/07 Javascript
JavaScript缺少insertAfter解决方案
2020/07/03 Javascript
Python调用Windows命令打印文件
2020/02/07 Python
Python读取配置文件(config.ini)以及写入配置文件
2020/04/08 Python
Keras实现将两个模型连接到一起
2020/05/23 Python
利用css3径向渐变做一张优惠券的示例
2018/03/22 HTML / CSS
雅诗兰黛旗下专业男士保养领导品牌:Lab Series
2017/05/15 全球购物
Notino芬兰:购买香水和化妆品
2019/04/15 全球购物
2014年驾驶员工作总结
2014/11/18 职场文书
美术教师求职信范文
2015/03/20 职场文书
入党转正申请报告
2015/05/15 职场文书
2016教师给学生的毕业寄语
2015/12/04 职场文书
Unicode中的CJK(中日韩统一表意文字)字符小结
2021/12/06 HTML / CSS