//最近项目中需要将angular-ui-bootstrap中用到的弹出框,使之可拖动,由于源文件中没有实现,需要自己实现指令,以下即为该指令,亲测可以实现。.directive(
'draggable', [
'$document', function($document) {
return function(scope, element, attr) {
var startX =
0, startY =
0, x =
0, y =
0;
element= angular.element(document.getElementsByClassName(
"modal-dialog"));
element.css({
position: 'relative',
cursor: 'move'
});
element.on('mousedown', function(
event) {
// Prevent default dragging of selected content
event.preventDefault();
startX =
event.pageX -
x;
startY =
event.pageY -
y;
$document.on('mousemove', mousemove);
$document.on('mouseup', mouseup);
});
function mousemove(event) {
y =
event.pageY -
startY;
x =
event.pageX -
startX;
element.css({
top: y 'px',
left: x 'px'
});
}
function mouseup() {
$document.off('mousemove', mousemove);
$document.off('mouseup', mouseup);
}
};
}]);
如图:已不在屏幕中央,为拖动后的效果
更多专业前端知识,请上
【猿2048】www.mk2048.com