Javascript 跨浏览器问题

Javascript 跨浏览器问题,javascript,jquery,html,css,firefox,Javascript,Jquery,Html,Css,Firefox,这是我的。 它具有更改图像的onHover事件。它在铬上工作良好。但是,在firefox上不能正常工作。怎么办 这是jQuery函数: $(document).ready(function(){$('.viewport').mouseenter(function(e) { $(this).children('a').children('span').fadeIn(200); }).mouseleave(function(e) { $(this).children('a')

这是我的。 它具有更改图像的onHover事件。它在铬上工作良好。但是,在firefox上不能正常工作。怎么办

这是jQuery函数:

$(document).ready(function(){$('.viewport').mouseenter(function(e) {
    $(this).children('a').children('span').fadeIn(200);
    }).mouseleave(function(e) {
    $(this).children('a').children('span').fadeOut(200);
});});
这是它在chrome中的外观:

这就是firefox中的外观:


此外,我还使用jquery和纯css尝试了这两种解决方案

删除所有Javascript并替换为纯CSS:

.viewport a span {
    opacity:0;
    transition:opacity 200ms;
    -webkit-transition:opacity 200ms;
}
.viewport:hover a span {
    opacity:1;
}

.

删除所有Javascript并替换为纯CSS:

.viewport a span {
    opacity:0;
    transition:opacity 200ms;
    -webkit-transition:opacity 200ms;
}
.viewport:hover a span {
    opacity:1;
}


.

A
mouseenter
即使在Javascript中也与CSS无关。适用于FF 25和26。此外,您可能希望使用
hover()
而不是这两个函数。它更易于维护。对我也适用-你的FF版本是什么,你能详细描述什么不起作用吗?对我适用于FF25,你使用的是什么版本,问题是什么?仅供参考,使用悬停事件输入/输出处理程序和fadeToggle()mor简明代码的方法:即使是Javascript中的
mouseenter
也与CSS无关。适用于FF 25和26。此外,您可能希望使用
hover()
而不是这两个函数。它更容易维护。对我也适用-你的FF版本是什么,你能详细描述什么不起作用吗?对我适用于FF25,你使用的是什么版本,问题出在哪里?仅供参考,对更简洁的代码使用悬停事件输入/输出处理程序和fadeToggle()方法:完全不同意。是的,CSS转换很好,不,它们不应该在重要信息没有回退的情况下使用。由于span中提供的信息很重要,使用旧浏览器的用户将无法看到这些信息。如果一个过渡不提供重要的信息,而且只是为了吸引眼球,那就不一样了,但这里不是这样。呃,如果浏览器不支持过渡,这只会在不褪色的情况下工作。信息不会丢失。与不支持
:hover
行为的浏览器相比,有人禁用Javascript的可能性更大,如果没有JS,它将被破坏,因此此解决方案比基于JS的解决方案更具弹性。对于不支持<代码>不透明度<代码>的古老IE版本,您可能只需要添加一个回退到<代码>显示。对与错。我说的不是转换本身,而是
opacity
属性。较旧的浏览器不支持此功能。至少提供一个
过滤器()
“后退”。以下是等价物:同样,不需要回退。IE8和更早版本可能不支持
不透明度
,但在这种情况下,元素将始终作为默认值可见。同样,没有信息丢失,回退到
过滤器
显示
对于古老的浏览器来说是时尚的,不是严格要求的。我现在意识到我所遵循的逻辑是错误的。(不幸的是,我不能取消投票)。我只是不明白为什么你甚至不多写4行代码来给那些坚持使用IE8的人提供更好的体验(尽管你不在乎7)。现在,在旧浏览器上根本没有悬停效果/反馈。使用
opacity
等同物将至少提供类似的体验,并提供用户对其输入的反馈——这是良好GUI的基础。完全不同意。是的,CSS转换很好,不,它们不应该在重要信息没有回退的情况下使用。由于span中提供的信息很重要,使用旧浏览器的用户将无法看到这些信息。如果一个过渡不提供重要的信息,而且只是为了吸引眼球,那就不一样了,但这里不是这样。呃,如果浏览器不支持过渡,这只会在不褪色的情况下工作。信息不会丢失。与不支持
:hover
行为的浏览器相比,有人禁用Javascript的可能性更大,如果没有JS,它将被破坏,因此此解决方案比基于JS的解决方案更具弹性。对于不支持<代码>不透明度<代码>的古老IE版本,您可能只需要添加一个回退到<代码>显示。对与错。我说的不是转换本身,而是
opacity
属性。较旧的浏览器不支持此功能。至少提供一个
过滤器()
“后退”。以下是等价物:同样,不需要回退。IE8和更早版本可能不支持
不透明度
,但在这种情况下,元素将始终作为默认值可见。同样,没有信息丢失,回退到
过滤器
显示
对于古老的浏览器来说是时尚的,不是严格要求的。我现在意识到我所遵循的逻辑是错误的。(不幸的是,我不能取消投票)。我只是不明白为什么你甚至不多写4行代码来给那些坚持使用IE8的人提供更好的体验(尽管你不在乎7)。现在,在旧浏览器上根本没有悬停效果/反馈。使用
opacity
等同物将至少提供类似的体验,并提供用户对其输入的反馈-良好GUI的基础。