分享
 
 
 

超强幻灯片播放 HTC(VBS)

王朝vb·作者佚名  2006-01-10
窄屏简体版  字體: |||超大  

《超强幻灯片播放脚本(VBS)》是在2003年11月完成的,当时是我自己网站上图片浏览的一个附加功能。在CSDN发表后被很多网站转载。如今已经过去两年了,再看看这段代码觉得还是挺实用的。不过缺点也不少,最主要是使用不太方便。为此又重新将其编写成HTC组件,这样使用就更方便了。另外加入了几个可控制的属性,详情请查看注释中的属性说明。如有问题请留言或发邮件。

以下为 HTC 文件代码:

<!--

*************************************************

幻灯片播放HTC组件

夜雨休闲 By 2005-10

triumph1218@gmail.com

*************************************************

属性:

ImgFileList

说明:图像文件列表。每个图像之间用“|”(竖线)分隔

数据类型:String

PlayDelay

说明:播放延迟时间。单位:秒。

数据类型:Integer

默认值:5

Effect

说明:切换效果

数据类型:String

取值范围:

"RevealTrans" :24种转换对象内容的效果(随机显示)

"BlendTrans" :渐变效果

---- 以下效果需在 IE 5.5 或以上版本 ----

"Pixelate" :马赛克渐变效果

"Fade" :淡入淡出效果

"GradientWipe" :滚动渐变效果

"Stretch" :拉伸(缩)变形效果

"Wheel" :风车叶轮旋转效果

"RandomDissolve" :随机像素溶解效果

"Spiral" :矩形螺旋效果

"Slide" :滑条抽离效果

"RadialWipe" :放射状擦除效果

默认值:全部效果。

EffectDuration

说明:切换持续时间。单位:秒。

数据类型:Currency

数据有效范围:0-10取值为0则不需要切换效果

默认值:1

*************************************************

-->

<PUBLIC:COMPONENT>

<PUBLIC:ATTACH EVENT="ondocumentready" ONEVENT="Init" />

<PUBLIC:METHOD NAME="ChangeImg"/>

<public:property name="ImgFileList" />

<public:property name="PlayDelay" />

<public:property name="Effect" />

<public:property name="EffectDuration" />

<SCRIPT LANGUAGE="VBScript">

Dim FileListArr, FilterArr, CurrentImgIndex

Sub Init

With element

If .EffectDuration="" Or Not IsNumeric(.EffectDuration) Then .EffectDuration = 1

.EffectDuration = CCur(.EffectDuration)

If .EffectDuration > 10 Or .EffectDuration < 0 Then .EffectDuration = 1

Dim Eff_RevealTrans, Eff_BlendTrans, Eff_IE55_Pixelate, Eff_IE55_Fade, Eff_IE55_GradientWipe, Eff_IE55_Stretch, Eff_IE55_Wheel, Eff_IE55_RandomDissolve, Eff_IE55_Spiral, Eff_IE55_Slide, Eff_IE55_RadialWipe

Eff_RevealTrans = "RevealTrans(duration=" & .EffectDuration & ",transition=23)"

Eff_BlendTrans = "BlendTrans(duration=" & .EffectDuration & ")"

Eff_IE55_Pixelate = "progid:DXImageTransform.Microsoft.Pixelate(,enabled=false,duration=" & .EffectDuration & ",maxSquare=25)"

Eff_IE55_Fade = "progid:DXImageTransform.Microsoft.Fade(duration=" & .EffectDuration & ",overlap=0)"

Eff_IE55_GradientWipe = "progid:DXImageTransform.Microsoft.GradientWipe(duration=" & .EffectDuration & ",gradientSize=0.25,motion=forward )"

Eff_IE55_Stretch = "progid:DXImageTransform.Microsoft.Stretch(duration=" & .EffectDuration & ",stretchStyle=PUSH)"

Eff_IE55_Wheel = "progid:DXImageTransform.Microsoft.Wheel(duration=" & .EffectDuration & ",spokes=16)"

Eff_IE55_RandomDissolve = "progid:DXImageTransform.Microsoft.RandomDissolve(duration=" & .EffectDuration & ")"

Eff_IE55_Spiral = "progid:DXImageTransform.Microsoft.Spiral(duration=" & .EffectDuration & ",gridSizeX=50,gridSizeY=50)"

Eff_IE55_Slide = "progid:DXImageTransform.Microsoft.Slide(duration=" & .EffectDuration & ",bands=1,slideStyle=SWAP)"

