javascript拖放的一些简单应用程序(逐行分析代码,让你轻松拖放。

今天,让我们看看拖放对象如何不能拖动某个div和拖动吸附。

上次我们谈到我们的拖放时,我们无法拖动可见区域。在此基础上,我们添加了一个父div,不让他拖出来的父母。

HTML代码:









CSS代码:



{ # DIV1
宽度:100px;
身高:100px;
背景:红色;
位置:绝对;
}
{ #格式
宽度:400px;
身高:300px;
背景:# cccccc;
职位:相对;
}



Javascript代码:



拖动/关闭div漏洞的低div版本
在window.onload =函数(){
无功odiv = document.getelementbyid(联赛);
无功odiv2 = document.getelementbyid(格式);
VaR disx = 0;
VaR Disy = 0;
odiv.onmousedown =功能(EV){
无功oevent = EV事件| |;
oevent.clientx - odiv.offsetleft disx =;
oevent.clienty - odiv.offsettop Disy =;

document.onmousemove =功能(EV){
无功oevent = EV事件| |;
存储位置
无功odivleft = oevent.clientx - disx;
无功odivtop = oevent.clienty -迪西;

如果(odivleft<0){
odivleft = 0;
否则如果}(odivleft > { odiv2.offsetwidth - odiv。offsetwidth)
odivleft = odiv2.offsetwidth - odiv.offsetwidth;
}

如果(odivtop<0){
odivtop = 0;
否则如果}(odivtop > { odiv2.offsetheight - odiv。offsetheight)
odivtop = odiv2.offsetheight - odiv.offsetheight;
}

odiv.style.left = odivleft + 'px;
odiv.style.top = odivtop + 'px;
};

document.onmouseup =函数(){
document.onmousemove = null;
document.onmouseup = null;
};
返回false;阻止默认事件,解决Firefox bug
};
};



结果如下:



这很容易。

下一件事是如何让他自动吸附。

事实上,人们会经常使用ps等当它有一个小窗口拖到页面一侧时,他会自动吸附起来。

我们怎么能有这样的拖放

这是当提到运动之前,像出租车,你不能让司机停在那里,他精通,停在靠近的地方。

同样的程序,它几乎和它的直接分配一样快。我拽了拽对象离左50px,我认为他是在左边,这是0个直接,他会自动吸附。

这个原理很简单,看看代码是如何实现的。稍加修改即可。



在window.onload =函数(){
无功odiv = document.getelementbyid(联赛);
无功odiv2 = document.getelementbyid(格式);
VaR disx = 0;
VaR Disy = 0;
odiv.onmousedown =功能(EV){
无功oevent = EV事件| |;
oevent.clientx - odiv.offsetleft disx =;
oevent.clienty - odiv.offsettop Disy =;

document.onmousemove =功能(EV){
无功oevent = EV事件| |;
无功odivleft = oevent.clientx - disx;
无功odivtop = oevent.clienty -迪西;


当左边小于50 0时,自动转到吸附。
如果(odivleft<50){
odivleft = 0;
否则如果}(odivleft > { odiv2.offsetwidth - odiv。offsetwidth)
odivleft = odiv2.offsetwidth - odiv.offsetwidth;
}

如果(odivtop<0){
odivtop = 0;
否则如果}(odivtop > { odiv2.offsetheight - odiv。offsetheight)
odivtop = odiv2.offsetheight - odiv.offsetheight;
}

odiv.style.left = odivleft + 'px;
odiv.style.top = odivtop + 'px;
};

document.onmouseup =函数(){
document.onmousemove = null;
document.onmouseup = null;
};
返回false;
};
};



下一次我们讨论高级应用程序时,这些应用程序将更负责任,更有用。

例如,图片的拖放和文本的选择。例如,在这个拖放页面上只有一个div,在正常开发中不会遇到。

事实上,当页面上出现某些东西时,这种拖放会发生什么呢

下次你会解决的,请期待它。