javascript學習-原生javascript的小特效(改變透明度效果)


前些日子看了個視頻所以就模仿它的技術來為大家做出幾個簡單的JS小特效 ( 以下效果兼容IE5+ IE5-以下沒有測試哦)

今天為大家演示的效果是一個div,鼠標經過的時候透明度為100%,鼠標移出的時候透明度變為原來的50%。

也許大家會問現在這么多流行的JS框架和CSS3的transition配合偽類:hover都可以實現的效果干嘛要用這么老套的方式呢?沒錯的,現在用CSS3,JS框架都是可以輕松的實現以下的效果,但是為了學習原生的javascript的童鞋,用CSS3和JS框架實現的就留給大家去實現了。現在我們還是多用原生的方法吧。

1:先給出HTML:

<body>
<div id="div1">
</div>
</body>

2:列出CSS:

<style type="text/css">  
body{margin: 0;padding: 0;}
div{background: red;width: 200px;height: 150px;opacity: 0.5;filter:alpha(opacity:50);  }
</style>

3:現在到了我們的JS部分

<script type="text/javascript">
     window.onload=function(){   頁面加載完執行這個匿名函數
      var div=document.getElementById("div1");   獲取div
     div.onmouseover=function(){  當鼠標經過這個div的時候執行onOut函數並傳參數100
      onOut(100);
     }
      div.onmouseout=function(){ 當鼠標離開這個div的時候執行onOut函數並傳參數10
      onOut(10);
      }
     }
     var timer=null; 
      創建一個變量用來后面裝定時器唯一的ID不明白定時器的童鞋可以看看我之前專門寫的javascript定時器文章
     var opa=10; 定義一個原始的透明度這里和CSS中的定義一樣
     function onOut(tart){   創建一個函數onOut
      var div=document.getElementById("div1");
      clearInterval(timer);  
      一開始觸發這個函數的時候先把定時器都清空下,防止之前的定時器執行的時候再次觸發該函數而疊加
      timer=setInterval(function(){ 創建一個變量用來后面裝定時器唯一的ID不明白定時器的童鞋可以看看我之前專門寫的javascript定時器文章
      var midd=0;   因為要有動畫的效果要每隔一段時間都增加或者減少透明度,我們需要一個中中間變量,我們設置為0
        if(opa>tart){  比較模板透明都和當前透明度,來確定透明度的變化是增還是減
         midd=-10;   讓當前透明都每次遞減10
        }else{
        midd=10;  讓當前透明都每次增加10
        }


        if(tart==opa){ 比較模板透明都和當前透明度,當他們相等的時候 ,就把定時器都清空
        clearInterval(timer); 


        }else{
        opa+=midd;  讓透明度opa=opa+midd,然后把它賦值給當前div的透明度屬性
        div.style.filter='alpha(opacity:'+opa+')';  兼容IE
        div.style.opacity=opa/100;


        }
      },10)


     }
</script>



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM