具体代码如下所示:
//HTML部分
<div class="wrap"></div>
<div class="popUpBox">
<div class="layer-head"><div class="layer-head-text">弹出框</div><div class="layer-close"></div></div>
<div class="layer-body"></div>
<div class="layer-footer">
<div class="layer-footer-button-group">
<div class="layer-footer-button layer-sure">确定</div>
<div class="layer-footer-button layer-cancel">取消</div>
</div>
</div>
</div>
//CSS部分
.wrap {
position: fixed;
left: 0;
top: 0;
background-color: #000;
z-index: 10000;
opacity: 0.3;
}
.popUpBox {
height: 400px;
width: 700px;
position: absolute;
overflow: hidden;
box-sizing: border-box;
z-index: 10000;
background-color: #fff;
border-radius: 2px;
box-shadow: 1px 1px 50px rgba(0,0,0,.3);
}
.layer-head {
width: 100%;
height: 35px;
border-bottom: 1px solid #eee;
box-sizing: border-box;
background-color: #f8f8f8;
border-radius: 4px 4px 0 0;
cursor: move;
}
.layer-head-text {
padding-left: 20px;
font-size: 14px;
color: #333;
height: 35px;
line-height: 34px;
float: left;
}
.layer-close {
float: right;
width: 16px;
height: 16px;
background-image: url(../images/close_hover.png);
background-repeat:no-repeat;
background-size:100% 100%;
position: absolute;
top: 10px;
right: 12px;
cursor: pointer;
}
.layer-body {
width: 100%;
height: calc(100% - 73px);
}
.layer-footer {
width: 100%;
height: 38px;
border-top: 1px solid #eee;
box-sizing: border-box;
background-color: #f8f8f8;
border-radius: 0 0 4px 4px;
}
.layer-footer-button-group {
padding: 5px 0 5px 576px;
height: 28px;
}
.layer-footer-button {
width: 56px;
height: 28px;
line-height: 28px;
margin-right: 6px;
box-sizing: border-box;
font-size: 12px;
float: left;
text-align: center;
cursor: pointer;
}
.layer-sure {
border: 1px solid #4898d5;
background-color: #2e8ded;
color: #fff;
}
.layer-cancel {
border: 1px solid #dedede;
background-color: #f1f1f1;
color: #333;
}
//点击某物体时,用drag对象即可,move和up是全局区域,也就是整个文档通用,应该使用document对象而不是drag对象(否则,采用drag对象时物体只能往右方或下方移动)
$(document).on('mousedown', '.layer-head', function(e) {
e = e || window.event; //兼容ie浏览器
var drag = $(this).parent();
$('body').addClass('select'); //webkit内核和火狐禁止文字被选中
document.body.onselectstart = document.body.ondrag = function() { //ie浏览器禁止文字选中
return false;
}
if ($(e.target).hasClass('layer-close')) { //点关闭按钮不能拖拽模态框
return;
}
var diffX = e.clientX - drag.offset().left; //鼠标点击物体那一刻相对于物体左侧边框的距离=点击时的位置相对于浏览器最左边的距离-物体左边框相对于浏览器最左边的距离
var diffY = e.clientY - drag.offset().top;
$(document).on('mousemove', function(e) {
e = e || window.event; //兼容ie浏览器
var left = e.clientX - diffX;
var top = e.clientY - diffY;
if (left < 0) {
left = 0;
} else if (left > window.innerWidth - drag.width()) {
left = window.innerWidth - drag.width();
}
if (top < 0) {
top = 0;
} else if (top > window.innerHeight - drag.height()){
top = window.innerHeight - drag.height();
}
//移动时重新得到物体的距离,解决拖动时出现晃动的现象
drag.css({
'left': left + 'px',
'top': top + 'px'
});
});
$(document).on('mouseup', function(e) { //当鼠标弹起来的时候不再移动
$(document).unbind("mousemove");
$(document).unbind("mouseup");
});
});
总结
以上所述是小编给大家介绍的js实现弹出框的拖拽效果实例代码详解 ,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
标签:
js,拖拽,js弹出框
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件!
如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
内蒙古资源网 Copyright www.nmgbbs.com
暂无“js实现弹出框的拖拽效果实例代码详解”评论...
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。