原生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 相关文章推荐
jQuery 源码分析笔记(5) jQuery.support
Jun 19 Javascript
jquery图片轮播插件仿支付宝2013版全屏图片幻灯片
Apr 03 Javascript
js处理表格对table进行修饰
May 26 Javascript
javascript实现在某个元素上阻止鼠标右键事件的方法和实例
Aug 12 Javascript
JavaScript 栈的详解及实例代码
Jan 22 Javascript
vue里面父组件修改子组件样式的方法
Feb 03 Javascript
Node.js Express安装与使用教程
May 11 Javascript
vue实现点击当前标签高亮效果【推荐】
Jun 22 Javascript
一文读懂ES7中的javascript修饰器
May 06 Javascript
javascript中this的用法实践分析
Jul 29 Javascript
JS数组Reduce方法功能与用法实例详解
Apr 29 Javascript
微信小程序实现列表滚动头部吸顶的示例代码
Jul 12 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的curl实现get,post和cookie(实例介绍)
2013/06/17 PHP
php-perl哈希算法实现(times33哈希算法)
2013/12/30 PHP
PHP的反射机制实例详解
2017/03/29 PHP
js的写法基础分析
2011/01/17 Javascript
jQuery 在光标定位的地方插入文字的插件
2012/05/10 Javascript
js jquery数组介绍
2012/07/15 Javascript
提高NodeJS中SSL服务的性能
2014/07/15 NodeJs
JavaScript中的公有、私有、特权和静态成员用法分析
2014/11/20 Javascript
AngularJS中的指令全面解析(必看)
2016/05/20 Javascript
BootStrap轻松实现微信页面开发代码分享
2016/10/21 Javascript
jQuery选择器中的特殊符号处理方法
2017/09/08 jQuery
微信小程序自定义tab实现多层tab嵌套功能
2018/06/15 Javascript
简单易扩展可控性强的Jquery转盘抽奖程序
2019/03/16 jQuery
浅谈TypeScript 用 Webpack/ts-node 运行的配置记录
2019/10/11 Javascript
vue 路由懒加载中给 Webpack Chunks 命名的方法
2020/04/24 Javascript
element-ui 弹窗组件封装的步骤
2021/01/22 Javascript
[03:40]DOTA2亚洲邀请赛小组赛第二日 赛事回顾
2015/01/31 DOTA
python学习笔记之调用eval函数出现invalid syntax错误问题
2015/10/18 Python
windows下python连接oracle数据库
2017/06/07 Python
Python 3.x读写csv文件中数字的方法示例
2017/08/29 Python
详解supervisor使用教程
2017/11/21 Python
matplotlib简介,安装和简单实例代码
2017/12/26 Python
运用TensorFlow进行简单实现线性回归、梯度下降示例
2018/03/05 Python
python实现逆序输出一个数字的示例讲解
2018/06/25 Python
Python通过Manager方式实现多个无关联进程共享数据的实现
2019/11/07 Python
美国健康和保健平台:healtop
2020/07/02 全球购物
中青班党性分析材料
2014/02/16 职场文书
单位工程竣工验收方案
2014/03/16 职场文书
班级学习计划书
2014/04/27 职场文书
我的大学四年规划书范文2014
2014/09/26 职场文书
公务员年终个人总结
2015/02/12 职场文书
2016年小学生寒假总结
2015/10/10 职场文书
某药房的新员工入职告知书!
2019/07/15 职场文书
详解vue身份认证管理和租户管理
2021/05/25 Vue.js
WebWorker 封装 JavaScript 沙箱详情
2021/11/02 Javascript
Python 恐龙跑跑小游戏实现流程
2022/02/15 Python