javascript實現的淡入淡出效果程式碼例項
實現淡入淡出效果,當然使用jquery最為方便,只需要簡單的函式和引數就可以實現了,本章節介紹一下如何用原生的javascript實現此效果,希望能夠給感覺的朋友帶來參考作用。
程式碼如下:
[HTML] 純文字檢視 複製程式碼<!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <style type="text/css"> #thediv{ width:200px; height:100px; margin:0px auto; background:red; opacity:0.1; filter:alpha(opacity=30); } </style> <script type="text/javascript"> function getStyle(node,property){ if(node.style[property]){ return node.style[property]; } else if(node.currentStyle){ return node.currentStyle[property]; } else if(document.defaultView&&document.defaultView.getComputedStyle){ var style=document.defaultView.getComputedStyle(node,null); return style.getPropertyValue(property); } return null; } function setOpacity(elem,value,speed){ var old=getStyle(elem,"opacity")*100; var time=100; var count=speed/time; var range=(value-old)/count; var timer=null; timer=setInterval(done,time); function done(){ old=old+range; if(old>=100||old<=1){ clearInterval(timer); } if("\v"=="v"){ elem.filters.alpha.opacity=1*old; } else{ elem.style.opacity=0.01*old; } } } window.onload=function(){ var odiv=document.getElementById("thediv"); setOpacity(odiv,80,2000); } </script> </head> <body> <div id="thediv"></div> </body> </html>
上面的程式碼實現了我們的要求,下面介紹一下此程式碼的實現過程:
一.程式碼註釋:
1.function getStyle(node,property){},此函式可以獲取指定元素的指定樣式屬性值,這裡不多介紹了,具體可以參閱getComputedStyle()和currentStyle屬性的用法一章節。
2.function setOpacity(elem,value,speed){},此函式可以實現透明度的漸變效果,第一個引數是元素物件,也就是要設定透明度過渡的元素,第二個是透明度目標值,是整數形式的(80),第三個引數規定在多長時間內完成漸變過程,單位是毫秒。
3.var old=getStyle(elem,"opacity")*100,獲取指定元素在過渡前的預設透明度值,無論是在低版本IE瀏覽器還是在標準瀏覽器下返回值都是小數,這裡乘以100是為了轉換整數便於計算。
4.var time=100,規定定時器函式執行的時間間隔。
5.var count=speed/time,計算出定時器函式執行的次數。
6.var range=(value-old)/count,計算出每次執行透明度變化的幅度。
7.var timer=null,作為定時器函式的標識。
7.timer=setInterval(done,time),呼叫定時器函式。
8.function done(){},此函式可以被定時器函式不斷呼叫設定透明度。
9.old=old+range,在原來透明度值基礎上加上變化幅度。
10.if(old>=100||old<=1){clearInterval(timer)},如果old的值不在1-100之間,就會停止定時器函式的執行。
11.if("\v"=="v"){elem.filters.alpha.opacity=1*old;},判斷是否是IE8和IE8以下瀏覽器,如果是則設定透明度。
12.else{elem.style.opacity=0.01*old;},如果是其他瀏覽器則使用此種方式設定透明度,因為在設定透明度方面存在著相容性問題,具體可以參閱css設定元素透明度程式碼例項一章節。
二.相關閱讀:
1.setInterval()函式可以參閱setInterval()一章節。
2.clearInterval()函式可以參閱window.clearInterval()一章節。
相關文章
- 淡入淡出效果簡單程式碼例項
- html實現簡單ListViews效果的例項程式碼HTMLView
- 實現元素的淡入淡出效果
- jQuery 實現淡入淡出效果jQuery
- JavaScript實現選項卡效果JavaScript
- jQuery tab選項卡效果程式碼例項jQuery
- canvas載入效果程式碼例項Canvas
- CSS橢圓效果程式碼例項CSS
- JavaScript in運算子程式碼例項JavaScript
- 美化滾動條效果程式碼例項
- canvas原型鐘錶效果程式碼例項Canvas原型
- css3水滴效果程式碼例項CSSS3
- css背景虛化效果程式碼例項CSS
- canvas氣泡上浮效果程式碼例項Canvas
- JavaScript運動框架程式碼例項JavaScript框架
- JavaScript取餘數程式碼例項JavaScript
- JavaScript 阻止事件冒泡程式碼例項JavaScript事件
- JavaScript中常用的事件程式碼及例項JavaScript事件
- jQuery點選滑出層效果程式碼例項jQuery
- css3晃動效果程式碼例項CSSS3
- CSS3心形效果程式碼例項CSSS3
- div前後翻轉效果程式碼例項
- 當前文字框高亮效果程式碼例項
- CSS3旋轉效果程式碼例項CSSS3
- canvas繪製箭頭效果程式碼例項Canvas
- JavaScript陣列合並程式碼例項JavaScript陣列
- JavaScript倒數計時程式碼例項JavaScript
- JavaScript 表單驗證程式碼例項JavaScript
- jQuery實現的表格展開伸縮效果例項jQuery
- CSS3滑過光束效果程式碼例項CSSS3
- CSS3小黃人效果程式碼例項CSSS3
- css3折角效果程式碼例項CSSS3
- CSS3梯形效果程式碼例項CSSS3
- CSS3背景漸變效果程式碼例項CSSS3
- CSS3星系運動效果程式碼例項CSSS3
- vuejs實現新增tag標籤程式碼例項VueJS
- 例項程式碼分享Python實現Linux監控PythonLinux
- 小例項: 用vue實現手風琴效果Vue
- JavaScript刪除元素節點程式碼例項JavaScript