• 首页
  • 电影
  • Js
  • 前端
  • 新旅
  • 奇技
  • 网安
  • 歌单
  • 关于
  • 搜索
  • 夜间模式
    ©2013-2025  成长小破站 Theme by OneBlog
    搜索
    标签
    # css # js # uniapp # ps # chrome # 小程序 # javascript # 布局 # typecho # 激活码
  • 首页>
  • Javascript>
  • 正文
  • Js拖拽事件

    2015年12月23日 1.4 k 阅读 0 评论 1721 字
    <!doctype html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <title>darg</title>
    <style type="text/css">
    .login_title { cursor: move; position: absolute; top: 300px; left: 200px; background: #259; height: 60px; width: 500px; }
    </style>
    </head>
    <body>
    <div class="login_title" id="box"></div>
    
    <script type="text/javascript">
    function getByClass (clsName, parent) { var oParent=parent?document.getElementById(parent):document, eles=[], elements=oParent.getElementsByTagName('*'); for (var i = 0, l=elements.length; i<l;
        i++) { if (elements[i].className==clsName) { eles.push(elements[i]) }
        }
    return eles; }
    window.onload=drag;
    function drag() { var oTitle=getByClass('login_title')[0]; oTitle.onmousedown=fnDown; }
    function fnDown(event) { event = event || window.event; var oDrag=document.getElementById('box'), disX=event.clientX-oDrag.offsetLeft, disY=event.clientY-oDrag.offsetTop;
        document.onmousemove=function(event) { event = event || window.event; fnMove(event, disX, disY); }
        document.onmouseup=function() { document.onmousemove=null; document.onmouseup=null; }
    }
    function fnMove(e, posx, posy) { var    oDrag=document.getElementById('box'), l=e.clientX-posx, t=e.clientY-posy, winW=document.documentElement.clientWidth || document.body.clientWidth, winH=document.documentElement.clientHeight || document.body.clientHeight, maxW=winW-oDrag.offsetWidth-10, maxH=winH-oDrag.offsetHeight;
        if(l<0) { l=0; }
        else if(l>maxW) { l=maxW; }
        if(t<0) { t=10; }
        else if(t>maxH) { t=maxH; }
    oDrag.style.left=l+'px'; oDrag.style.top =t+'px'; }
    </script>
    </body>
    </html>

    知识点:

    • 用class获取元素封装;
    • 学习mouseover事件;
    • 常见拖拽bug造成原因,鼠标当前位置-元素距离浏览器的位置;
    • 超过容器大小判断;
    本文著作权归作者 [ admin ] 享有,未经作者书面授权,禁止转载,封面图片来源于 [ 互联网 ] ,本文仅供个人学习、研究和欣赏使用。如有异议,请联系博主及时处理。
    js拖拽事件
    取消回复

    发表留言
    回复

    首页电影Js前端新旅奇技网安歌单关于
    Copyright©2013-2025  All Rights Reserved.  Load:0.032 s
    豫公网安备41050202000235   豫ICP备18019224号-2
    Theme by OneBlog V3.6.4
    夜间模式

    开源不易,请尊重作者版权,保留基本的版权信息。