Home > Web Front-end > JS Tutorial > JS realizes the method of changing the size of objects based on dragging

JS realizes the method of changing the size of objects based on dragging

韦小宝
Release: 2018-01-24 09:57:21
Original
1887 people have browsed it

This article mainly introduces the JS method of changing the size of objects based on dragging, involving javascript eventsResponse and implementation techniques related to dynamic operation of page element attributes. Friends who are interested in JavaScript can refer to the following book Article

Drag and drop to change object size function: Drag the yellow small p to change the width and height of the green big p

## The main implementation consists of three steps:

1. Obtain the size of two p

through the ID. 2. Add
onmousedown## to the small p. #Event3. Add
onmousemove and onmouseupevent to the document in the onmousedown event.

As can be seen from the analysis diagram, we only need to obtain the increasing width value of the object when dragging, and the problem is solved

<p id="panel">
  <p id="dragIcon"></p>
</p>
Copy after login

Add some styles

<style>
    #panel{
      position: absolute;
      width: 200px;height: 200px;
      background: green;
    }
    #dragIcon{
      position: absolute;bottom: 0;right: 0;
      width: 20px;height: 20px;
      background: yellow;
    }
</style>
Copy after login

js implementation code:

<script>
  window.onload = function () {
    // 1. 获取两个大小p
    var oPanel = document.getElementById(&#39;panel&#39;);
    var oDragIcon = document.getElementById(&#39;dragIcon&#39;);
    // 定义4个变量
    var disX = 0;//鼠标按下时光标的X值
    var disY = 0;//鼠标按下时光标的Y值
    var disW = 0; //拖拽前p的宽
    var disH = 0; // 拖拽前p的高
    //3. 给小p加点击事件
    oDragIcon.onmousedown = function (ev) {
      var ev = ev || window.event;
      disX = ev.clientX; // 获取鼠标按下时光标x的值
      disY = ev.clientY; // 获取鼠标按下时光标Y的值
      disW = oPanel.offsetWidth; // 获取拖拽前p的宽
      disH = oPanel.offsetHeight; // 获取拖拽前p的高
      document.onmousemove = function (ev) {
        var ev = ev || window.event;
        //拖拽时为了对宽和高 限制一下范围,定义两个变量
        var W = ev.clientX - disX + disW;
        var H = ev.clientY - disY + disH;
        if(W<100){
          W = 100;
        }
        if(W>800){
          W =800;
        }
        if(H<100){
          H = 100;
        }
        if(H>500){
          H = 500;
        }
        oPanel.style.width =W +&#39;px&#39;;// 拖拽后物体的宽
        oPanel.style.height = H +&#39;px&#39;;// 拖拽后物体的高
      }
      document.onmouseup = function () {
        document.onmousemove = null;
        document.onmouseup = null;
      }
    }
  }
</script>
Copy after login

Rendering:

##The above is all the content of this article, I hope it will be useful for everyone to learn help! !

Related recommendations:

Various writing methods of javaScript encapsulation

Take you to quickly understand the event model in javascript

Detailed explanation of JavaScript observer pattern examples

The above is the detailed content of JS realizes the method of changing the size of objects based on dragging. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template