我的网站上有一些代码。 FF,Chrome和IE9都运行良好,但在IE兼容模式下,该元素只旋转一次(第一个mouseenter),然后再次旋转直到页面刷新。也似乎在IE7兼容模式下(不确定哪个版本真的还原为HTML,如果条件甚至没有将它作为IE7捕获),mouseleave不被尊重或被忽视。
我有一个乱七八糟的旋转错误(或IE7未实现),但要求第二意见,这里是样本
http://jsfiddle.net/robx/wR29n/12/
这是我正在使用的插件:http://jqueryrotate.googlecode.com/files/jQueryRotateCompressed.2.1.js
mouseenter和mouseleave在没有旋转的情况下工作得很好;通过使用$(this).html("enter")
和$(this).html("leave")
替换旋转线进行测试。
HTML代码:
<ul class="subMenu">
<li>
<a href="" id="a" title="">
<img class="icon" src="http://www.bestfreeware.com/soft-icon/f/free-business-icons-pack-108561.jpg" alt="" />
</a>
</li>
<li>
<a href="" id="b" title="">
<img class="icon" src="http://icons.iconarchive.com/icons/iconka/beer/48/messenger-icon.png" alt="" />
</a>
</li>
</ul>
使用Lee的更新编辑修复JQuery代码:
$(".icon").rotate({bind:{
mouseenter: function(){
$(this).rotate({
angle: 0,
animateTo:360,
duration: 2000
})
},
mouseout: function(){
alert('test');
}
}
});
span,group和image不是我做的,它来自旋转脚本。我用过&lt; img /&gt;并且它被替换了(不确定它是否会改变IE7中的任何内容)。通过旋转脚本添加跨度和组。
答案 0 :(得分:4)
我也偶然发现了这个问题,经过一些调查后我在IE中注意到整个图像标签被一系列div,span和其他内容所取代。在rvml:image标记的最顶层包装中,有一个id引用原始图像的id。如果未在原始图像中设置此id,则此id等于null。那么猜猜是什么,我给了图像一个id,并提到了jQuery旋转脚本来处理那个特定的id并且它工作了!可能这也适用于其他元素,只要你给你想要旋转id的东西并在jQuery('id selector')中使用这个id.rotation()函数。这只是IE的必需品,它只运行一次!在FF中,一切都按预期顺利进行。
干杯!
[编辑]
这也适用于使用类而不是id,只需确保引用旋转目标。
答案 1 :(得分:2)
尝试
$("a").click(function() {
return false;
});
$(".icon").rotate({bind:{
mouseenter: function(){
$(this).rotate({
angle: 0,
animateTo:360,
duration: 2000
})
},
mouseout: function(){
alert('test');
}
}
});
答案 2 :(得分:1)
尝试
$("a").click(function() {
return false;
});
$(".icon").hover(function() {
var anime = {
angle: 0,
animateTo: 360,
easing: $.easing.easeInOutExpo,
duration: 2000
};
$(this).stop(true, true).rotate(anime);
}, function(){alert("Mouse out");
});