下面的图片幻灯片脚本按预期工作,因为它循环显示带有可选锚链接和描述的图像数组。
现在我想通过添加淡入/淡出效果来改进此脚本。非常感谢任何帮助。
提前谢谢。
<script language="JavaScript1.2">
var variableslide = new Array()
variableslide[0] = ['image1.jpg', 'link here', 'description']
variableslide[1] = ['image2.jpg', 'link here', 'description']
variableslide[2] = ['image3.jpg', 'link here', 'description']
var slidewidth = '600px'
var slideheight = '250px'
var slidebgcolor = '#FFFFFF'
var slidedelay = 3000
var ie = document.all
var dom = document.getElementById
for (i = 0; i < variableslide.length; i++) {
var cacheimage = new Image()
cacheimage.src = variableslide[i][0]
}
var currentslide = 0
function rotateimages() {
contentcontainer = '<center>'
if (variableslide[currentslide][1] != "")
contentcontainer += '<a href="' + variableslide[currentslide][1] + '">'
contentcontainer += '<img src="' + variableslide[currentslide][0] + '" border="0" vspace="3">'
if (variableslide[currentslide][1] != "")
contentcontainer += '</a>'
contentcontainer += '</center>'
if (variableslide[currentslide][2] != "")
contentcontainer += variableslide[currentslide][2]
if (document.layers) {
crossrotateobj.document.write(contentcontainer)
crossrotateobj.document.close()
} else if (ie || dom)
crossrotateobj.innerHTML = contentcontainer
if (currentslide == variableslide.length - 1) currentslide = 0
else currentslide++
setTimeout("rotateimages()", slidedelay)
}
if (ie || dom)
document.write('<div id="slidedom" style="width:' + slidewidth + ';height:' + slideheight + '; background-color:' + slidebgcolor + '"></div>')
function start_slider() {
crossrotateobj = dom ? document.getElementById("slidedom") : ie ? document.all.slidedom : document.slidensmain.document.slidenssub
if (document.layers)
document.slidensmain.visibility = "show"
rotateimages()
}
if (ie || dom)
start_slider()
else if (document.layers)
window.onload = start_slider
</script>
<ilayer id="slidensmain" width=&{slidewidth}; height=&{slideheight}; bgColor=&{slidebgcolor}; visibility=hide>
<layer id="slidenssub" width=&{slidewidth}; left=0 top=0></layer>
</ilayer>
答案 0 :(得分:0)
您要做的是以编程方式降低图像DOM对象的opacity
属性以淡出,同时增加图像的不透明度以淡入。您启动图像淡入0不透明度并工作你的方式。
我找到了一个示例,根据您的代码风格使用没有jQUery或其他框架的直接JavaScript - 请参阅http://tech.pro/tutorial/725/javascript-tutorial-simple-fade-animation
答案 1 :(得分:0)
你能用jQuery吗?它们已经有fadeIn和fadeOut,您可以在其中设置各种属性,一个是以毫秒为单位的持续时间(以确定它将持续多长时间)。
如果你必须使用普通JS,那么它会变得更复杂一些。您需要与旧版浏览器兼容吗?
最简单的方法是setInterval,然后将不透明度降低到0,但并非所有浏览器/版本都支持不透明度。