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 相关文章推荐
Extjs单独定义各组件的实例代码
Jun 25 Javascript
jquery中的过滤操作详细解析
Dec 02 Javascript
jquery实现简单手风琴菜单效果实例
Jun 13 Javascript
jquery实现美观的导航菜单鼠标提示特效代码
Sep 06 Javascript
JS实现仿微博可关闭弹出层效果
Sep 21 Javascript
JS防止网页被嵌入iframe框架的方法分析
Sep 13 Javascript
require、backbone等重构手机图片查看器
Nov 17 Javascript
完美实现js焦点轮播效果(一)
Mar 07 Javascript
详解Node中导入模块require和import的区别
Aug 11 Javascript
在vue2.0中引用element-ui组件库的方法
Jun 21 Javascript
详解Webstorm 下的Angular2.0开发之路(图文)
Dec 06 Javascript
jQuery AJAX与jQuery事件的分析讲解
Feb 18 jQuery
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使用ZipArchive函数实现文件的压缩与解压缩
2015/10/27 PHP
php+ajax无刷新上传图片的实现方法
2016/12/06 PHP
PDO操作MySQL的基础教程(推荐)
2017/08/18 PHP
JavaScript的9个陷阱及评点分析
2008/05/16 Javascript
jquery获取下拉列表的值为null的解决方法
2011/03/18 Javascript
javaScript复制功能调用实现方案
2012/12/13 Javascript
解决jquery操作checkbox火狐下第二次无法勾选问题
2014/02/10 Javascript
node.js中的querystring.escape方法使用说明
2014/12/10 Javascript
更高效的使用JQuery 这里总结了8个小技巧
2016/04/13 Javascript
ajax+node+request爬取网络图片的实例(宅男福利)
2017/08/28 Javascript
浅谈es6 javascript的map数据结构
2017/12/14 Javascript
使用 vue-i18n 切换中英文效果
2018/05/23 Javascript
微信小程序实现红包雨功能
2018/07/11 Javascript
JS实现打字游戏
2019/12/17 Javascript
详解JavaScript原型与原型链
2020/11/16 Javascript
ajax jquery实现页面某一个div的刷新效果
2021/03/04 jQuery
在 Django/Flask 开发服务器上使用 HTTPS
2014/07/03 Python
python定向爬取淘宝商品价格
2018/02/27 Python
Tensorflow实现卷积神经网络用于人脸关键点识别
2018/03/05 Python
python实现堆和索引堆的代码示例
2018/03/19 Python
python实现维吉尼亚算法
2019/03/20 Python
python3使用腾讯企业邮箱发送邮件的实例
2019/06/28 Python
pandas对dataFrame中某一个列的数据进行处理的方法
2019/07/08 Python
对Django外键关系的描述
2019/07/26 Python
Python爬虫 urllib2的使用方法详解
2019/09/23 Python
TensorFlow tf.nn.conv2d_transpose是怎样实现反卷积的
2020/04/20 Python
python def 定义函数,调用函数方式
2020/06/02 Python
python 基于PYMYSQL使用MYSQL数据库
2020/12/24 Python
10个很棒的 CSS3 开发工具 推荐
2011/05/16 HTML / CSS
喜诗官方在线巧克力店:See’s Candies
2017/01/01 全球购物
开办大学饮食联盟创业计划书
2014/01/29 职场文书
《鸟岛》教学反思
2014/04/26 职场文书
地下停车场租赁协议范本
2014/10/07 职场文书
2015年党支部书记工作总结
2015/05/21 职场文书
导游词之江西赣州
2019/10/15 职场文书
SQL 聚合、分组和排序
2021/11/11 MySQL