【完美解决方案】控制div拖拽范围,让层在范围内拖动,不拖拽出边界值:javascript
var XNew = e.pageX; var YNew = e.pageY; var pageXOld = this.options.event.pageX; var pageYOld = this.options.event.pageY; var leftOld = this.options.oleft; var topOld = this.options.otop; var leftNew = leftOld + XNew - pageXOld; var topNew = topOld + YNew - pageYOld; var selfWidth = this.$element[0].offsetWidth; var selfHeight = this.$element[0].offsetHeight; var windowWidth = $(window).width(); var windowHeight = $(window).height(); if(leftNew > (windowWidth - selfWidth)){ this.$element.css('left', windowWidth - selfWidth); return; } if(topNew > (windowHeight - selfHeight)){ this.$element.css('top', windowHeight - selfHeight); return; } if(leftNew < 0){ this.$element.css('left', 0); return; } if(topNew < 0){ this.$element.css('top', 0); return; }
上面的代码只是我项目代码中的一个片断,提供一个思路。css
若是理解有困难?没有关系!下面能够附上完整的一个demo!激动吧!!java
【提示:下面连接打开后为演示页面,能够按F12查看drag.js文件源码】this