zoukankan      html  css  js  c++  java
  • 拖拽图片

    <html>
    <head>
    <meta charset="utf-8"/>
    <style>
    #div1{
    100px; padding:0px; margin:0px;
    position: absolute; cursor: pointer;
    }
    #parent{
    500px; height: 500px;
    border: 1px solid #CDCDCD;
    position: relative; margin: 0 auto; //父级元素设置为:
    background-color: #F4F4F4;
    }

    #did{
    100px;}
    .postText{
    500px; height: 30px;margin: 0 auto; background-color: #F4F4F4;
    }
    .postText span{
    padding:0px 10px;
    }
    </style>
    </head>
    <body>
    <div id="parent">
    <div id="div1" onmousemove="posMove(this.id)">
    <img id="did" src="图片"></div>
    </div>

    </div>
    <div class="postText">
    移动的距离Top:<span id="posTop"></span>Left:<span id="posLeft"></span>
    </div>
    <script>
    function posMove(getdivid) {
    var oDiv = document.getElementById(getdivid);
    var oParent = document.getElementById('parent');
    var sent = {
    l: 10, //设置div在父元素的活动范围,10相当于给父div设置padding-left:10;
    r: oParent.offsetWidth - oDiv.offsetWidth, // offsetWidth:当前对象的宽度, offsetWidth = width+padding+border
    t: 10,
    b: oParent.offsetHeight - oDiv.offsetHeight,
    n: 10
    }
    drag(oDiv, sent);
    }

    /**
    *
    * @param obj:被拖动的div
    * @param sent :设置div在容器中可以被拖动的区域
    */
    function drag(obj,sent){

    var dmW = document.documentElement.clientWidth || document.body.clientWidth;
    var dmH = document.documentElement.clientHeight || document.body.clientHeight;

    var sent = sent || {};
    var l = sent.l || 0;
    var r = sent.r || dmW - obj.offsetWidth;
    var t = sent.t || 0;
    var b = sent.b || dmH - obj.offsetHeight;
    var n = sent.n || 10;

    obj.onmousedown = function (ev){
    var oEvent = ev || event;
    var sentX = oEvent.clientX - obj.offsetLeft;
    var sentY = oEvent.clientY - obj.offsetTop;

    document.onmousemove = function (ev){
    var oEvent = ev || event;

    var slideLeft = oEvent.clientX - sentX;
    var slideTop = oEvent.clientY - sentY;

    if(slideLeft <= l){
    slideLeft = l;
    }
    if(slideLeft >= r){
    slideLeft = r;
    }
    if(slideTop <= t){
    slideTop = t;
    }
    if(slideTop >= b){
    slideTop = b;
    }

    obj.style.left = slideLeft + 'px';
    obj.style.top = slideTop + 'px';

    document.getElementById('posTop').innerHTML = slideTop;
    document.getElementById('posLeft').innerHTML = slideLeft;

    };
    document.onmouseup = function (){
    document.onmousemove = null;
    document.onmouseup = null;
    }
    return false;
    }
    }
    </script>
    </body>
    </html>

  • 相关阅读:
    聊聊关于性能优化和其他(一)
    JavaScript 事件循环及异步原理(完全指北)
    SPA路由机制详解(看不懂不要钱~~)
    Web安全系列(三):XSS 攻击进阶(挖掘漏洞)
    Web安全系列(二):XSS 攻击进阶(初探 XSS Payload)
    浅谈Generator和Promise原理及实现
    Kubernetes 服务目录
    Kubernetes 网络模型
    个人开源贡献记录
    【转载】DTO – 服务实现中的核心数据
  • 原文地址:https://www.cnblogs.com/YFeiY7/p/6133010.html
Copyright © 2011-2022 走看看