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 的权限问题 要求控制的对象是 菜单,按钮,URL
Mar 09 Javascript
浅谈javascript的数据类型检测
Jul 10 Javascript
不使用浏览器运行javascript代码的方法
Jul 24 Javascript
Jquery 实现表格颜色交替变化鼠标移过颜色变化实例
Aug 28 Javascript
JavaScript禁止用户多次提交的两种方法
Jul 24 Javascript
Bootstrap整体框架之JavaScript插件架构
Dec 15 Javascript
AngularJS页面传参的5种方式
Apr 01 Javascript
JavaScript输入分钟、秒倒计时技巧总结(附代码)
Aug 17 Javascript
javaScript canvas实现(画笔大小 颜色 橡皮的实例)
Nov 28 Javascript
js点击时关闭该范围下拉菜单之外的菜单方法
Jan 11 Javascript
Angular7中创建组件/自定义指令/管道的方法实例详解
Apr 02 Javascript
js实现tab栏切换效果
Aug 02 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
php返回相对时间(如:20分钟前,3天前)的方法
2015/04/14 PHP
Zend Framework入门应用实例详解
2016/12/11 PHP
javascript事件模型代码
2007/07/01 Javascript
使用jQuery fancybox插件打造一个实用的数据传输模态弹出窗体
2013/01/15 Javascript
对JavaScript中this指针的新理解分享
2015/01/31 Javascript
javascript实现复选框超过限制即弹出警告框的方法
2015/02/25 Javascript
详解Bootstrap插件
2016/04/25 Javascript
jQuery ajax调用后台aspx后台文件的两种常见方法(不是ashx)
2016/06/28 Javascript
PHP实现记录代码运行时间封装类实例教程
2017/05/08 Javascript
jQuery实现切换隐藏与显示同时切换图标功能
2017/10/29 jQuery
微信小程序实现红包雨功能
2018/07/11 Javascript
如何解决.vue文件url引用文件的问题
2019/01/18 Javascript
jQuery使用$.extend(true,object1, object2);实现深拷贝对象的方法分析
2019/03/06 jQuery
JQuery的加载和选择器用法简单示例
2019/05/13 jQuery
解决Vue+Electron下Vuex的Dispatch没有效果问题
2019/05/20 Javascript
解决Vue 刷新页面导航显示高亮位置不对问题
2019/12/25 Javascript
简单了解Vue computed属性及watch区别
2020/07/10 Javascript
javascript 数组(list)添加/删除的实现
2020/12/17 Javascript
python利用datetime模块计算时间差
2015/08/04 Python
Django实现基于类的分页功能
2019/10/31 Python
纯CSS改变webkit内核浏览器的滚动条样式
2014/04/17 HTML / CSS
html5仿支付宝密码框的实现代码
2017/09/06 HTML / CSS
英国豪华真皮和布艺沙发销售网站:Darlings of Chelsea
2018/01/05 全球购物
澳大利亚手表品牌:Time IV Change
2018/10/06 全球购物
哄娃神器4moms商店:美国婴童用品品牌
2019/03/07 全球购物
英国独特家具和家庭用品购物网站:Cuckooland
2020/08/30 全球购物
数据库测试通常都包括哪些方面
2015/11/30 面试题
女娲补天教学反思
2014/02/05 职场文书
迟到检讨书300字
2014/02/14 职场文书
环保口号大全
2014/06/12 职场文书
社区关爱留守儿童活动方案
2014/08/22 职场文书
庆祝教师节演讲稿
2014/09/03 职场文书
2014年幼儿园保育工作总结
2014/12/02 职场文书
销售助理岗位职责
2015/02/11 职场文书
检讨书格式
2019/04/25 职场文书
使用php的mail()函数实现发送邮件功能
2021/06/03 PHP