登录模块加载中...
会员投稿 投稿指南 今天是:
打印本页 | 关闭窗口 | 双击滚屏 您的位置首页>>网页制作学习园地>>HTML教程>>DHTML教程>>DHTML幻灯片播放程序
DHTML幻灯片播放程序
来源: ‖ 作者: ‖ 点击: ‖ 时间:12-09-19 16:58:14 ‖ 【 】‖ 我要投稿
这是一个幻灯片播放程序,也就是一图片轮流播放的程序。我们在一些站点上可以看见这种形式的广告播放条,大多是用CGI做的,也就是要服务器端支持CGI程序,如aspphp、Perl等。但我们这里的实现方法无需CGI,用的仅是CSS的效果,再加上javaScripts的控制。只要你的浏览器是IE 4.0以上或是Netscape 3.0以上的就可以了。只不过在这里我们用到了CSS的Filter滤镜效果,该效果只能在IE中出现。有关CSS的Filter滤镜效果,大家可以参看我的《CSS中Filter滤镜详解》,该文章在Yesky.com上已经发表。
好了,让我们来做点准备工作吧。

  首先,为了制作这个效果,我们首先要打几个尺寸一样大小的图片,让其轮流播放。比如,我找了下面三个88x31的图片做为所用的的图片。


  其次,让我们再来复习一下CSS中Filter的图片转换滤镜的知识:

CSS中的显示转换滤镜

  显示转换滤镜提供的是一种更为多变的转换效果,它不像混合转换滤镜,只提供一种淡入淡出的效果,它还提供了更多的图片转换效果,它的语法是:

Filter : RevealTrans ( duration = 转换的秒数,transition=转换类型 )

  大家可以看见,它有一个转换类型的参数,这里,它提供了24种转换类型,我们只需指定转换类型的代号,就可以让图片按特有的转换效果进行转换。下表就是24种转换滤镜的形式及其对应的代号:
显示转换滤镜的转换形式 所对应的代号 显示转换滤镜的转换形式 所对应的代号
矩形从大至小 0 随机溶解 12
矩形从小至大 1 垂直向内裂开 13
圆形从大至小 2 垂直向外裂开 14
圆形从小至大 3 水平向内裂开 15
向上推开 4 水平向外裂开 16
向下推开 5 向左下剥开 17
向右推开 6 向左上剥开 18
向左推开 7 向右下剥开 19
垂直形百叶窗 8 向右上剥开 20
水平形百叶窗 9 随机水平细纹 21
水平棋盘 10 随机垂直细纹 22
垂直棋盘 11 随机选取一种特效 23
-

动态转换滤镜的属性、方法和事件
属性名                   说明                                             取值 
duration         图像转换的延迟时间,最小单位是毫秒,也就是小数点后第三位。  单位是秒,取值自然数  
enabled            指定是否应用滤镜效果                        0表示不应用,非0表示就用。  
staus                  传回一个转换状态                        0表示转换停止
1表示显示应用的转换滤镜
2表示正在转换中 
方法名 说明 
Apply 将滤镜应用到对象上 
Play 开始转换 
Stop 停止转换 
事件名 说明 
OnFilterChange 当滤镜转变发生改变或是滤镜完成时所触发的事件 

  上面的CSS的转换滤镜如何被javaScripts调用的知识我没有过多的说明,我只是列举了他的属性方法和事件。在后面,我们用Javascript来控制他的时候,我会告诉大家如何用JavaScripts使其工作的。当然这些滤镜只能在IE4.0中浏览,NetScape不支持,不过,这并不影响netscape中的显示,只不过Netscape中不会出现图片转换的效果下面,我要开始最为核心的部分了,就是编写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() 

加入收藏:  加入收藏夹  | 发送给好友:  发送给好友
责任编辑:admin
  • 上一篇:用DHTML制作带链接的滚动公告栏
  • 下一篇:无
  • 相关文章列表
    请文明参与讨论,禁止漫骂攻击。  
    网友评论