この記事の例では、js で透明度のグラデーション効果を実現する方法を説明します。皆さんの参考に共有してください。具体的な分析は次のとおりです。
ここでは、要素の透明度が最初は 30 であることがわかります。マウスを移動すると、透明度が徐々に増加し、透明度が 100 に達すると停止します。マウスが外側に移動すると、透明度はゆっくりと 30 まで減少します。
ポイント 1: 透明度の値を直接取得して変更することはできないため、透明度の値を変数に代入し、その変数を変更させて、最後にその変数の値を要素の透明度の値に代入することができます。
var alpha=30;
ポイント2: 目標値と現在の透明度値を判断して、正の速度か負の速度かを判断します。
if(target > alpha){ speed = 2; }else{ speed = -2; }
ポイント 3: 透明度の値が目標値に達したら、タイマーをオフにします。そうでない場合、透明度の値は変化し続けます。最後に、要素に値を割り当てます。透明度には互換性の問題があるため、2 つの記述方法が必要です。
if(alpha == target){ clearInterval(timer); } else{ alpha = alpha + speed; run.style.filter = 'alpha(opacity='+alpha+')'; run.style.opacity = alpha/100; document.title = alpha; }
最後に、コードを追加します:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title>无标题文档</title> <style> body{margin:0; padding:0;} #run{width:100px; height:100px; background:#06c; position:absolute; border:1px solid #000; opacity:0.3; filter:alpha(opacity=30);} </style> <script> window.onload = function(){ var run = document.getElementById("run"); var btn = document.getElementById("btn"); var speed = 1; var timer = null; var alpha=30; run.onmouseover = function(){ startrun(100); } run.onmouseout = function(){ startrun(30); } function startrun(target){ clearInterval(timer); timer = setInterval(function(){ if(target > alpha){ speed = 2; }else{ speed = -2; } if(alpha == target){ clearInterval(timer); } else{ alpha = alpha + speed; run.style.filter = 'alpha(opacity='+alpha+')'; run.style.opacity = alpha/100; document.title = alpha; } },30) } } </script> </head> <body> <div id="run"></div> </body> </html>
この記事が皆様の JavaScript プログラミング設計に役立つことを願っています。