【发布时间】:2016-01-26 11:25:48
【问题描述】:
我放弃...您所有的答案只是针对本地元素的不同方式。
如果您费心实际阅读我所说的内容,您会意识到这与我已有的代码无关,只是该代码不适用于 IMG 标签。
在试图展示我的问题时(并且您的解决方案都没有与已经发生的事情有任何不同),我发现我可以通过将灰度滤镜应用于放置在每个图像上的 DIV 元素来实现我想要的.然后,鼠标悬停事件会触发 DIV 元素中的不透明度更改。
我想要的有点重,但它回答了我的实际问题。答案是:
是的,可能有一种方法可以切换 IMG 标签的类别。但是不,如果不引起争论或被告知我正在使用“错误代码”,我可能不会在这里找到它。所以是的,定位 DIV 元素更容易、更有效。
顺便说一句,页面加载时间与数据包的大小有关。较大的数据包(图像、html/css/js 文档等)需要更长的下载时间,因此页面需要更长的加载时间。我正在尝试创建的网站证明了这一论点,我有一个几乎完整且(几乎)功能齐全的网站,其中包含大量“聪明”的小效果,全部小于 20mb,其中大约 15mb 是图像。该网站简洁明了,托管在我的三星 Galaxy Tab 4(使用木瓜)上,几乎可以立即加载。
这就是我所说的“我希望它非常精简”的意思。感谢大家的帮助,很遗憾我无法让任何人了解发生了什么。
【问题讨论】:
-
就从 JS 引用它而言,它是 div 还是 img 元素应该没有任何区别,但无论哪种方式,您都不需要任何 JS,您可以只使用悬停效果CSS。话虽如此,请尝试
onClick="colorFunction(this)";。 -
我也会这么想,但显然这不适用于 IMG 元素。我会尝试记录它发生的事情并上传到YouTube或其他东西,这太奇怪了!我不知道您可以在 CSS 中编写鼠标悬停过渡效果?
-
IMG 元素没有什么神奇之处。忘记 YouTube,更新您的问题以显示您的实际代码(而不是孤立地显示
onClick=...部分 - 这是您的 img 标签中的一个属性,或者......?并考虑在 jsfiddle.net 提供问题的演示。 -
问题不在于它对图像有效或无效,您传递给 onclick 处理程序的引用有问题。解决方案在于找出如何正确地将 img 元素作为参数传递给 onclick 函数。
-
从具有 id 属性的元素中自动创建全局变量,是 IE 引入的坏习惯(出于兼容性原因,后来一些浏览器也被复制了)——但这并不正确。因此,没有在您的代码中没有名为
image1的变量,因此undefined被传递给您的函数——因此导致您看到的错误。您可以使用<img onclick="colorFunction(this)">直接传递元素,也可以将id 作为字符串值传递,然后在函数中使用document.getElementById来获取对元素的引用。
标签: javascript html css image