在这里,我尝试使用两个图像来做图像滑块,但是当我在两个选项卡中打开同一页面时,或者如果我最小化 Firefox 并再次最大化,图像滑块会闪烁并且无法正常工作。隐藏和显示类使用 setTimeout 方法,它们被放置在也使用 setTimeout 方法的淡入淡出类中。
<html>
<head>
<style type="text/css">
.image1 {
height: 300;
left: 181px;
position: absolute;
top: 103px;
width: 300;
}
</style>
<script type="text/javascript">
var a = 1;
var flg = 0,
flg2 = 0;
function fade() {
setTimeout(function () {
if (flg2 == 0) {
hide();
flg2 = 1;
fade();
} else {
show();
flg2 = 0;
fade();
}
}, 3000);
}
function hide() {
document.getElementById("img1").style.opacity = a;
document.getElementById("img2").style.opacity = (1 - a);
if (a > 0)
a = a - 0.1;
else
flg = 1;
if (flg == 0)
setTimeout(function () {
hide();
}, 50);
else
flg = 0;
}
function show() {
document.getElementById("img1").style.opacity = a;
document.getElementById("img2").style.opacity = (1 - a);
if (a < 1.0)
a = a + 0.1;
else
flg = 1;
if (flg == 0)
setTimeout(function () {
show();
}, 50);
else
flg = 0;
}
</script>
</head>
<body onload="fade()">
<img class="image1" height="225" id="img1" src="img/image1.jpg" style="z-index:100" width="225"/>
<img class="image1" height="225" id="img2" src="img/image2.jpg" style="z-index:1" width="225"/>
</body>
</html>