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 相关文章推荐
javascript编程起步(第六课)
Feb 27 Javascript
javascript EXCEL 操作类代码
Jul 30 Javascript
JavaScript判断变量是对象还是数组的方法
Aug 28 Javascript
五种js判断是否为整数类型方式
Dec 03 Javascript
jQuery表格插件datatables用法详解
Nov 23 Javascript
JS字符串的切分用法实例
Feb 22 Javascript
JS中对Cookie的操作详解
Aug 05 Javascript
jQuery EasyUI 折叠面板accordion的使用实例(分享)
Dec 25 jQuery
Vue.js 图标选择组件实践详解
Dec 03 Javascript
VUE接入腾讯验证码功能(滑块验证)备忘
May 07 Javascript
小程序:授权、登录、session_key、unionId的详解
May 15 Javascript
Javascript Worker子线程代码实例
Feb 20 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
云网广告中的代码,提示出错,大家找找
2006/11/21 Javascript
php对mongodb的扩展(小试牛刀)
2012/11/11 Javascript
javascript中的onkeyup和onkeydown区别介绍
2013/04/28 Javascript
js中的scroll和offset 使用比较的实例与分析
2013/09/29 Javascript
多个jQuery版本共存的处理方案
2015/03/17 Javascript
js如何实现点击标签文字,文字在文本框出现
2015/08/05 Javascript
JQuery.Ajax()的data参数类型实例详解
2015/11/20 Javascript
AngularJS 日期格式化详解
2015/12/23 Javascript
JQuery的Pager分页器实现代码
2016/05/03 Javascript
有关JavaScript中call()和apply() 的一些理解
2016/05/20 Javascript
node通过express搭建自己的服务器
2017/09/30 Javascript
NodeJS简单实现WebSocket功能示例
2018/02/10 NodeJs
Vue中使用vee-validate表单验证的方法
2018/05/09 Javascript
6种JavaScript继承方式及优缺点(小结)
2020/02/06 Javascript
基于Echarts图表在div动态切换时不显示的解决方式
2020/07/20 Javascript
Python中使用PyHook监听鼠标和键盘事件实例
2014/07/18 Python
一篇文章读懂Python赋值与拷贝
2018/04/19 Python
Python GUI布局尺寸适配方法
2018/10/11 Python
scikit-learn线性回归,多元回归,多项式回归的实现
2019/08/29 Python
PyTorch中反卷积的用法详解
2019/12/30 Python
使用 Python 遍历目录树的方法
2020/02/29 Python
Python 3.8 新功能来一波(大部分人都不知道)
2020/03/11 Python
浅谈pytorch中torch.max和F.softmax函数的维度解释
2020/06/28 Python
5 分钟读懂Python 中的 Hook 钩子函数
2020/12/09 Python
CSS3实现大小不一的粒子旋转加载动画
2016/04/21 HTML / CSS
澳洲的服装老品牌:SABA
2018/02/06 全球购物
广州迈达威.net面试题目
2012/03/10 面试题
C#中有没有运算符重载?能否使用指针?
2014/05/05 面试题
环境科学专业研究生求职信
2013/10/02 职场文书
团队队名口号大全
2014/06/06 职场文书
我与祖国共奋进演讲稿
2014/09/13 职场文书
迎新生晚会主持词
2015/06/30 职场文书
幼儿教师师德培训心得体会
2016/01/09 职场文书
2016大一新生军训心得体会
2016/01/11 职场文书
如何用Node.js编写内存效率高的应用程序
2021/04/30 Javascript
讨论nginx location 顺序问题
2022/05/30 Servers