Contoh dalam artikel ini menerangkan kaedah menggunakan js untuk mencapai berbilang kesan gerakan berbeza pada halaman yang sama. Kongsikan dengan semua orang untuk rujukan anda. Analisis khusus adalah seperti berikut:
Mata 1:
function getstyle(obj,name){ if(obj.currentStyle){ return obj.currentStyle[name]; }else{ return getComputedStyle(obj,false)[name]; } }
Dapatkan nilai daripada helaian gaya berdasarkan id dan nama atribut.
Mata 2:
if(attr == "opacity"){ cur = Math.round(parseFloat(getstyle(obj,attr))*100); }else{ cur = parseInt(getstyle(obj,attr)); }
Jika anda menetapkan nilai ketelusan, anda perlu menggunakan parseFloat kerana mungkin terdapat titik perpuluhan.
Jika anda menetapkan nilai bukan ketelusan, gunakan parseInt untuk mendapatkan bahagian berangka sahaja
Perkara nota lain telah disebutkan dalam artikel sebelum ini dan tidak akan diulang di sini.
Akhir sekali, tambah kod:
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>无标题文档</title> <style> body,ul,li{margin:0; padding:0;} #runs li{width:80px; height:80px; background:#06c; list-style:none; margin:10px; border:1px solid #000; filter:alpha(opacity=30); opacity:0.3;} </style> <script> window.onload = function(){ var runs = document.getElementById("runs"); var runs_li = runs.getElementsByTagName("li"); runs_li[0].onmouseover = function(){ startrun(this,"width",300); } runs_li[0].onmouseout = function(){ startrun(this,"width",80); } runs_li[1].onmouseover = function(){ startrun(this,"height",300); } runs_li[1].onmouseout = function(){ startrun(this,"height",80); } runs_li[2].onmouseover = function(){ startrun(this,"fontSize",50); } runs_li[2].onmouseout = function(){ startrun(this,"fontSize",14); } runs_li[3].onmouseover = function(){ startrun(this,"opacity",100); } runs_li[3].onmouseout = function(){ startrun(this,"opacity",30); } } function startrun(obj,attr,target){ clearInterval(obj.timer); obj.timer = setInterval(function(){ var cur = 0; if(attr == "opacity"){ cur = Math.round(parseFloat(getstyle(obj,attr))*100); }else{ cur = parseInt(getstyle(obj,attr)); } var speed = (target - cur)/8; speed = speed>0?Math.ceil(speed):Math.floor(speed); if(cur == target){ clearInterval(obj.timer); }else{ if(attr == "opacity"){ obj.style.filter='alpha(opacity='+(cur+speed)+')'; obj.style.opacity=(cur+speed)/100; }else{ obj.style[attr] = cur+speed+"px"; } } },30); } function getstyle(obj,name){ if(obj.currentStyle){ return obj.currentStyle[name]; }else{ return getComputedStyle(obj,false)[name]; } } </script> </head> <body> <ul id="runs"> <li style="top:0">1</li> <li style="top:90px;">2</li> <li style="top:180px;">3</li> <li style="top:270px;">4</li> </ul> </body> </html>
Saya harap artikel ini akan membantu reka bentuk pengaturcaraan JavaScript semua orang.