【发布时间】:2014-01-15 23:55:02
【问题描述】:
我很乐意使用 jQuery 来显示 () 一个 div 或使其成为 slideDown() 等,但我正在努力实现特定的效果。
在将鼠标悬停在父 div 上时,我正在寻找孩子向下滑动,就像使用
$('.divClass').toggle("slide", { direction: "up" }, 500);
来自 jQuery UI 库。 (参见fiddle)。
但是,我希望能够在悬停时仅显示子 div 的一小部分,然后在单击时将其余部分滑动到视图中。
设置子 div 的 css 高度属性我相当混乱地得到了this far (fiddle)...
$('.hoverDiv').hover(
function () {
$('.child').animate({
height: '25px'
}, 200);
});
$('.hoverDiv').click(
function () {
var cont = $('.child');
cont.animate({
height: '0px'
}, 200, function () {
cont.css({
height: 'auto',
display: 'none'
});
cont.slideDown(200);
});
});
但我失去了“滑动抽屉”的外观。有什么办法可以找回来吗?
【问题讨论】:
-
所以应该先显示元素的底部而不是顶部?
-
看看我的新小提琴。我认为
hover是问题所在,因为当您为另一个元素设置动画时(仍处于悬停状态),该元素会根据悬停前的位置开始。我用了mouseover/mouseleave -
更新为
mouseenter。事实证明,它是一个更好的选择,因此单击内容或悬停栏都没有关系。
标签: jquery animation show-hide