• js动画--封装透明度


    这一章我将讲述一些如何将透明度的变化也封装到调用函数中,对于前面几节课的介绍,已经将基本的属性封装到函数中了,宽,长等属性。关于透明度的变化还是有一点区别的,这一章我将封装透明度

    先创建一个div

    <!DOCTYPE html>
    <html>
    <head>
    <title>js动画事件</title>
    <link href="move.css" rel="stylesheet" type="text/css"/>
    <script type="text/javascript" src="move.js"></script>
    </head>
    <body>
    <div id="div1">
    </div>
    </body>
    </html>

    给这个div设置一些属性值(注意奥,这里面的透明度的设置)

    #div1{
        200px;
        height:200px;
        background-color:red;
        opacity:0.3;//火狐浏览器支持的透明度的设置
        filter:alpha(opacity:30);//IE浏览器支持的方式
    }

    实现透明度的封装

    var timer;
    window.onload=function(){
    	var div=document.getElementById("div1");
    	div.onmouseover=function(){
    		startMove(this,"opacity",100);
    	}
    	div.onmouseout=function(){
    		startMove(this,"opacity",30);
    	}
    }
    function startMove(obj,attr,target){
    	clearInterval(timer);
    	timer=setInterval(function(){
    		var icur;
    		if(attr=="opacity"){
    		 icur=Math.round(parseFloat(getStyle(obj,attr))*100);//关键一步在这里,我们设置透明度属性时,getStyle获得的是0~1之间的数,所以要parseFloat一下,然后在乘以100转化到0~100之间,最后要四舍五入一下。
    		}else{
    			icur=parseInt(getStyle(obj,attr))
    			
    		}
    		var speed=(target-icur)/8;
    		 speed=speed>0? Math.ceil(speed):Math.floor(speed);
    		  
    		if(icur==target){
    			clearInterval(timer);
    		}else{
    			if(attr="opacity"){
    				obj.style.opacity=(icur+speed)/100;
    				obj.style.filter="alpha(opacity"+(icur+speed)+")";//还有这里,对于透明度来说,后面是没有"px"的,所以要判断一下。
    			}
    				obj.style[attr]=parseInt(getStyle(obj,attr))+speed+"px";	
    		}
    	},50)
    }
     
     
     function getStyle(obj,attr){
    	 if(obj.currentStyle){
    		 return obj.currentStyle[attr];
    	 }else if(getComputedStyle){
    		 return getComputedStyle(obj,false)[attr];
    	 }
     }
    

      

  • 相关阅读:
    DOCK-SWARM
    springMVC上传和下载文件
    生成任意内容任意类型的文件
    配置监听(系统启动和关闭时运行的程序)
    配置过滤器
    读取文件内容(TXT之类的文件)
    读取properties文件中的内容
    时间戳转时间字符串和时间
    启动Service的时候报错unable to install breakpoint in
    java后台调用接口并获取返回值
  • 原文地址:https://www.cnblogs.com/yuaima/p/5120379.html
Copyright © 2020-2023  润新知