有点麻烦这个...... shake effect example
如果我省略了行,在Firefox中
$this.css({'margin-left':$this.position().left});
然后框被动画到左边而不是中心。如果我保留这行代码来修复firefox,那么chrome就会遇到同样的问题。
任何关于绕过这个的提示都会很棒。
提前致谢
答案 0 :(得分:2)
解决方案(不是一个快乐的,但它'可以'跨浏览器 - 我说跨浏览器,得到ie9而我的工作机器无法运行虚拟PC !!!!);
var options = {
direction: 'left',
distance: 10,
times: 2
};
var left = $this.position().left > parseInt($this.css('margin-left')) ? $this.position().left : $this.css('margin-left');
$this
.css({'margin-left': left})
.effect('shake' , options , 75 , function(){
$this.removeAttr('style');
});
答案 1 :(得分:1)
最简单的解决方案可能是引入一个额外的内部div来撼动。例如,如果你要摇动的div(并且“margin 0 auto”)具有id“居中”,那么不要摇动这个div,而是添加一个内部div“摇动”并摇动该div。
<div id="centered">
<div id="shake">
<div>the content</div>
</div>
</div>
答案 2 :(得分:0)
您可以在jQuery中使用$.browser
检测Firefox或Chrome。
然后您可以决定是否应用该CSS。
答案 3 :(得分:0)
想想我得到了你的要求,是吗?
请在此处提供您正在回答的答案。 JS Fiddle是一个演示资源,而不是托管整个答案的地方。 - David Thomas 20分钟前
根据上述评论,我改变了:
jQuery的:
$this.css({'margin-left':$this.position().center});
CSS - 对包含<div>
的
#box{ width: 20px; height: 20px; margin:auto auto;}
希望有帮助吗?