zoukankan      html  css  js  c++  java
  • 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];
    	 }
     }
    

      

  • 相关阅读:
    vim的modeline
    python的read() 、readline()、readlines()、xreadlines()
    hashset
    java泛型
    eclipse常用快捷键
    互联网计费模式
    cocos2d::CCFileUtils::sharedFileUtils()->getFileData(szFile, "r", &bufferSize) 不同平台返回值不一样
    CSS为英文和中文字体分别设置不同的字体
    fatal error C1010: 在查找预编译头时遇到意外的文件结尾
    JavaScript权威指南第03章 类型、值和变量(1)
  • 原文地址:https://www.cnblogs.com/yuaima/p/5120379.html
Copyright © 2011-2022 走看看