【发布时间】:2018-01-21 03:25:18
【问题描述】:
我正在尝试显示一组图像,这些图像将相互替换,但它们之间会有 0.5 秒的黑屏。
例如 array_img = ["im1","im2","im3"] 显示im1 3秒,显示黑屏0.5秒,显示im2 3秒,黑屏0.5秒...
我的代码是 images_array 是一个全局变量。 time_between_images = 3000 并且是一个全局变量 time_for_black_screen = 500 并且是一个全局变量
function displayImages(){
for (i = 0; i < images_array.length; i++) {
console.log(images_array[i]);
setTimeout(function () {
console.log("1");
$('#exprBody').css('background-color', 'white');
$('#picture_frame').append(images_array[i]);
}, time_between_images)
setTimeout(function () {
console.log("2");
$("#picture_frame img:last-child").remove()
$('#exprBody').css('background-color', 'black');
}, time_for_black_screen)
}
console.log(images_array);
}
我的html很简单
<body>
<div id="experiment_frame">
<div id="header">
<div id="left_cat"></div><div id="right_cat"></div>
</div>
<div id="picture_frame" class="centered">
<div id="exp_instruct"></div>
</div>
</div>
</body>
我认为我应该使用 setTimeout,因为我想为数组中的每个图像在两个任务之间切换。 IMG+黑屏,IMG+黑屏 但我的页面上没有显示任何内容。
数组
["<img src='/images/cute/1223.jpg'>", "<img src='/images/cute/1235.jpg'>", "<img src='/images/disgusted/8878.jpg'>", "<img src='/images/disgusted/8898.jpg'>", "<img src='/images/neutral/3321.png'>", "<img src='/images/neutral/3445.png'>"]
编辑:
function displayImageIter(number) {
$("body").toggleClass("whiteBody");
$("#picture_frame").empty().append(images_array[number]);
setTimeout(function () {
$("#picture_frame").empty();
$("body").toggleClass("blackBody");
setTimeout(function () {
displayImageIter((number + 1) % images_array.length);
}, time_for_black_screen)
}, time_between_images)
}
出于某种原因,我对这段代码的了解是 IMG 白色背景 黑屏 0.5 秒 IMG 黑色背景 黑屏白屏0.5秒
【问题讨论】:
-
能否请您包含
images_array变量的数据树?不能 100% 确定这是在 jQuery 中传递给.append()的可行变量 -
添加到原始帖子的编辑中
-
几点:如果你把所有的超时设置在一个循环中,它们都会一个接一个地执行。例如,假设您有 5 张图像,控制台应立即输出:“
”、“
”、“
”、“
”、“
”,然后在 500 毫秒内:“ 2”、“2”、“2”、“2”、“2”,然后再过 2500 毫秒:“1”、“1”、“1”、“1”、“1”。理论上,您应该在执行代码 3 秒后看到 5 张图像。
-
我什么也没看到,但很高兴知道
-
toggleClass如果该类不存在则添加该类,如果存在则将其删除。所以不要使用$("body").toggleClass("whiteBody");,而是使用$("body").toggleClass("blackBody");。如果 body 最初有一个blackBody类,那么第一次将被删除,第二次添加
标签: javascript jquery html