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 相关文章推荐
Js中sort()方法的用法
Nov 04 Javascript
Extjs EditorGridPanel中ComboBox列的显示问题
Jul 04 Javascript
jquery单行文字向上滚动效果示例
Mar 06 Javascript
Internet Explorer 11 浏览器介绍:别叫我IE
Sep 28 Javascript
浅析Node.js中使用依赖注入的相关问题及解决方法
Jun 24 Javascript
分享javascript、jquery实用代码段
Oct 20 Javascript
Vuex之理解state的用法实例
Apr 19 Javascript
详解让sublime text3支持Vue语法高亮显示的示例
Sep 29 Javascript
vue2.0使用swiper组件实现轮播效果
Nov 27 Javascript
jQuery实现的下雪动画效果示例【附源码下载】
Feb 02 jQuery
详解Vue前端对axios的封装和使用
Apr 01 Javascript
浅谈vue项目利用Hbuilder打包成APP流程,以及遇到的坑
Sep 12 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
ThinkPHP php 框架学习笔记
2009/10/30 PHP
深入讲解PHP Session及如何保持其不过期的方法
2015/08/18 PHP
PHP实现带重试功能的curl连接示例
2016/07/28 PHP
php生成网页桌面快捷方式
2017/05/05 PHP
PHP 进度条函数的简单实例
2017/09/19 PHP
定位地理位置PHP判断员工打卡签到经纬度是否在打卡之内
2019/05/23 PHP
javascript json 新手入门文档
2009/12/03 Javascript
Javascript 运动中Offset的bug解决方案
2014/12/24 Javascript
jQuery实现的超简单点赞效果实例分析
2015/12/31 Javascript
JS简单实现表格排序功能示例
2016/12/20 Javascript
dropload.js插件下拉刷新和上拉加载使用详解
2017/10/20 Javascript
Js面试算法详解
2018/04/08 Javascript
JS与jQuery判断文本框还剩多少字符可以输入的方法
2018/09/01 jQuery
vue实现动态显示与隐藏底部导航的方法分析
2019/02/11 Javascript
JS FormData对象使用方法实例详解
2020/02/12 Javascript
vue实现短信验证码输入框
2020/04/17 Javascript
在vue中created、mounted等方法使用小结
2020/07/21 Javascript
vue 函数调用加括号与不加括号的区别
2020/10/29 Javascript
[51:32]Optic vs Serenity 2018国际邀请赛淘汰赛BO3 第一场 8.22
2018/08/23 DOTA
Python中optionParser模块的使用方法实例教程
2014/08/29 Python
Python升级导致yum、pip报错的解决方法
2017/09/06 Python
Python3之简单搭建自带服务器的实例讲解
2018/06/04 Python
Python 堆叠柱状图绘制方法
2019/07/29 Python
opencv调整图像亮度对比度的示例代码
2019/09/27 Python
QML实现钟表效果
2020/06/02 Python
CSS3教程(8):CSS3透明度指南
2009/04/02 HTML / CSS
世界上最好的旅行夹克:BauBax
2018/12/23 全球购物
外贸公司实习自我鉴定
2013/09/24 职场文书
大学生心理活动总结
2014/07/04 职场文书
收款委托书范本
2014/09/11 职场文书
2014财务年度工作总结
2014/11/11 职场文书
幼师辞职信范文
2015/02/27 职场文书
2015年实习单位评语
2015/03/25 职场文书
元旦联欢晚会主持词
2015/07/01 职场文书
销区经理年终述职报告模板
2019/11/28 职场文书
一篇文章弄清楚Ajax请求的五个步骤
2022/03/17 Javascript