• js+css3实现旋转效果


    我的前面一张文章实现了用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了
    注意点:1.因为如果不添加css3的过渡属性的话,旋转的时候是会有种卡顿效果的,就是旋转的时候不顺畅,所以我这里添加了transition属性,让他转动起来的时候看起来顺畅的.
        2.transform-origin的值如果为0 0的时候,是绕着原点旋转的,50% 50%的时候就是绕着中心点旋转的.不过默认的时候就是绕着中心点旋转的
  • 相关阅读:
    MongoDB的Spring-data-mongodb集成(Win10 x64) 第一章
    Linux 环境部署记录(三)
    onsubmit不起作用的原因
    sql server 将时间中的时分秒改为00:00:00
    js文件被浏览器缓存
    Action<>和Func<> 区别
    sql2008 express 实现自动备份
    Centos 7 无法上网的解决办法
    js 中的[] {}是什么意思
    js中var a={}什么意思
  • 原文地址:https://www.cnblogs.com/cythia/p/6322124.html
Copyright © 2020-2023  润新知