Javascript幻灯片循环两次很好,然后出现错误
Javascript slideshow cycles fine twice, then bugs out
我按照教程创建了一个简单的javascript幻灯片,但我遇到了一个奇怪的错误。。。前两个周期工作得很好,但一旦计数器重置,幻灯片就会开始快速显示前一张幻灯片,然后尝试在正确的幻灯片中淡出。知道是什么原因造成的吗?
我在一个文件夹中有3个图像(分别命名为Image1.png
、Image2.png
和Image3.png
),用于我的简单幻灯片放映,还有3个div设置如下:
<div id="SlideshowFeature">
<div id="counter">
3
</div>
<div class="behind">
<img src="SlideShow/image1.png" alt="IMAGE" />
</div>
<div class="infront">
<img src="SlideShow/image1.png" alt="IMAGE" />
</div>
</div>
我的javascript看起来像这个
var nextImage;
var imagesInShow;
var currentImage;
var currentSrc
var nextSrc
function changeImage() {
imagesInShow = "3";
currentImage = $("#counter").html();
currentImage = parseInt(currentImage);
if (currentImage == imagesInShow) {
nextImage = 1;
}
else {
nextImage = currentImage + 1;
}
currentSrc = $(".infront img").attr("src");
nextSrc = "SlideShow/image" + nextImage + ".png";
$(".behind img").attr("src", currentSrc);
$(".infront").css("display", "none");
$(".infront img").attr("src", nextSrc);
$(".infront").fadeIn(1000);
$("#counter").html(nextImage);
setTimeout('changeImage()', 5000);
}
$(document).ready(function () {
changeImage();
});
编辑:
这里还有我的CSS
#SlideshowFeature
{
text-align:center;
margin: 0 auto;
width:800px;
background: #02183B;
height:300px;
float: left;
overflow:hidden;
display:inline;
}
#SlideshowFeature div
{
width: 800px;
height:300px;
position:absolute;
}
#counter
{
display:none;
}
问题似乎出现在HTML结构中(而不是JS中):
...
<img src="SlideShow/image1.png" alt="IMAGE" />
...
<img src="SlideShow/image1.png" alt="IMAGE" />
...
我想你是想先放image1.png
,然后放image2.png
.infront必须在前面,.behind必须在后面
.behind {
z-index: 1;
}
.infront {
z-index: 255;
}
我还将重新调度逻辑转移到了fadeIn回调:
$(".infront").fadeIn(1000, function(){setTimeout('changeImage()', 2500)});
$("#counter").html(nextImage);
//setTimeout('changeImage()', 2500);
我现在看起来不错。
相关文章:
- 我如何才能让CasperJS和PhantomJS在约塞米蒂玩得很好
- 在Javascript中使用全局变量作为缓存是很好的
- 我在下拉列表中尝试了下一个和前五年的html代码.接下来的5年我都过得很好.我怎样才能拿到之前的5年
- JavaScript中的OOP太令人困惑了,ES6很棒,但没有得到很好的支持,该怎么办
- "此网站似乎使用滚动链接定位效果.这可能不能很好地与异步平移一起工作;
- html5:一个很好的加载方法
- mootools 1.4.2和angular 1.3在ie8中配合得很好
- Javascript是一个很好的日期选择器和时间选择器库
- 使用JavaScript验证用户交互/输入-这是一种很好的方法
- unbind().click(function(){..})是一种很好的做法
- Chrome,Safari在从本地存储读取时挂起,而Firefox很好
- JQuery在Chrome中不起作用,但Firefox很好
- 这是一个很好的例子,显示了 JavaScript 中的 OOP 和过程编程之间的区别
- Javascript表排序工作得很好,但对所有索引进行迭代会得到不同的结果
- 以这种方式使用if/else-if/else是一种很好的做法
- 一个很好的JS库,用于容纳电气原理图
- webpack:在MacOS上很好,在linux上加载程序错误
- wrap() 不能很好地与 after() 一起使用
- 即首先破坏我的 JS 脚本,然后我按 F12,它工作得很好
- Javascript幻灯片循环两次很好,然后出现错误