Internet Explorer 上的 jQuery 悬停效果问题
我基本上编写了自己的 jQuery 悬停效果插件,该插件适用于除 IE(9,8,7) 之外的所有浏览器....
以下是链接: http://www. Fiver.org/web/testing 这就是代码:
function go()
{
hoverEffect = document.getElementsByName("hoverEffect");
for (i=0; i<hoverEffect.length; i++)
{
$(hoverEffect[i]).bind('mouseenter', bMouseOver);
$(hoverEffect[i]).bind('mouseleave', bMouseOut);
}
function bMouseOver(e)
{
$(this).find(".fadebox")
.animate({opacity: 1},
300);
}
function bMouseOut(e)
{
$(this).find(".fadebox")
.animate({opacity: 0},
{duration: 'slow'});
}
}
$(document).ready(function(){
go();
});
这是一个基本的悬停效果,让我大吃一惊!你有什么想法吗???
最好的,
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
IE-s getElementsByName 有一些问题,我不会依赖它。
尝试为这些元素指定一个类,而不是名称,然后使用 jQuery 选择它们。
示例
HTML
:使用 JQuery 选择它们,并分配事件:
这也将消除对 DOM 的额外迭代和使用不必要的数组 (hoverEffect[])
IE-s getElementsByName has some problems, i wouldn't rely on it.
Try to give those elements a class, instead of name, and select them with jQuery.
Example
HTML:
Selecting them with JQuery, and assigning events:
This will also get rid of an extra iterating through the DOM and the using of needless arrays (hoverEffect[])
尝试使用 opacity:.00 而不是 opacity:0
当使用 .00 作为零不透明度而不是 0 时,jQuery 不透明度动画效果更好。我无法真正解释并找到任何文档为什么会这样,但它过去解决了我的问题。
另外,有关此脚本中不起作用的内容的更多信息也会有所帮助:)
Try using opacity:.00 instead of opacity:0
jQuery opacity animations work better when using .00 as zero opacity instead of 0. I can't really explain and find any documentation why this is, but it had fixed my problems in the past.
Also a little more information about what doesn't work in this script would help :)