js打开支持拖动的弹出层

js打开支持拖动的弹出层

添加时间:2021-03-20 15:25:53
站长推荐丨赞助论坛,可获取海量资源终身免费下载权限奥!
举报 举报
收藏
预览
附件 附件
  • 模板类型模板类型:拖动
  • 模板颜色模板颜色:中级
  • 下载积分下载积分:28 米粒
  • 下载权限下载权限:

    赞助会员

js打开一个带有动画效果的弹出层,并且鼠标可拖动,兼容主流浏览器。
js打开支持拖动的弹出层
分类:悬浮层/弹出层 > 拖动 难易:中级

点击按钮和浮动层html代码

<div class="btnbox">
    <a class="od" onClick="show('feedbox');return false;" href="#">[打开层]</a>
    <a class="od" onclick="closeed('feedbox');return false;" href="#">[关闭层]</a>
</div>

<div id="feedbox" style="display:none;">
    <div class="main">移动层</div>
</div>

js拖动弹出层

var prox;
var proy;
var proxc;
var proyc;
function show(id) {
    clearInterval(prox);
    clearInterval(proy);
    clearInterval(proxc);
    clearInterval(proyc);
    var o = document.getElementById(id);
    o.style.display = "block";
    o.style.width = "1px";
    o.style.height = "1px";
    prox = setInterval(function() {
        openx(o, 500)
    }, 10);
}
function openx(o, x) {
    var cx = parseInt(o.style.width);
    if (cx < x) {
        o.style.width = (cx + Math.ceil((x - cx) / 5)) + "px";
    } else {
        clearInterval(prox);
        proy = setInterval(function() {
            openy(o, 200)
        }, 10);
    }
}

function openy(o, y) {
    var cy = parseInt(o.style.height);
    if (cy < y) {
        o.style.height = (cy + Math.ceil((y - cy) / 5)) + "px";
    } else {
        clearInterval(proy);
    }
}

function closeed(id) {
    clearInterval(prox);
    clearInterval(proy);
    clearInterval(proxc);
    clearInterval(proyc);
    var o = document.getElementById(id);
    if (o.style.display == "block") {
        proyc = setInterval(function() {
            closey(o)
        }, 10);
    }
}

function closey(o) {
    var cy = parseInt(o.style.height);
    if (cy > 0) {
        o.style.height = (cy - Math.ceil(cy / 5)) + "px";
    } else {
        clearInterval(proyc);
        proxc = setInterval(function() {
            closex(o)
        }, 10);
    }
}

function closex(o) {
    var cx = parseInt(o.style.width);
    if (cx > 0) {
        o.style.width = (cx - Math.ceil(cx / 5)) + "px";
    } else {
        clearInterval(proxc);
        o.style.display = "none";
    }
}

/*-------------------------鼠标拖动---------------------*/
var od = document.getElementById("feedbox");
var dx, dy, mx, my, mouseD;
var odrag;
var isIE = document.all ? true : false;
document.onmousedown = function(e) {
    var e = e ? e : event;
    if (e.button == (document.all ? 1 : 0)) {
        mouseD = true;
    }
}

document.onmouseup = function() {
    mouseD = false;
    odrag = "";
    if (isIE) {
        od.releaseCapture();
        od.filters.alpha.opacity = 100;
    } else {
        window.releaseEvents(od.MOUSEMOVE);
        od.style.opacity = 1;
    }
}


//function readyMove(e){ 
od.onmousedown = function(e) {
    odrag = this;
    var e = e ? e : event;
    if (e.button == (document.all ? 1 : 0)) {
        mx = e.clientX;
        my = e.clientY;
        od.style.left = od.offsetLeft + "px";
        od.style.top = od.offsetTop + "px";
        if (isIE) {
            od.setCapture();
            od.filters.alpha.opacity = 50;
        } else {
            window.captureEvents(Event.MOUSEMOVE);
            od.style.opacity = 0.5;
        }
    }
}

document.onmousemove = function(e) {
    var e = e ? e : event;
    if (mouseD == true && odrag) {
        var mrx = e.clientX - mx;
        var mry = e.clientY - my;
        od.style.left = parseInt(od.style.left) + mrx + "px";
        od.style.top = parseInt(od.style.top) + mry + "px";
        mx = e.clientX;
        my = e.clientY;
    }
}
相关内容推荐
资源求助发帖
查看更多发帖

*

回帖描述:

*

链接类型:

*

下载链接:

密码:
发帖规则:回帖内容为会员之间的私信,普通网友无法查看。
免责声明:回帖中提供的链接内容仅供会员之间学习参考使用,获取内容后请在法律法规范围内使用。回帖提供的内容应符合法律法规要求,不得违反法律法律的要求。
站点权责:回帖内容如违反法律法规,站点有权封停账号使用权利。对用户举报的内容,站点有责任及时删除违规内容。
热点内容推荐
标题:js打开支持拖动的弹出层

*

描述:
平均回复时间:3-10分钟
规则介绍:悬赏寻求论坛网友分享资源,站点对分享内容的准确性,合法性,版权等没有足够的监管能力。如果您发现资源不正确,无法使用,不符合法律法律等情况,您可以直接举报资源。站长将尽快核实您的举报,并根据情况,采取封号,退换米粒等处理。

*

回帖描述:

*

链接类型:

*

阅读权限:

*

下载链接:

密码:
发帖规则:回帖内容为会员之间的私信,普通网友无法查看。
免责声明:回帖中提供的链接内容仅供会员之间学习参考使用,获取内容后请在法律法规范围内使用。回帖提供的内容应符合法律法规要求,不得违反法律法律的要求。
站点权责:回帖内容如违反法律法规,站点有权封停账号使用权利。对用户举报的内容,站点有责任及时删除违规内容。
  • 背景波浪
  • 背景波浪
  • 波浪
  • 波浪
客服
在线咨询
周一 至 周日 9:00 ~ 22:00
QQ:1326974360
微信:juyoubuluo6688
客服热线
18205485173
工作日 9:00 ~ 18:00
微信扫码咨询
客户服务
欢迎咨询服务
咨询量较多时,请耐心等待
社群

关注公众号

获取更多资讯

扫码进群(QQ)

与更多大牛交流沟通

0.313966s