2010-08-21 22 views
0

我需要在我的网站上循环浏览4个图像,我不想在网站上添加另一个插件,所以我创建了自己的简单传送带(html,css和js)优化一个简单的jQuery图像传送带

我的问题是,仅仅从看这段代码,有没有一种明显更简单/更好的方法来做到这一点?

HTML:

<section id="carousel"> 
    <img src="images/image_00.jpg" width="202" height="162" /> 
</section> 

CSS:

#carousel{text-align:center;position:relative;} 
#carousel img{top:0;left:0;z-index:1;position:absolute;} 

JS:

function carousel(el, base_url, images, i){ 
    if (i == images.length) i = 0; 
    var el2 = $(el).clone(); 
    $(el).css('z-index', '1'); 
    el2.css('z-index', '0'); 
    el2.attr('src', base_url + images[i]); 
    $(el).after(el2); 
    $(el).fadeOut('slow', function(){ 
     $(this).remove(); 
    }); 
    i++; 
    var func = function(){return carousel(el, base_url, images, i);}; 
    window.timer = setTimeout(func, 4000); 
} 
$(document).ready(function(){ 
    carousel('#carousel img:first', 
      'images/', 
      ['image_00.jpg', 
       'image_01.jpg', 
       'image_02.jpg', 
       'image_03.jpg'], 
      0); 
}); 
+0

为什么不使用CSS图像的宽度和高度? – 2010-08-21 10:28:33

+0

它只是一个复制粘贴。 无关 – Tombigel 2010-08-21 11:48:02

回答

0

这里是我的优化版本...

HTML

<!-- "section" is not valid HTML --> 
<div id="carousel"> 
     <img src="images/01.jpg" width="202" height="162" /> 
</div> 

CSS

/* Same as before */ 
#carousel{text-align:center;position:relative;} 
#carousel img{top:0;left:0;z-index:1;position:absolute;} 

的Javascript

function carousel(el, base, images, i){ 
    //Made the "i" parameter optional 
    if (i == images.length || i == null) i = 0; 
    //Put the variables in a better order 
    var el2 = $(el).clone(); 
    el2.attr('src', base + images[i]); 
    el2.css('z-index', '0'); 
    $(el).css('z-index', '1'); 
    $(el).after(el2); 
    //One line... 
    $(el).fadeOut('slow', function(){$(this).remove();}); 
    i++; 
    //The function doesn't have to be in a variable 
    window.timer = setTimeout(function(){return carousel(el, base, images, i);}, 4000); 
} 

$(function($){ 
    //Didn't include "i" variable 
    carousel('#carousel img:first', 
      'images/', 
      ['01.jpg', 
       '02.jpg', 
       '03.jpg', 
       '04.jpg']); 
}); 
+0

谢谢,但除了删除“我”你什么都没有优化。 – Tombigel 2010-08-23 06:30:55

+0

嗯,这是我可以做的最好的,我认为它的优化,因为它可以得到 – 2010-08-23 17:08:58