3

我正在开发一个托管音乐、图片和视频的网站。我目前有 4 个页面,一个标题页、一个音乐页面、一个视频页面和一个图像页面。这很好用,但我希望能够同时播放音乐和查看图片。为此,我创建了一个 HTML 文档,其中每个前一页包含在一个具有描述性类名的 div 中。然后,我编写了一个 javascript 函数,该函数在调用每个 div 时显示和隐藏它,因此页面的行为就像是 4 页,但事实并非如此。因此,我将音乐播放器嵌入到页脚 div 中,该 div 在音乐播放时保持打开状态,这意味着您可以在每种媒体类型之间来回切换,同时保持音乐页脚打开和播放。这就是问题所在。完成后,我在图像页面上使用的图像放大镜 jquery 功能不再正常工作,除非图像 div 在页面打开时显示在开头。只有这样您才能在媒体类型之间切换并仍然放大图片。如果标题 div 首先显示(就像它应该显示的那样),然后您尝试放大图像,它就不起作用。

起初我以为可能是一些外部 javascript 库彼此之间存在负面交互,但后来我遇到了我上面解释的内容,现在我不知道为什么图像需要成为显示的第一件事放大镜才能正常工作。

我正在使用的 jquery 代码称为 jQuery Image Magnify,它是由 Dynamic Drive 制作的。

编辑:我隐藏和显示 div 的方式是使用 style="display:none" 隐藏和 style="display:block" 显示。

4

1 回答 1

2

有趣的问题。可能是因为该元素需要实际可见才能运行 jQuery Image Magnify 函数。我愿意打赌该插件imageElement.onload用于图像放大处理程序或类似的东西,如果图像元素被隐藏,我认为它不起作用。

就解决方案而言,尝试将您的图像设置为在页面首次加载时可见,可能将左侧设置为 -9999 px 或类似的东西,因此它在技术上仍然“可见”但用户看不到它。然后,在图像加载并(希望)被放大或插件所做的任何事情之后,将其移动到它的页面应该打开的 div 的子级并摆脱负左值。

于 2012-05-10T19:38:52.427 回答