我已经想出了一个解决方案,这可能看起来有点hacky,但我现在想不出任何其他方法,因为draggabletop
在元素上设置a,你不能把它放在底部当您也有顶部时,除非您的元素没有任何固定高度。在你的情况下,它确实如此。
$( "#draggable" ).draggable({ containment: "window" });
$("#move").click(function(){
var el = $('.block'); // Save the element
el.animate({
top: getHeight(el, 9), // Calculate the height with our function
left: "9px"
}, "slow");
});
var getHeight = function( elem, extra) {
return $(window).height() - elem.height() - (extra || 0);
// here we just calculate the height of the window minus the height of
// the element minus the extra 9px that you had by default, and we get a
// bottom:9px; effect.
};
在我的示例中,我们省略了bottom
并将使用top
,我们计算height
窗口的 ,然后去掉height
的和element
您需要的任何额外内容。
如果我能想到更好的方法,我会将其添加到答案中。
注意 -它不能按你的方式工作的原因是因为它已经有 atop
并且你不能为 a 设置动画top
,所以它会直接跳转auto
到inherit
bottom