Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.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 Opera 11.5图像闪烁_Jquery_Opera - Fatal编程技术网

Jquery Opera 11.5图像闪烁

Jquery Opera 11.5图像闪烁,jquery,opera,Jquery,Opera,我有一个关于Opera中基于jQuery的幻灯片放映的小问题 我正在做的事情如下。我有几张照片: <div id="bg"> <img src="..." /> <img src="..." /> ... </div> 当我在构建页面之前等待加载所有图像时,这将创建一个从一张图片到下一张图片的不明显过渡。这在Chrome、Safari、Firefox和IE中都能很好地工作。然而,在Opera中,我有一段相当长的时间(可能是1/4秒)可以看到(黑色

我有一个关于Opera中基于jQuery的幻灯片放映的小问题

我正在做的事情如下。我有几张照片:

<div id="bg">
<img src="..." />
<img src="..." />
...
</div>
当我在构建页面之前等待加载所有图像时,这将创建一个从一张图片到下一张图片的不明显过渡。这在Chrome、Safari、Firefox和IE中都能很好地工作。然而,在Opera中,我有一段相当长的时间(可能是1/4秒)可以看到(黑色)的背景。 我也试过这样做:

$('#bg img:visible').next().show().prev().hide();
但没什么区别,所以我想这是Opera引擎的问题

然而——虽然我知道这是对高级水平的吹毛求疵——如果有人以前遇到过这种情况,并且可能知道解决方法或修复方法,我会很感兴趣


谢谢

这似乎很奇怪,我猜这与您的实现细节有关。可以创建一个显示问题的JSFIDLE吗

不过,一般来说,使用
hide()…show()
(或其他方法)可能会引起明显的副作用。当某些内容被隐藏时,整个布局可能会随着其余可见元素占用现在可用的空间而更改,然后在显示下一幅图像时再次更改。这些事件是实时发生的,因此,无论您的用户使用什么环境,您都希望事情发生得足够快,以实现无缝过渡


唯一能真正确定的方法是对所讨论的两个图像(或通常是区域)使用绝对定位。它们应该在浏览器中占据相同的物理空间。然后做你的展示/隐藏。实际上,哪一个具有更高的z索引并不重要,要么新的z索引在显示时立即向最终用户显示,要么在另一个隐藏时立即向最终用户显示。

这似乎很奇怪,我猜这与您的实现的细节有关。可以创建一个显示问题的JSFIDLE吗

不过,一般来说,使用
hide()…show()
(或其他方法)可能会引起明显的副作用。当某些内容被隐藏时,整个布局可能会随着其余可见元素占用现在可用的空间而更改,然后在显示下一幅图像时再次更改。这些事件是实时发生的,因此,无论您的用户使用什么环境,您都希望事情发生得足够快,以实现无缝过渡


唯一能真正确定的方法是对所讨论的两个图像(或通常是区域)使用绝对定位。它们应该在浏览器中占据相同的物理空间。然后做你的展示/隐藏。实际上,哪一个具有更高的z索引并不重要,或者新的z索引将在显示时立即显示给最终用户,或者,当另一个浏览器被隐藏时,Opera有一种不同的处理方式和时间,当它刷新/呈现在JavaScript中所做的更改时——基本上它试图比其他浏览器更快地更新JavaScript更改。请参阅Opera开发文章。虽然我很惊讶你会注意到这种变化。这可能是由于您的开发机器的速度,加上图像的大小、显示驱动程序等。它在其他机器上做什么?其他版本的歌剧呢


根据您的布局,您可以尝试将第二个图像放置在第一个图像下方(通过z索引),然后在第二个图像下方显示()(即使此时仍将覆盖该图像),然后隐藏()第一个将显示下面的第二个。

Opera在刷新/呈现JavaScript中所做的更改时有不同的处理方式和时间——基本上,它尝试以比其他浏览器更快的速度更新JavaScript更改。请参阅Opera开发文章。虽然我很惊讶你会注意到这种变化。这可能是由于您的开发机器的速度,加上图像的大小、显示驱动程序等。它在其他机器上做什么?其他版本的歌剧呢


根据您的布局,您可以尝试将第二个图像放置在第一个图像下方(通过z索引),然后显示()第二个图像(即使此时仍将覆盖该图像),然后隐藏()第一个图像,然后显示下方的第二个图像。

我通过放置所有

<script type="text/javascript" .....></script>

页面中直接位于
后面的行

如果刚好放在
(或者在html的任何行或标记下),页面在加载时会闪烁


如果所有Javascript都放在
之后,页面将不会闪烁。

我已通过放置所有Javascript解决了Opera闪烁问题(加载新html页面时)

<script type="text/javascript" .....></script>

页面中直接位于
后面的行

如果刚好放在
(或者在html的任何行或标记下),页面在加载时会闪烁


如果所有Javascript都放在
后面,页面将不会闪烁。

您好,谢谢您的回答和提示。我知道您提到的定位问题,因此这不应导致问题。不幸的是,我无法在jsfiddle中重现这个错误:它似乎在所有浏览器中都能工作。我在我所指的页面中所做的,最初我也会将图像缩放到全浏览器大小,所以我想这可能真的是缩放图像时的性能问题。在本例中,我还看到图像是“一行一行”(不是真的)生成的。您好,谢谢您的回答和提示。我知道您提到的定位问题,因此这不应导致问题。不幸的是,我无法在jsfiddle中重现这个错误:它似乎在所有浏览器中都能工作。我在我所指的页面中所做的,最初我也会将图像缩放到全浏览器大小,所以我想这可能真的是缩放图像时的性能问题。我还看到图像是由“line by l”生成的