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 相关文章推荐
Add a Table to a Word Document
Jun 15 Javascript
javascript jQuery $.post $.ajax用法
Jul 09 Javascript
JavaScript 对象链式操作测试代码
Apr 25 Javascript
面向对象的Javascript之二(接口实现介绍)
Jan 27 Javascript
JavaScript支持的最大递归调用次数分析
Jun 24 Javascript
Javascript 拖拽雏形中的一些问题(逐行分析代码,让你轻松了拖拽的原理)
Jan 23 Javascript
jQuery使用正则表达式替换dom元素标签用法示例
Jan 16 Javascript
servlet+jquery实现文件上传进度条示例代码
Jan 25 Javascript
一个简易的js图片轮播效果
Jul 22 Javascript
webpack处理 css\less\sass 样式的方法
Aug 21 Javascript
详解Vue取消eslint语法限制
Aug 04 Javascript
vue登录页实现使用cookie记住7天密码功能的方法
Feb 18 Vue.js
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 smarty模版引擎中的缓存应用
2009/12/11 PHP
利用curl 多线程 模拟 并发的详解
2013/06/14 PHP
10个php函数实用却不常见
2015/10/13 PHP
php字符串操作针对负值的判断分析
2016/07/28 PHP
PHP实现求两个字符串最长公共子串的方法示例
2017/11/17 PHP
检测jQuery.js是否已加载的判断代码
2011/05/20 Javascript
扩展JavaScript功能的正确方法(译文)
2012/04/12 Javascript
js调用图片隐藏&amp;显示实现代码
2013/09/13 Javascript
jQuery 获取浏览器所在的IP地址的小例子
2013/11/08 Javascript
Jquery获取当前城市的天气信息
2016/08/05 Javascript
关于动态生成dom绑定事件失效的原因及解决方法
2016/08/06 Javascript
VueJs与ReactJS和AngularJS的异同点
2016/12/12 Javascript
JavaScript ES6中const、let与var的对比详解
2017/06/18 Javascript
详解用node搭建简单的静态资源管理器
2017/08/09 Javascript
详解webpack打包后如何调试的方法步骤
2018/11/07 Javascript
vue+ts下对axios的封装实现
2020/02/18 Javascript
python 打印出所有的对象/模块的属性(实例代码)
2016/09/11 Python
python 默认参数相关知识详解
2019/09/18 Python
Python笔记之观察者模式
2019/11/20 Python
Django-imagekit的使用详解
2020/07/06 Python
2021年的Python 时间轴和即将推出的功能详解
2020/07/27 Python
Python 获取异常(Exception)信息的几种方法
2020/12/29 Python
python自动打开浏览器下载zip并提取内容写入excel
2021/01/04 Python
anaconda安装pytorch1.7.1和torchvision0.8.2的方法(亲测可用)
2021/02/01 Python
css3遮罩层镂空效果的多种实现方法
2020/05/11 HTML / CSS
用canvas画心电图的示例代码
2018/09/10 HTML / CSS
汽车工程专业应届生求职信
2013/10/19 职场文书
自荐信模版
2013/10/24 职场文书
高三语文教学反思
2014/01/15 职场文书
行政专员岗位职责说明书
2014/07/30 职场文书
作风建设年活动实施方案
2014/10/24 职场文书
大学生自荐书范文
2015/03/05 职场文书
简历自我评价范文
2019/04/24 职场文书
MySQL表的增删改查(基础)
2021/04/05 MySQL
python 学习GCN图卷积神经网络
2022/05/11 Python
基于docker安装zabbix的详细教程
2022/06/05 Servers