我遇到了同样的问题,发现所有这一切都是由于引导程序navbar“ navbar-fixed-top”类具有固定位置,<body>
该类比我的顶部低60px <html>
。因此,当我在网站中移动可拖动表单时,光标出现在表单顶部60px处。
您可以看到,在Chrome调试工具的Elements界面中,单击<body>
标记,您将看到顶部和主体之间的间隙。
由于我在所有应用程序中都使用了该导航栏,并且不想修改每种表单的拖动的初始化调用(按照DarthJDG的过程)。我决定以这种方式扩展可拖动小部件,并在可拖动初始化中简单地添加yOffset。
(function($) {
$.widget("my-ui.draggable", $.ui.draggable, {
_mouseDrag: function(event, noPropagation) {
this.position = this._generatePosition(event);
this.positionAbs = this._convertPositionTo("absolute");
if (!noPropagation) {
var ui = this._uiHash();
if(this._trigger('drag', event, ui) === false) {
this._mouseUp({});
return false;
}
this.position = ui.position;
}
var yOffset = ("yOffset" in this.options) ? this.options.yOffset : 0;
if(!this.options.axis || this.options.axis != "y") this.helper[0].style.left = this.position.left+'px';
if(!this.options.axis || this.options.axis != "x") this.helper[0].style.top = this.position.top-yOffset+'px';
if($.ui.ddmanager) $.ui.ddmanager.drag(this, event);
return false;
}
});
})(jQuery);
现在,当我使用引导导航栏初始化站点中的可拖动元素/表单时:
$("#org_account_pop").draggable({handle:" .drag_handle", yOffset: 60});
当然,您将必须根据自己的网站进行实验,以确定正确的yOffset。
无论如何,要感谢DarthJDG,他为我指出了正确的方向。干杯!