Eff_IE55_RadialWipe = "progid:DXImageTransform.Microsoft.RadialWipe(duration=" & .EffectDuration & ",wipeStyle=CLOCK)"

Dim CanPlay, FilterStr

CanPlay = CInt(Split(Split(navigator.appVersion,";")(1)," ")(2))>5

FilterStr = Eff_RevealTrans + ";" + Eff_BlendTrans

If CanPlay Then

FilterStr = FilterStr + ";" + Eff_IE55_Pixelate + ";" + Eff_IE55_Fade + ";" + Eff_IE55_GradientWipe + ";" + Eff_IE55_Stretch + ";" + Eff_IE55_Wheel + ";" + Eff_IE55_RandomDissolve + ";" + Eff_IE55_Spiral + ";" + Eff_IE55_Slide + ";" + Eff_IE55_RadialWipe

End If

If .Effect<>"" Then

Select Case UCase(.Effect)

Case "REVEALTRANS"

FilterStr = EFF_REVEALTRANS

Case "BLENDTRANS"

FilterStr = EFF_BLENDTRANS

Case "PIXELATE"

FilterStr = EFF_IE55_PIXELATE

Case "FADE"

FilterStr = EFF_IE55_FADE

Case "GRADIENTWIPE"

FilterStr = EFF_IE55_GRADIENTWIPE

Case "STRETCH"

FilterStr = EFF_IE55_STRETCH

Case "WHEEL"

FilterStr = EFF_IE55_WHEEL

Case "RANDOMDISSOLVE"

FilterStr = EFF_IE55_RANDOMDISSOLVE

Case "SPIRAL"

FilterStr = EFF_IE55_SPIRAL

Case "SLIDE"

FilterStr = EFF_IE55_SLIDE

Case "RADIALWIPE"

FilterStr = Eff_IE55_RadialWipe

End Select

End If

FilterArr = Split(FilterStr,";")

If .PlayDelay="" Or Not IsNumeric(.PlayDelay) Then .PlayDelay = 5

.PlayDelay = CInt(.PlayDelay)

.PlayDelay = .PlayDelay * 1000

If .ImgFileList = "" Then Exit Sub

FileListArr = Split(.ImgFileList,"|")

If UBound(FileListArr)=0 Then Exit Sub

CurrentImgIndex = 0

If .src = "" Then

.src = FileListArr(0)

CurrentImgIndex = 1

Else

Dim I, blnNoFile, intImgFileCount

blnNoFile = True

intImgFileCount = UBound(FileListArr) + 1

For I = 0 To intImgFileCount - 1

If FileListArr(I) = .src Then

blnNoFile = False

Exit For

End If

Next

If blnNoFile Then

ReDim Preserve FileListArr(intImgFileCount)

FileListArr(intImgFileCount) = .src

End If

End If

window.setInterval uniqueID + ".ChangeImg",.PlayDelay,"vbscript"

End With

End Sub

Sub ChangeImg

With element

Dim J

If CurrentImgIndex > UBound(FileListArr) Then CurrentImgIndex = 0

Randomize

J = Int(Rnd * (UBound(FilterArr)+1))

If .EffectDuration = 0 Then

.Src = FileListArr(CurrentImgIndex)

Else

.style.Filter = FilterArr(J)

.filters(0).Apply

.Src = FileListArr(CurrentImgIndex)

.filters(0).play

End If

CurrentImgIndex = CurrentImgIndex + 1

End With

End Sub

</SCRIPT>

</PUBLIC:COMPONENT>

如何使用:

将上面的代码保存成HTC文件,如“SwitchImg.htc”,在页面代码中使用:

<img

style="behavior: url(SwitchImg.htc);"

ImgFileList="1.jpg|2.jpg|3.jpg|4.jpg"

PlayDelay="5"

Effect="GradientWipe"

EffectDuration="1"

/>

如果省略某个属性则使用该属性的默认值。可以不书写 IMG 的 src 属性。若无该属性,则页面加载时图片显示的是 ImgFileList 的第一张图片。如该属性有指定的图片时,程序会判断该图片是否同时存在于 ImgFileList 中,如不存在,则添加到 ImgFileList 中。在《超强幻灯片播放脚本(VBS)》中各图片之间使用“,”逗号分隔,在此版中改为使用“|”竖线分隔。这是因为操作系统允许在文件名中使用逗号和分号,如果图片路径中出现逗号时就无法显示。所以改为竖线。竖线不允许出现在文件夹名或文件名中。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有