透明度グラデーション効果を実現するjsメソッド_javascriptスキル

WBOY
リリース: 2016-05-16 16:05:06
オリジナル
1687 人が閲覧しました

この記事の例では、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 プログラミング設計に役立つことを願っています。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!