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 相关文章推荐
cssQuery()的下载与使用方法
Jan 12 Javascript
jquery自动完成插件(autocomplete)应用之PHP版
Dec 15 Javascript
JavaScript 命名空间 使用介绍
Aug 29 Javascript
jquery中checkbox全选失效的解决方法
Dec 26 Javascript
详解JavaScript中常用的函数类型
Nov 18 Javascript
javascript滚轮控制模拟滚动条
Oct 19 Javascript
利用js判断手机是否安装某个app的多种方案
Feb 13 Javascript
JS实现的简单折叠展开动画效果示例
Apr 28 Javascript
js使用ajax传值给后台,后台返回字符串处理方法
Aug 08 Javascript
vuejs选中当前样式active的实例
Aug 22 Javascript
使用electron将vue-cli项目打包成exe的方法
Sep 29 Javascript
详解Vue.js 可拖放文本框组件的使用
Mar 03 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
zf框架的数据库追踪器使用示例
2014/03/13 PHP
CodeIgniter采用config控制的多语言实现根据浏览器语言自动转换功能
2014/07/18 PHP
PHP实现的QQ空间g_tk加密算法
2015/07/09 PHP
PHP实现小偷程序实例
2016/10/31 PHP
参考:关于Javascript中实现暂停的几篇文章
2007/03/04 Javascript
JQuery 图片延迟加载并等比缩放插件
2009/11/09 Javascript
Jquery选择子控件&quot;大于号&quot;和&quot; &quot;区别介绍及使用示例
2013/06/25 Javascript
js如何实现点击标签文字,文字在文本框出现
2015/08/05 Javascript
js移动焦点到最后位置的简单方法
2016/11/25 Javascript
Bootstrap3 内联单选和多选框
2016/12/29 Javascript
原生js实现返回顶部缓冲效果
2017/01/18 Javascript
详解IWinter 一个路由转控制器的 Nodejs 库
2017/11/15 NodeJs
浅谈在node.js进入文件目录的问题
2018/05/13 Javascript
node.js调用C++函数的方法示例
2018/09/21 Javascript
通过cordova将vue项目打包为webapp的方法
2019/02/02 Javascript
vue实现路由切换改变title功能
2019/05/28 Javascript
vue改变循环遍历后的数据实例
2019/11/07 Javascript
微信小程序实现电子签名功能
2020/07/29 Javascript
原生JavaScript实现进度条
2021/02/19 Javascript
[01:51]历届DOTA2国际邀请赛举办地回顾 TI9落地上海
2018/08/26 DOTA
Python strip lstrip rstrip使用方法
2008/09/06 Python
python实现保存网页到本地示例
2014/03/16 Python
使用DataFrame删除行和列的实例讲解
2018/04/08 Python
selenium使用chrome浏览器测试(附chromedriver与chrome的对应关系表)
2018/11/29 Python
DRF跨域后端解决之django-cors-headers的使用
2019/01/27 Python
Python转换时间的图文方法
2019/07/01 Python
Python整数对象实现原理详解
2019/07/01 Python
python将字符串转变成dict格式的实现
2019/11/18 Python
在keras里实现自定义上采样层
2020/06/28 Python
Django解决frame拒绝问题的方法
2020/12/18 Python
PyCharm+Miniconda3安装配置教程详解
2021/02/16 Python
旅游网创业计划书
2014/01/31 职场文书
标准化管理实施方案
2014/02/25 职场文书
大学新生军训方案
2014/05/03 职场文书
银行奉献演讲稿
2014/09/16 职场文书
老员工辞职信范文
2015/05/12 职场文书