日期:2014-03-19  浏览次数:20787 次

  下面,我要开始最为核心的部分了,就是编写JavaScript程序了。我们的思路是,可以定义一组图片(若干张),当页面出现时先显示第一张图片,并预载入第二张图片,第一张图片载入后5秒钟,如果第二张图片也载入了,我们就开始自动切换到第二张图片,此时并预载入第三张图片,如果5秒钟内我们载入了第三张图片,就自动切换到第三张图片,如此播放下去直到最后一张又从头开始。当然,这是自动播放的了。我们还允许用户手动进行向前和向后的播放。


  首先,我们要解决的问题是图片的预载入,因为这决定了切换过程的流畅性和播放过程的完美性。要预载入一幅图片很简单,我们只要在内存中新建一个图片的实例变量,并把该变量指向一幅图片,这样,我们的浏览器便会自动载入这幅图片的,这就是图片的预载入。用JavaScript写出来就是下面这个样子:

      var myImage = new Image()
      myImage.src = "someImage.gif"

  然后,我们还要知道,图片是否载入了吗?如果载入了,我们就显示,如果没载入,那么就要出错了。于是我们还要改一下上面的代码,在其中加入两条语句,所以,这段JavaScript就变成下面的样子了:

      var img = new Image()
      img.onload = doReadyImage
      img.onerror = doErrorDisplay
      img.src = "someImage.gif"

  我们加入了图片的onload和onerror事件,分别代表是否预载和预载出错的事件。这两条句语必需在img.src语句的前面。否则的话,图片预载就会出错。

  最后就是我们的图片切换程序了,在前面,我们复习了CSS中Filter转换滤镜的各种效果,这里我们用代号为23的随机效果,下面,是我们为在IE中这种效果所写的JavaScript程序:

if (document.images.slideShow.filters)
{
  document.images.slideShow.filters[0].Stop()
  document.images.slideShow.filters[0].Apply()
  // 使用随机的转换效果
  document.images.slideShow.filters.revealTrans.transition=23
}

document.images.slideShow.src = sSource
// 开始进行转换效果的执行
if (document.images.slideShow.filters)
    document.images.slideShow.filters[0].Play()