Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 延迟显示图像只工作一次_Jquery_Html_Fadein - Fatal编程技术网

Jquery 延迟显示图像只工作一次

Jquery 延迟显示图像只工作一次,jquery,html,fadein,Jquery,Html,Fadein,我有一种情况,我需要延迟页面上某个图像的显示。该页面是美国的图像地图。当用户单击某个州时,该地图上会打开一个jQuery支持的覆盖图,显示该州的信息 这里讨论的图像位于覆盖层内,但其位置设置为固定,因此不会滚动。它在覆盖层出现之前出现在覆盖层的顶部,这就是为什么我要稍微延迟它。那部分很好用。这是我的密码: $(document).ready(function () { setTimeout(function(){ $('.scrollInst').fadeIn(500);

我有一种情况,我需要延迟页面上某个图像的显示。该页面是美国的图像地图。当用户单击某个州时,该地图上会打开一个jQuery支持的覆盖图,显示该州的信息

这里讨论的图像位于覆盖层内,但其位置设置为固定,因此不会滚动。它在覆盖层出现之前出现在覆盖层的顶部,这就是为什么我要稍微延迟它。那部分很好用。这是我的密码:

$(document).ready(function () {
    setTimeout(function(){
        $('.scrollInst').fadeIn(500);
    }, 3000); 

    });    
问题是,当用户单击覆盖上的“关闭X”按钮以关闭它时,图像的延迟淡入停止延迟和淡入。用户通过单击地图上的另一个状态打开的每个后续覆盖显示图像,没有延迟和淡入。换言之,它完全停止工作,图像在覆盖之前首先弹出,这是我用延迟/fadeIn解决的原始问题

我需要找到一种方法将div“重置”为其原始状态,这样当用户单击地图上的下一个状态并弹出一个新的覆盖时,图像会延迟并淡入,就像在第一个覆盖上一样

我尝试将淡出和隐藏添加到关闭按钮,以为它会重置该div,但这只会使它在单击关闭按钮后不再显示该div

$(".close").click(function(){
    $(this).parents(".overlay").hide("scale", 300, function(){
 $('.scrollInst').css('display','none');
}); 
有什么想法吗


顺便说一下。。。这不是一个正规的网站。它将从平板电脑上加载的本地副本显示。正在使用的浏览器不适用于CSS转换,因此这是不可能的。

您的代码示例将非常有用。不过,我想我理解这个问题。这里有一些要点

A.初始延迟不需要设置超时。jQuery有一个内置的延迟方法

$('.scrollInst').delay(300).fadeIn(500);
当你说重置DIV时,你是指DIV的HTML内容还是DIV的CSS值?可通过以下方式重置HTML内容:

$('.whatever-selector').html("");
只需使用CSS方法更改值,即可重置CSS

$('.whatever-selector').css({top: 0, left: 0, etc});
总的来说,我认为你的方法可能有点不合适。应该发生的是,当您单击地图上的一个元素时,jQuery创建覆盖div,将其注入domopacity 0,因此它不可见,然后使用淡入将其优雅地动画化到页面中。在关闭时,它应该淡出,然后清空内容以进行下一次覆盖

希望有帮助