原生js拖拽实现图形伸缩效果


Posted in Javascript onFebruary 10, 2020

本文实例为大家分享了js拖拽实现图形伸缩效果的具体代码,供大家参考,具体内容如下

点击矩形的四个角和四个边实现不同的效果

原生js拖拽实现图形伸缩效果

原生js拖拽实现图形伸缩效果

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>
  <style>
    *{
      padding: 0;
      margin:0;
    }
    .div1{
      width: 200px;
      height: 200px;
      background-color: #71e4ff;
      position: absolute;
      top: 200px;
      left: 200px;
    }
    .t,
    .b{
      width: 100%;
      height: 20px;
      background-color:#ffa2d3;
      position: absolute;
    }
    .t{
      left: 0;
      top:0;
    }
    .b{
      left: 0;
      bottom:0;
    }
    .r,
    .l{
      width: 20px;
      height: 100%;
      background-color:#ffa2d3;
      position: absolute;
    }
    .r{
      right: 0;
      top:0;
    }
    .l{
      left: 0;
      top:0;
    }
    .lt,
    .lb,
    .rt,
    .rb{
      width: 20px;
      height: 20px;
      background-color: #93ff6b;
      position: absolute;
    }
    .lt{
      left: 0;
      top:0;
    }
    .rt{
      right: 0;
      top:0;
    }
    .lb{
      left: 0;
      bottom: 0;
    }
    .rb{
      right: 0;
      bottom:0;
    }
    
  </style>
</head>
<body>
  <div class="div1" id="_div1">
    <div class="t"></div>
    <div class="r"></div>
    <div class="b"></div>
    <div class="l"></div>
    <div class="lt"></div>
    <div class="lb"></div>
    <div class="rt"></div>
    <div class="tb"></div>
  </div>
</body>
</html>
<script>
  // 获取元素
  var _div1 = document.getElementById("_div1");
  var divs = _div1.children;
  // 遍历每个可以拖拽的元素
  for(var i = 0;i < divs.length ;i++)
  {
    drag(divs[i]);
  }
  // 封装一个拖拽函数
   function drag(obj){
    obj.onmousedown = function(event){
      // 捕获事件
      var event = event || window.event;
      // 存储当前的_div1的宽高
      var divW = _div1.offsetWidth;
      var divH = _div1.offsetHeight;
      // 获得当前_div1的offsetLeft 和 offsetTop
      var divL = _div1.offsetLeft;
      var divT = _div1.offsetTop;
      // 存储鼠标按下时的位置
      var clientx = event.clientX;
      var clienty = event.clientY;
      document.onmousemove = function(event){
        var event = event || window.event;
        if(obj.className.indexOf('t') != -1){
          _div1.style.height = divH + ( clienty- event.clientY) + 'px';
          _div1.style.top = divT -( clienty- event.clientY)+ 'px';
        }
        if(obj.className.indexOf('b') != -1){
          _div1.style.height = divH + ( event.clientY -clienty ) + 'px';
        }
         if(obj.className.indexOf('r')!= -1){
          _div1.style.width = divW + ( event.clientX - clientx) + 'px';
        }
         if(obj.className.indexOf('l')!= -1){
          _div1.style.width = divW + ( clientx - event.clientX) + 'px';
          _div1.style.left = event.clientX + 'px';
        }

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JavaScript Event事件学习第一章 Event介绍
Feb 07 Javascript
JQuery获取文本框中字符长度的代码
Sep 29 Javascript
JavaScript高级程序设计阅读笔记(五) ECMAScript中的运算符(一)
Feb 27 Javascript
解决jquery的datepicker的本地化以及Today问题
May 23 Javascript
Javascript中的关键字和保留字整理
Oct 16 Javascript
BootStrap中Tab页签切换实例代码
May 30 Javascript
Bootstrap输入框组件简单实现代码
Mar 06 Javascript
AngularJS自定义指令之复制指令实现方法
May 18 Javascript
分析JS中this引发的bug
Dec 12 Javascript
json前后端数据交互相关代码
Sep 19 Javascript
Vue一次性简洁明了引入所有公共组件的方法
Nov 28 Javascript
JavaScript实现复选框全选和取消全选
Nov 20 Javascript
js实现单元格拖拽效果
Feb 10 #Javascript
详解Vue template 如何支持多个根结点
Feb 10 #Javascript
JavaScript canvas动画实现时钟效果
Feb 10 #Javascript
JavaScript canvas仿代码流瀑布
Feb 10 #Javascript
Vue数字输入框组件使用方法详解
Feb 10 #Javascript
JavaScript canvas实现跟随鼠标事件
Feb 10 #Javascript
JavaScript实现简易聊天对话框(加滚动条)
Feb 10 #Javascript
You might like
PHP+DBM的同学录程序(4)
2006/10/09 PHP
给初学者的30条PHP最佳实践(荒野无灯)
2011/08/02 PHP
jQuery DIV弹出效果实现代码
2009/07/03 Javascript
jquery 全局AJAX事件使用代码
2010/11/05 Javascript
JavaScript 学习笔记之操作符(续)
2015/01/14 Javascript
jQuery解决input超多的表单提交
2015/08/10 Javascript
基于javascript html5实现3D翻书特效
2016/03/14 Javascript
JavaScript必知必会(二) null 和undefined
2016/06/08 Javascript
Bootstrap对话框使用实例讲解
2016/09/24 Javascript
常用Javascript函数与原型功能收藏(必看篇)
2016/10/09 Javascript
JS实现点击网页判断是否安装app并打开否则跳转app store
2016/11/18 Javascript
关于 jQuery Easyui异步加载tree的问题解析
2016/12/06 Javascript
javascript表单正则应用
2017/02/04 Javascript
JavaScript实现设置默认日期范围为最近40天的方法分析
2017/07/12 Javascript
利用JS实现一个同Excel表现的智能填充算法
2018/08/13 Javascript
Node.js的进程管理的深入理解
2019/01/09 Javascript
详解关于React-Router4.0跳转不置顶解决方案
2019/05/10 Javascript
javascript如何实现create方法
2019/11/04 Javascript
一篇不错的Python入门教程
2007/02/08 Python
Django中更改默认数据库为mysql的方法示例
2018/12/05 Python
python绘制双Y轴折线图以及单Y轴双变量柱状图的实例
2019/07/08 Python
Python英文文章词频统计(14份剑桥真题词频统计)
2019/10/13 Python
Django restframework 框架认证、权限、限流用法示例
2019/12/21 Python
Python Tensor FLow简单使用方法实例详解
2020/01/14 Python
python匿名函数lambda原理及实例解析
2020/02/07 Python
美国滑板店:Tactics
2020/11/08 全球购物
查摆问题对照检查材料
2014/08/28 职场文书
施工员岗位职责
2015/02/10 职场文书
幼儿教师辞职信范文
2015/03/02 职场文书
安全第一课观后感
2015/06/18 职场文书
2015年校医个人工作总结
2015/07/24 职场文书
小学课改工作总结
2015/08/13 职场文书
2016年党校科级干部培训班学习心得体会
2016/01/06 职场文书
2016大学生求职自荐信范文
2016/01/28 职场文书
python中的装饰器该如何使用
2021/06/18 Python
C站最全Python标准库总结,你想要的都在这里
2021/07/03 Python