用Javscript制作图片变换特效 冯永曜 黄山村夫
本文介绍的这种动态切换图片效果,具有二十三种切换样式,并不是用动画软件制作的动画,而是用Javascript制作出来的效果,是不是有点出乎你的意料。更值得一看的是它只用了廖廖几行程序代码,且变换的图片数量可以随意增加却不增加程序代码。你感到奇怪吗?继续往下看你就明白了。 制作思路: 给插入的图片加上一个ID(img1)号,以便 Javascript程序对其操作,再给图片加载一个CSS的动态滤镜revealTrans,然后用一小段Javascript程序定时不断地改变revealTrans滤镜的Transition参数值以获得不断地更换切换样式,同时通过程序不断地改变图像标记<img>的“src”(图片的地址)参数值,以获得更换图片的效果。 制作方法: 1、在网页中插入一张图片,给图片加上ID号为:img1,若改变ID号,那么在程序中也要作相应改变。再给图片加载一个revealTrans滤镜,完成后的图像标记<img>的完整代码如下: <img id="img1" src="image/cssp1.jpg" width="200" height="134" style="filter:revealTrans(Transition=1,Duration=1.5)" > 滤镜中的Duration是控制切换时间(以秒计)的,本例设置的是1.5秒,若想使切换过程慢一些,可加大Duration参数的值。
2、在网页源代码的<head>与</head>之间插入下面这段Javascript程序代码: <script language="JavaScript"> <!-- var k=0; //声明一个计数器变量 var imgname1="image/cssp"; //所有图片地址的前面相同的部分,要根据实际修改这个值。 var imgname2=".jpg"; //图片的文件格式,可根据实际情修改,前面那个小点不要漏了。 var imgnub=3; //要展示的图片的张数,根据实际修改此值。 function start(){ //程序主体部分 obj=eval("img1"); //若图像标记的ID号改变,请修改括号中的字符串值。 if (obj.filters.item(0).Transition==23) // 这部分语句是用于改变切换样式,在23种样式中循环。 obj.filters.item(0).Transition=1; else obj.filters.item(0).transition++; obj.filters.item(0).Apply(); if (k<imgnub) {k++; //这部分语句用于改变图像标记的src的图片地址(既含路径的文件名)。 }else {k=1; } obj.src=imgname1+k+imgname2; obj.filters.item(0).Play(); setTimeout("start(1)",3000); //每三秒钟刷新一次。 } --> </script> 若要让图片在切换后停留的时间长一点,可加大定时函数setTimeout中的定时数值(以毫秒计)。
3、在网页源代码的<body>标记中加上onload="start()"事件,以使得在网页载入时就显示动态切换效果。 至此,制作结束。是不是一点都不难?!但在实际制作时应注意以下几点: 1、所有图片的文件名和文件格式要统一,用序号区分,如本例所用图片的文件名(含相对路径)为:image/cssp1.jpg、image/cssp2.jpg、image/cssp3.jpg; 2、所有图片的大小最好要一致。若图片的大小不一致,虽不影响程序的运行,但在显示时,均以插入在网页上的那张图片的大小来显示,那么,大的图片将缩小显示,小的图片放大显示,影响效果。 3、在修改定时器函数setTimeout中的定时时间或修改CSS的revealTrans的切换时间Duration参数的值时,要使前者的时间大于后者的时间,否则,切换过程还没有完成就又开始下一过程了,从而使人无法看清楚图片。另外要注意,定时器是以毫秒为单位计时,而滤镜是以秒为单位计时。
与 或 标题 全文 关键字 以上全部
·国家级治脑病新药思维源 ·中藏药治疗脑病新突破 ·治类风湿,强直性脊柱炎 ·养肾·痛风·长寿 ·肝病泌尿脑萎缩新药介绍 ·强直性脊柱炎康复乐园 ·让中医辩证不孕不育 ·国医治股骨头坏死一绝 ·乙肝为何久治不愈? ·二千元垄断批发做老板 ·中医中药专治前列腺 ·治牛皮癣白癜风已成现实 ·专治痛风病的白衣天使 ·不孕不育的杏林奇葩 ·专卖店零售管理系统