|
$.fn.extend({
|
//---元素拖动插件
|
dragging:function(data){
|
var $this = $(this);
|
var xPage;
|
var yPage;
|
var X;//
|
var Y;//
|
var xRand = 0;//
|
var yRand = 0;//
|
var father = $this.parent();
|
var defaults = {
|
move : 'both',
|
randomPosition : true ,
|
hander: 1,
|
notelement:'.bf-container'
|
}
|
var opt = $.extend({},defaults,data);
|
var movePosition = opt.move;
|
var random = opt.randomPosition;
|
|
var hander = opt.hander;
|
var notelement = opt.notelement;
|
if(hander == 1){
|
hander = $this;
|
}else{
|
hander = $this.find(opt.hander);
|
}
|
|
|
//---初始化
|
father.css({"position":"relative","overflow":"hidden"});
|
$this.css({"position":"absolute"});
|
hander.css({"cursor":"move"});
|
|
var faWidth = father.width();
|
var faHeight = father.height();
|
var thisWidth = $this.width()+parseInt($this.css('padding-left'))+parseInt($this.css('padding-right'));
|
var thisHeight = $this.height()+parseInt($this.css('padding-top'))+parseInt($this.css('padding-bottom'));
|
|
var mDown = false;//
|
var positionX;
|
var positionY;
|
var moveX ;
|
var moveY ;
|
|
if(random){
|
$thisRandom();
|
}
|
function $thisRandom(){ //随机函数
|
$this.each(function(index){
|
var randY = parseInt(Math.random()*(faHeight-thisHeight));///
|
var randX = parseInt(Math.random()*(faWidth-thisWidth));///
|
if(movePosition.toLowerCase() == 'x'){
|
$(this).css({
|
left:randX
|
});
|
}else if(movePosition.toLowerCase() == 'y'){
|
$(this).css({
|
top:randY
|
});
|
}else if(movePosition.toLowerCase() == 'both'){
|
$(this).css({
|
top:randY,
|
left:randX
|
});
|
}
|
|
});
|
}
|
|
hander.mousedown(function (e) {
|
//console.log(notelement)
|
//father.children().css({"zIndex":"1"});//原始
|
father.children().not(notelement).css({ "zIndex": "1" });//适应在BIM上拖动 .bf-container是BIM模式所在的box
|
$this.css({"zIndex":"2"});
|
mDown = true;
|
X = e.pageX;
|
Y = e.pageY;
|
positionX = $this.position().left;
|
positionY = $this.position().top;
|
return false;
|
});
|
|
$(document).mouseup(function(e){
|
mDown = false;
|
});
|
|
$(document).mousemove(function(e){
|
xPage = e.pageX;//--
|
moveX = positionX+xPage-X;
|
|
yPage = e.pageY;//--
|
moveY = positionY+yPage-Y;
|
|
function thisXMove(){ //x轴移动
|
if(mDown == true){
|
$this.css({"left":moveX});
|
}else{
|
return;
|
}
|
if(moveX < 0){
|
$this.css({"left":"0"});
|
}
|
if(moveX > (faWidth-thisWidth)){
|
$this.css({"left":faWidth-thisWidth});
|
}
|
return moveX;
|
}
|
|
function thisYMove(){ //y轴移动
|
if(mDown == true){
|
$this.css({"top":moveY});
|
}else{
|
return;
|
}
|
if(moveY < 0){
|
$this.css({"top":"0"});
|
}
|
if(moveY > (faHeight-thisHeight)){
|
$this.css({"top":faHeight-thisHeight});
|
}
|
return moveY;
|
}
|
|
function thisAllMove(){ //全部移动
|
if(mDown == true){
|
$this.css({"left":moveX,"top":moveY});
|
}else{
|
return;
|
}
|
if(moveX < 0){
|
$this.css({"left":"0"});
|
}
|
if(moveX > (faWidth-thisWidth)){
|
$this.css({"left":faWidth-thisWidth});
|
}
|
|
if(moveY < 0){
|
$this.css({"top":"0"});
|
}
|
if(moveY > (faHeight-thisHeight)){
|
$this.css({"top":faHeight-thisHeight});
|
}
|
}
|
if(movePosition.toLowerCase() == "x"){
|
thisXMove();
|
}else if(movePosition.toLowerCase() == "y"){
|
thisYMove();
|
}else if(movePosition.toLowerCase() == 'both'){
|
thisAllMove();
|
}
|
});
|
}
|
});
|