你知道为什么我不能用jQuery为绝对定位div设置动画吗?
请在这里显示(这是我的例子):
HTML:
<html>
<body>
<div class="test">
<div class="box">
<div class="arrow"></div>
</div>
<a href="#" class="btnStartAni">Animate</a>
</div>
</body>
CSS:
.test { margin: 0; padding: 0;}
.test .box { width: 150px; height: 140px; background-color: red; position: relative; }
.test .box .arrow { width: 50px; height: 50px; background-color: black; position:
absolute; bottom: 0; right: -50px;}
JavaScript:
jQuery(".test a.btnStartAni").on("click", function(e){
e.preventDefault();
jQuery(".box").animate({ width: 400}, 800);
});
黑盒子在动画隐藏期间!但我不知道为什么?
你可以帮我吗?答案 0 :(得分:11)
jQuery会在您使用.animate
时隐藏溢出,因此请将代码更改为
jQuery(".test a.btnStartAni").on("click", function(e){
e.preventDefault();
jQuery(".box").animate({ width: 400}, 800).css('overflow', 'visible');
});
它应该可行
JsFiddle:http://jsfiddle.net/2VJe8/1/
答案 1 :(得分:2)
overflow: hidden
会在.box
上设置。 .arrow
.box
溢出,因此消失了。考虑更改标记。
答案 2 :(得分:1)
您还可以重新排列元素以获得相同的效果(使用float:left
和display:inline-block
)