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 相关文章推荐
驱动事件的addEvent.js代码
Mar 27 Javascript
jQuery .attr()和.removeAttr()方法操作元素属性示例
Jul 16 Javascript
JS简单实现多级Select联动菜单效果代码
Sep 06 Javascript
JS实现的简洁二级导航菜单雏形效果
Oct 13 Javascript
jQuery UI Bootstrap是什么?
Jun 17 Javascript
基于jQuery ligerUI实现分页样式
Sep 18 Javascript
BooStrap对导航条的改造实践小结
Sep 21 Javascript
Bootstrap Table从服务器加载数据进行显示的实现方法
Sep 29 Javascript
jQuery插件之validation插件
Mar 29 jQuery
JavaScript 用fetch 实现异步下载文件功能
Jul 21 Javascript
基于JavaScript获取url参数2种方法
Apr 17 Javascript
Vue执行方法,方法获取data值,设置data值,方法传值操作
Aug 05 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/10/09 PHP
destoon之一键登录设置
2014/06/21 PHP
PHP单例模式实例分析【防继承,防克隆操作】
2019/05/22 PHP
filemanage功能中用到的common.js
2007/04/08 Javascript
基于jQuery的日期选择控件
2009/10/27 Javascript
jquery 新手学习常见问题解决方法
2010/04/18 Javascript
js构造函数、索引数组和属性的实现方式和使用
2014/11/16 Javascript
使用Chrome调试JavaScript的断点设置和调试技巧
2014/12/16 Javascript
JavaScript通过join函数连接数组里所有元素的方法
2015/03/20 Javascript
jquery插件tytabs.jquery.min.js实现渐变TAB选项卡效果
2015/08/25 Javascript
jQuery 常用代码集锦(必看篇)
2016/05/16 Javascript
js获取上传文件的绝对路径实现方法
2016/08/02 Javascript
three.js实现围绕某物体旋转
2017/01/25 Javascript
基于JS实现限时抢购倒计时间表代码
2017/05/09 Javascript
jQuery常用选择器详解
2017/07/17 jQuery
在iframe中使bootstrap的模态框在父页面弹出问题
2017/08/07 Javascript
php main 与 iframe 相互通讯类(js+php同域/跨域)
2017/09/14 Javascript
基于jQuery选择器之表单对象属性筛选选择器的实例
2017/09/19 jQuery
AngularJS实现的简单拖拽功能示例
2018/01/02 Javascript
详解SPA中前端路由基本原理与实现方式
2018/09/12 Javascript
vue项目在webpack2实现移动端字体自适配功能
2020/06/02 Javascript
vue移动端弹起蒙层滑动禁止底部滑动操作
2020/07/22 Javascript
Python中文编码那些事
2014/06/25 Python
Python实现抓取百度搜索结果页的网站标题信息
2015/01/22 Python
Python中的hypot()方法使用简介
2015/05/18 Python
Python抓取百度查询结果的方法
2015/07/08 Python
python获取指定时间差的时间实例详解
2017/04/11 Python
深入理解Django中内置的用户认证
2017/10/06 Python
对pandas中to_dict的用法详解
2018/06/05 Python
python命名空间(namespace)简单介绍
2019/08/10 Python
eBay瑞士购物网站:eBay.ch
2018/12/24 全球购物
Conforama瑞士:家具、厨房、电器、装饰
2020/09/06 全球购物
英国马莎百货印度官网:Marks & Spencer印度
2020/10/08 全球购物
小学校长竞聘演讲稿
2014/05/16 职场文书
个人总结与自我评价
2014/09/18 职场文书
详解Spring Security中的HttpBasic登录验证模式
2022/03/17 Java/Android