js移入和離開動畫方式改變透明度
分享一段程式碼例項,它實現了滑鼠懸浮透明度動畫漸變效果。
程式碼例項如下:
[HTML] 純文字檢視 複製程式碼<!doctype html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <style type="text/css"> #div1 { width: 100px; height: 100px; background-color: red; } </style> </head> <body> <div id="div1"> </div> </body> <script> var oDiv1 = document.getElementById("div1"); oDiv1.onmouseover = function() { linerMove(this, "opacity", 30, -1); } oDiv1.onmouseout = function() { linerMove(this, "opacity", 100, 1) } function linerMove(obj, attr, iTarget, speed) { clearInterval(obj.timer); obj.timer = setInterval(function() { var attrValue = getStyle(obj, attr); if (attr == "opacity") { attrValue = attrValue * 100 } else { attrValue = parseInt(attrValue); } if (Math.abs(iTarget - attrValue) <= Math.abs(speed)) { if (attr == "opacity") { obj.style[attr] = iTarget / 100; } else { obj.style[attr] = iTarget + "px"; } clearInterval(obj.timer); } else { if (attr == "opacity") { obj.style[attr] = (attrValue + speed) / 100; } else { obj.style[attr] = attrValue + speed + "px"; } } }, 30); } function getStyle(obj, attr) { if (obj.currentStyle) { return obj.currentStyle[attr]; //針對IE } else { return getComputedStyle(obj)[attr]; //相對其他瀏覽器 } } function linerMove(obj, attr, iTarget, speed) { clearInterval(obj.timer); obj.timer = setInterval(function() { var attrValue = getStyle(obj, attr); attrValue = attrValue * 100; //Math.abs()絕對值 if (Math.abs(iTarget - attrValue) <= Math.abs(speed)) { obj.style[attr] = iTarget / 100; clearInterval(obj.timer); } else { obj.style[attr] = (attrValue + speed) / 100; } }, 20); } function getStyle(obj, attr) { if (obj.currentStyle) { return obj.currentStyle[attr]; //針對IE } else { return getComputedStyle(obj)[attr]; //相對其他瀏覽器 } } </script> </html>
使用js程式碼一個好處可以相容低版本的IE瀏覽器,但是實在是太麻煩了。
使用css3比較方便,具體可以參閱css實現透明度漸變效果一章節。
相關文章
- js動畫方式改變div尺寸程式碼例項JS動畫
- JavaScript動畫方式改變元素寬度和高度JavaScript動畫
- CSS 動畫方式改變 div 尺寸CSS動畫
- JavaScript 動畫方式設定元素尺寸和透明度JavaScript動畫
- iOS專案開發實戰——設定檢視的透明度改變動畫iOS動畫
- svg以動畫方式設定透明度SVG動畫
- JavaScript與CSS3動畫方式改變元素尺寸JavaScriptCSSS3動畫
- CSS3動畫方式改變div元素的尺寸CSSS3動畫
- jQuery動畫方式設定元素的透明度jQuery動畫
- 以動畫方式設定元素的透明度動畫
- Flutter之改變Widget透明度Flutter
- jQuery以動畫方式設定元素的透明度jQuery動畫
- 精讀《Suspense 改變開發方式》
- JavaScript漸變方式設定透明度JavaScript
- js滑鼠懸浮連結背景動畫方式漸變效果JS動畫
- android佈局改變動畫Android動畫
- CSS3漸變方式設定透明度CSSS3
- 看那些改變醫生和病人交流方式的APPAPP
- 三種滑動方式的比較(scrollTo & view動畫 & 改變佈局引數)View動畫
- 技術改變生活方式
- jQuery位移和透明度同時進行動畫效果jQuery動畫
- js bind 改變toStringJS
- ES6模組化改變前端的原生開發方式前端
- Myeclipse如何改變編碼方式Eclipse
- js 和 css動畫JSCSS動畫
- jquery實現的元素以動畫方式移動和漸變效果jQuery動畫
- js div層漸變方式開啟和關閉效果程式碼例項JS
- 滑鼠懸浮改變元素的樣式離開樣式還原
- 中國將要改變軟體購買和銷售的方式
- 低程式碼正在改變企業的應用開發方式
- 改變程式設計師開發方式的15個技術程式設計師
- CSS 透明度漸變CSS
- CSS hover改變背景圖片過渡動畫生硬CSS動畫
- 用js實現動畫效果核心方式JS動畫
- 日本IP和中國遊戲市場,如今正在悄悄改變合作方式遊戲
- 時代和技術在變,但數控分離的架構設計理念未曾改變架構
- 巧妙改變某型別檔案的預設開啟方式(轉)型別
- 風變,用技術改變與世界的相處方式