javascript写真は自動的に順番に回っています.


昨日同僚と話をしました.  何の効果もいらないです.jsを使って対象に向かってプログラミングしますが、個人的にはjsを使って対象に向かってプログラミングすると以下のような利点があります.  コード冗長量が低い  二:メンテナンス性が高い  コード量の簡素化は相対的に性能を向上させる.  四:HTMl構造のクラス名またはIDに依存しないで、ページの中のクラスが変わると対象に向かうjsはまったく何の変更も必要ないです.ただパラメータを伝達して入るだけです.  同僚が何も要らないと言っていますが、対象に向かって書くなら、今日はプロセスに向かってプログラミングします.今日も簡単に写真を書きました.自動轮番効果はこれはtabと同じ原理です.今は基本的にコードを手書きで書くことができますが、効果を少し書いても複雑な動画が出たらjqueryやkisyのフレームを使いたいです.これは原審jsでは書きにくいです.ナンセンス小説:コードは以下の通りです.
まずは基本的なベースの方法です.
 

  
  
  
  
  1. function getElementsByClassName(className,context){ 
  2.         context = context || document; 
  3.         if(context.getElementsByClassName){ 
  4.             return context.getElementsByClassName(className);    
  5.         } 
  6.         var nodes = context.getElementsByTagName("*"),ret=[];//  
  7.         for(var i=0;i<nodes.length;i++){   //  
  8.             if(hasClass(nodes[i],className)) ret.push(nodes[i]); 
  9.         }    
  10.         return ret; 
  11.     } 
  12.      
  13. //  
  14. function hasClass(node,className){ 
  15.     var names = node.className.split(/\s+/);//     
  16.     //  
  17.     for(var i=0;i<names.length;i++){ 
  18.         if(names[i]==className) 
  19.             return true;     
  20.         } 
  21.         return false;    
  22.     } 
  23.          
  24. /** 
  25.  
  26. curTime      0 
  27. start :   
  28. dur :   
  29. alter :   
  30. */ 
  31. function animate(o,start,alter,dur,fx){ 
  32.     var curTime=0; 
  33.     var t = setInterval(function(){ 
  34.         if(curTime>=dur) clearInterval(t); 
  35.         for(var i in start){ 
  36.             o.style[i] = fx(start[i],alter[i],curTime,dur) + "px";   
  37.         } 
  38.         curTime+=50; 
  39.     },50)    
  40.     return function(){ 
  41.         clearInterval(t);    
  42.     }; 
  43.  
  44. function Linear(start,alter,curTime,dur){ 
  45.     return start + curTime/dur * alter;  
  46.     //        
  47. //  
  48. function Quad(start,alter,curTime,dur){ 
  49.     return start + Math.pow(curTime/dur,2)*alter;    
  50.  function addClass(obj,className){   
  51.      obj.className+=" " +className;     
  52.      return obj;   
  53. function delClass(obj,className){   
  54.     var s = obj.className.split(/\s+/);//    
  55.     for(var i=0;i<s.length;i++){   
  56.     if(s[i]==className){   
  57.     delete s[i];       
  58.     }      
  59.     }   
  60.     obj.className = s.join(" ");   
  61.     return obj;   
  62. }  
  63. function addEvent(obj,type,fn,status){ 
  64.     if(obj.addEventListener){ 
  65.         obj.addEventListener(type,fn,false); 
  66.     }else
  67.         obj.attachEvent("on"+type,function(){ 
  68.             fn.call(obj); 
  69.         }) 
  70.     } 
ページのコードは以下の通りです.
 

  
  
  
  
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
  2. <html xmlns="http://www.w3.org/1999/xhtml"> 
  3. <head> 
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
  5. <title> </title> 
  6. <style> 
  7. div,ul,li{ list-style:none; margin:0; padding:0;} 
  8. img{ border:none;} 
  9. .slider{ width:634px; height:230px; overflow:hidden; margin:50px auto 0; position:relative;} 
  10. .imgMarquee{ position:absolute; left:0; top:0; z-index:10;} 
  11. </style> 
  12. <script src="base.js"></script> 
  13. </head> 
  14.  
  15. <body> 
  16.     <div class="slider" id="slider"> 
  17.         <div class="imgMarquee"> 
  18.             <img  src="01.jpg" width="630" height="230" class="timg"/> 
  19.             <img  src="02.jpg" width="634" height="230" class="timg"/> 
  20.             <img  src="03.gif" width="634" height="230" class="timg"/> 
  21.         </div> 
  22.     </div> 
  23. <script type="text/javascript"> 
  24.     var slider = document.getElementById("slider"); 
  25.     var imgMarquee = getElementsByClassName("timg"); 
  26.     var currentIndex = 0
  27.     var t; 
  28.     t = setInterval(function(){ 
  29.         Start();     
  30.     },3000) 
  31.     function Start(){ 
  32.         if(currentIndex >= imgMarquee.length){ 
  33.             currentIndex = 0;    
  34.         } 
  35.         showItem(currentIndex); 
  36.         currentIndex++;      
  37.     } 
  38.     function showItem(n){ 
  39.         for(var i=0;i<imgMarquee.length;i++){ 
  40.             imgMarquee[i].style.display = "none";    
  41.         } 
  42.         imgMarquee[n].style.display = "block";   
  43.     } 
  44.     slider.onmouseover = function(){ 
  45.         clearInterval(t);    
  46.     } 
  47.     slider.onmouseout = function(){ 
  48.         t = setInterval(function(){ 
  49.             Start();     
  50.         },3000)  
  51.     } 
  52. </script> 
  53. </body> 
  54. </html>