jQuery Cycle - 压缩图像?

时间:2011-04-28 00:15:07

标签: javascript jquery asp.net internet-explorer

this question中讨论的问题发生在我的生产网站上,但除了Firefox,我们在IE中看到了它。

这应该是它的外观,所有三个间歇性地淡化到不同的图片: Intended

我们从客户那里获得了这些截图:

非常小的图片: Client issue 1

奇怪的大小图片: Client issue 2

我们能够通过硬盘刷新(ctrl-f5)可靠地重现它,但我们办公室中唯一可以在IE中重现它的是在Windows 7上运行IE8,然后不可靠。客户端使用IE7,我相信XP。

我通过在$(window).load()而不是$(document).ready()中设置幻灯片来修复它,但我从来没有弄清楚为什么在IE中重现这么难。管理层因为我们无法在IE中可靠地重现它或解释它为何发生这一事实而感到不安,而且我被要求进行调查。

有没有人有想法?在某些情况下,链接问题中讨论的相同问题是否适用于IE?在这一点上,我只能说“我们不能总是把这样的东西钉在那里。”

更新:在我在Javascript中设置幻灯片放映之前,我没有在幻灯片中设置src属性,因此我能够在IE中可靠地实现它。我认为这证明它确实是同一个时间问题,因为IE是一个不同的渲染引擎,所以很少发生。管理层仍然很好奇其他情况干预了什么,但我现在确信它确实是所有浏览器中的计时问题,而且我们的生产网站可以避免进一步的问题。

另外,我在jQuery论坛here上问了同样的问题,并被告知要在img元素中明确设置图像大小。这也解决了这个问题。

2 个答案:

答案 0 :(得分:2)

您在发布的链接中对此进行了解释。这是一个时间问题。有时循环开始,有时不开始。在某些浏览器中,“有时”可能只是“几乎从不”。

在document.ready中启动循环可确保在循环开始之前已加载所有图像,以便正确检测尺寸。

它很可能取决于CPU速度,网络延迟,浏览器,操作系统等等。

一直难以重现的原因是因为环境非常复杂,结果取决于你不会马上看到的东西。

答案 1 :(得分:1)

我知道这是游戏的后期,但我最近也经历过这个问题。它让我疯了。事实上,解决方案是使用$(window).load事件方法来启动循环插件 - 它保证所有相关的页面加载活动(包括与任何子元素相关的任何下载)在它触发之前完成。它适用于所有“五大”浏览器。

就我而言,我正在显示不同大小和宽高比的图像,并使用服务器端脚本自动填充图像列表,以填充包含动态创建的标签的变量,该变量包含指定目录中的所有图像类型告诉它包括。因此,我无法在标签中包含图像宽度和高度,因为我不知道它们是什么。为了解决这个问题,在客户端我使用了循环:发出动态查看正在处理的图像的脚本,然后将幻灯片容器设置为与照片的原始宽度和高度相匹配的宽度和高度。我用动画GIF加载器图形显示“正在加载xx照片...”消息,以便用户知道在下载图像时正在进行的操作。

有问题的幻灯片显示在hangmanhills.org网站上仅限Hangman Hills居民协会会员的区域内,因此我无法向您展示最终产品。