一段简单的背景图片轮换,求指正和优化,谢谢。

小路玛利亚 发布于 2013/11/19 18:22
阅读 348
收藏 1
flash_number = 0;
    flashname = ["background_1","background_2","background_3"];
    function flashing() {
      $("#banner").removeClass();
      $("#banner").addClass(flashname[flash_number]);
      flash_number ++;
      if (flash_number == 3) {
        flash_number=0};
      };
    $(document).ready(function(){
      $("#banner").addClass(flashname[2]);
      banner_flash = setInterval("flashing();",5000);  
    });
加载中
0
蔡小峰
蔡小峰

我就是这样实现的。


0
a
adolf
效果比较简单,主要在于setInterval实现定时转换
0
surgesoft
surgesoft

那个3和2不要写死,改成flashname.length 和 flashname.length - 1 ,之后要再用会好一些。

setInterval里最好不要用eval的形式调用

这样是不是好些?

(function () {
  var flash_number = 0;
  var flashname = ["background_1", "background_2", "background_3"];

  function flashing() {
    $("#banner").removeClass();
    $("#banner").addClass(flashname[flash_number]);
    flash_number++;
    if (flash_number === flashname.length) {
      flash_number = 0;
    }
  }

  $(document).ready(function () {
    $("#banner").addClass(flashname[flashname.length - 1]);
    setInterval(flashing, 1000);
  });
}());

0
devchin
devchin

1.js里没有==号。

2.setInterval传值不要是字符串

3.banner_flash 下面不要定义耗时的任务,否则页面会无响应。参见:setInterval(function(){console.log("fine");},1000);while(1){console.log("bad");}setInterval永远都不会执行,这涉及到js的异步编程。。。

4.全局变量,函数命名。。。。。

返回顶部
顶部