Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/459.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
IE-Javascript更改IMG SRC取消现有加载条_Javascript_Internet Explorer - Fatal编程技术网

IE-Javascript更改IMG SRC取消现有加载条

IE-Javascript更改IMG SRC取消现有加载条,javascript,internet-explorer,Javascript,Internet Explorer,我遇到了一个模糊的问题,我公司网站上的许多页面需要几秒钟到几分钟才能加载。通常,人们希望浏览器的本机进度条继续旋转,直到所有未完成的请求完成,但IE会在任何请求返回时停止进度条。是的,这必须与IE一起工作。我们的站点有一些javascript(jQuery),当鼠标移到另一个元素上时,会更改DOM元素的背景图像,这会导致IE发送请求,从而中断现有的进度条 事件的确切顺序: 单击加载时间长的链接(进度条正确旋转) 等待时在页面上移动鼠标,无意中触发图像更改(进度条停止) 客户抱怨页面停止加载 有什

我遇到了一个模糊的问题,我公司网站上的许多页面需要几秒钟到几分钟才能加载。通常,人们希望浏览器的本机进度条继续旋转,直到所有未完成的请求完成,但IE会在任何请求返回时停止进度条。是的,这必须与IE一起工作。我们的站点有一些javascript(jQuery),当鼠标移到另一个元素上时,会更改DOM元素的背景图像,这会导致IE发送请求,从而中断现有的进度条

事件的确切顺序:

  • 单击加载时间长的链接(进度条正确旋转)

  • 等待时在页面上移动鼠标,无意中触发图像更改(进度条停止)

  • 客户抱怨页面停止加载

  • 有什么想法吗?我认为的一种方法是在按下链接时将鼠标光标改为等待,如果按下浏览器的停止按钮,则将光标改回正常光标。但是,如果用户按下停止按钮,似乎不太容易检测到。我唯一能想到的另一个选择是在点击链接后停止背景图像的更改,但这是一个非常蹩脚的方法


    感谢您的帮助:)

    一种方法是将图像悬停从
    $(文档).ready
    移动到
    $(文档).load

    更好的解决方案是使用精灵作为图像,并在悬停时处于打开和关闭状态,这样就不需要更改图像源。下面是一个使用jQuery处理精灵的快速示例:

    css(假设图像为100x200,每个状态为100x100)

    jquery

    // add class hover to image
    $('.my-image').hover(function() {
        $(this).addClass('my-image-hover');
    }, function() {
        $(this).removeClass('my-image-hover');
    });
    

    是 啊我有点喜欢把它放在个人图片中,但我想你最终肯定是对的。当然,这是一个很好的解决方案。我来试一试。我不知道为什么我假设您使用jQuery。我的不好。因为我在问题中说我有:)我相信我有类似的问题,但从来没有真正想出一个完全令人满意的解决方案。。。不过,有一件事会影响IE中的css背景图像。让我查一下,我会添加另一条评论或回答好的,这可能是这个闪烁问题的一个变体吗?还有一件事,如果你有flash的参与,我以前也遇到过这个问题:实际上,cballou的解决方案可以解决闪烁和加载问题:)
    // add class hover to image
    $('.my-image').hover(function() {
        $(this).addClass('my-image-hover');
    }, function() {
        $(this).removeClass('my-image-hover');
    });