拖拽的原理
1.获取距离(鼠标的位置-odiv的外边距)
2.理解什么时候用onmousemove事件
3.判断是否过界
html代码:
<div id="div1"></div>
css代码:
#div1{width:100px;height:100px;background:red;position:absolute}
javascript代码:
window.onload=function(){
var oDiv=document.getElementById("div1");
var x=0;
var y=0;
oDiv.onmousedown=function(ev){
var oEvent=ev||event;
//鼠标的横坐标减去div的offsetLeft
x=oEvent.clientX-oDiv.offsetLeft;
//鼠标的纵坐标减去div的offsetTop
y=oEvent.clientY-oDiv.offsetTop;
document.onmousemove=function(ev){
var oEvent=ev||event;
var left=oEvent.clientX-x;
var right=oEvent.clientY-y;
//判断左边是否过界
if(left<0){
left=0;
}
//判断右边是否过界
else if(left>document.documentElement.clientWidth-oDiv.offsetWidth){
left=document.documentElement.clientWidth-oDiv.offsetWidth;
}
//判断上边是否过界
if(right<0){
right=0;
}
//判断下边是否过界
else if(right>document.documentElenment.clientHeight){
right=document.documentElenment.clientHeight-oDiv.offsetHeight;
}
oDiv.style.left=left+"px";
oDiv.style.top=right+"px";
}
document.onmouseup=function(){
//清空document的事件
document.onmousemove=null;
document.onmouseup=null;
}
//解决低版本火狐bug,干掉系统默认
return false;
}
}
以上所述就是本文的全部内容了,希望大家能够喜欢。
标签:
javascript,拖拽
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件!
如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
内蒙古资源网 Copyright www.nmgbbs.com
暂无“javascript实现完美拖拽效果”评论...
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。