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 相关文章推荐
javascript 从if else 到 switch case 再到抽象
Jul 17 Javascript
日期处理的js库(迷你版)--自建js库总结
Nov 21 Javascript
基于jquery的文本框与autocomplete结合使用(asp.net+json)
May 30 Javascript
jquery实现的一个导航滚动效果具体代码
May 27 Javascript
Javascript变量作用域详解
Dec 06 Javascript
JavaScript判断字符长度、数字、Email、电话等常用判断函数分享
Apr 01 Javascript
Bootstrap的图片轮播示例代码
Aug 31 Javascript
JS产生随机数的用法小结
Dec 10 Javascript
jquery PrintArea 实现票据的套打功能(代码)
Mar 17 Javascript
Javascript循环删除数组中元素的几种方法示例
May 18 Javascript
js Element Traversal规范中的元素遍历方法
Apr 19 Javascript
vue中使用百度脑图kityminder-core二次开发的实现
Sep 26 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
使用 php4 加速 web 传输
2006/10/09 PHP
推荐一篇入门级的Class文章
2007/03/19 PHP
PHP 设计模式系列之 specification规格模式
2016/01/10 PHP
Thinkphp结合AJAX长轮询实现PC与APP推送详解
2017/07/31 PHP
php7下的filesize函数
2019/09/30 PHP
Laravel 解决composer相关操作提示php相关异常的问题
2019/10/23 PHP
不错的一个日期输入 动态
2006/11/06 Javascript
javascript基本语法分析说明
2008/06/15 Javascript
写出更好的JavaScript之undefined篇(上)
2009/11/22 Javascript
Uglifyjs(JS代码优化工具)入门 安装使用
2020/04/13 Javascript
javascript实现淘宝幻灯片广告展示效果
2015/04/27 Javascript
谈谈第三方App接入微信登录 解读
2016/12/27 Javascript
详解nodeJS中读写文件方法的区别
2017/03/06 NodeJs
前端图片懒加载(lazyload)的实现方法(提高用户体验)
2017/08/21 Javascript
原生JS+HTML5实现的可调节写字板功能示例
2018/08/30 Javascript
NodeJS开发人员常见五个错误理解
2020/10/14 NodeJs
Win7上搭建Cocos2d-x 3.1.1开发环境
2014/07/03 Python
TensorFlow模型保存/载入的两种方法
2018/03/08 Python
Python 绘图库 Matplotlib 入门教程
2018/04/19 Python
通过Py2exe将自己的python程序打包成.exe/.app的方法
2018/05/26 Python
python实现猜数字小游戏
2020/03/24 Python
python3 读取Excel表格中的数据
2018/10/16 Python
Python3.6简单的操作Mysql数据库的三个实例
2018/10/17 Python
pycharm双击无响应(打不开问题解决办法)
2020/01/10 Python
Python实现aes加密解密多种方法解析
2020/05/15 Python
用Python自动清理电脑内重复文件,只要10行代码(自动脚本)
2021/01/09 Python
详解基于canvas的视频遮罩插件
2018/01/04 HTML / CSS
英国顶级家庭折扣店:The Works
2017/09/06 全球购物
竟聘演讲稿范文
2013/12/31 职场文书
保险专业自荐信范文
2014/02/20 职场文书
2014年文明创建工作总结
2014/11/25 职场文书
2015年档案室工作总结
2015/05/23 职场文书
早会开场白台词大全
2015/06/01 职场文书
运动会通讯稿100字
2015/07/20 职场文书
升学宴来宾致辞
2015/07/27 职场文书
WIN10使用IIS部署ftp服务器详细教程
2022/08/05 Servers