jquery/css在IE浏览器的jQuery显示中更改css
我用jQuery制作了悬停功能。所有在FireFox和Chrome中运行良好,问题出在IE上。我更改CSS顶部/左侧,并使用jquery.show使div可见。虽然在IE中第一次将它悬停,但它显示的位置不对。第二次它显示就好了..jquery/css在IE浏览器的jQuery显示中更改css
var x = (e.pageX - this.offsetLeft) - $(this).next("div").width();
var y = e.pageY - this.offsetTop;
$(this).next("div").css({ display: 'block', 'position': 'fixed', zIndex: 2, left: x, top: y });
$(this).next("div").show("slow");
它再次在Chrome和Firefox,但是IE的伟大工程。(我只测试IE9)
这是CSS div的在默认情况下将其隐藏:
display:none;
position:fixed;
z-index:2;
您正在运行到这个问题,因为当你计算x
股利尚未完全加载。 jQuery不知道div的宽度是多少,因此返回0.下一次,当然div已经加载了,jQuery的宽度是正确的。
您可以通过设置right
而不是left
来更正此问题。这提高了动画为好,在我看来:
http://jsfiddle.net/gilly3/gup8u/22/
$('.linkin').hover(function(e) {
var x = document.documentElement.offsetWidth - e.pageX;
var y = e.pageY;
$(this).next("div").css({
right: x,
top: y
}).stop(true, true).show("slow");
},
function() {
$(this).next().addClass('tooltip').stop(true, true).hide("slow");
});
谢谢,看来确实工作! IE浏览器很烂,然后FF和Chrome做得很好 – 2012-02-14 22:34:24
@QuincyJones - 它不适用于我的Chrome或Firefox。 Chrome的行为如IE:http://imgur.com/G21wz。 Firefox *永远不会*正确,通常div是以缩略图为中心的,有时候它会偏离左边,但从未排列在缩略图的左侧。对于我来说,Firefox和IE也同样缓慢。 Chrome只是更快一点。 – gilly3 2012-02-14 22:52:26
为什么不添加到下一格一类,并给予一个CSS类定义,该类在'css'文件? – gdoron 2012-02-14 19:24:32
最初它有一个CSS类(显示为display:none等),但我不知道。我只是这样做了。在IE中使用.css和addClass的方式有什么不同吗? – 2012-02-14 19:27:21
适合我:http://jsfiddle.net/gilly3/gup8u/。你可以发布一个[jsfiddle](http://jsfiddle.net/)来演示这个问题吗? – gilly3 2012-02-14 19:33:10