原生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 相关文章推荐
对google个性主页的拖拽效果的js的完整注释[转]
Apr 10 Javascript
ExtJS 2.0实用简明教程之应用ExtJS
Apr 29 Javascript
jQuery选择头像并实时显示的代码
Jun 27 Javascript
javascript实现带节日和农历的日历特效
Feb 01 Javascript
利用jQuery及AJAX技术定时更新GridView的某一列数据
Dec 04 Javascript
基于JavaScript实现动态添加删除表格的行
Feb 01 Javascript
一步一步封装自己的HtmlHelper组件BootstrapHelper(三)
Sep 14 Javascript
原生js实现瀑布流布局
Mar 08 Javascript
vue小白入门教程
Apr 02 Javascript
vue 下列表侧滑操作实例代码详解
Jul 24 Javascript
VUE预渲染及遇到的坑
Sep 03 Javascript
基于webpack4+vue-cli3项目实现换肤功能
Jul 17 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中数组首字符过滤功能代码
2012/07/31 PHP
php class中public,private,protected的区别以及实例分析
2013/06/18 PHP
thinkPHP下的widget扩展用法实例分析
2015/12/26 PHP
php微信公众号js-sdk开发应用
2016/11/28 PHP
Mozilla 表达式 __noSuchMethod__
2009/04/05 Javascript
jquery命令汇总,方便使用jquery的朋友
2012/06/26 Javascript
在服务端(Page.Write)调用自定义的JS方法详解
2013/08/09 Javascript
几种延迟加载JS代码的方法加快网页的访问速度
2013/10/12 Javascript
jquery使用each方法遍历json格式数据实例
2015/05/18 Javascript
图文详解Heap Sort堆排序算法及JavaScript的代码实现
2016/05/04 Javascript
详解Angular2中的编程对象Observable
2016/09/17 Javascript
详解vue.js全局组件和局部组件
2017/04/10 Javascript
微信小程序ajax实现请求服务器数据及模版遍历数据功能示例
2017/12/15 Javascript
浅谈vux之x-input使用以及源码解读
2018/11/04 Javascript
Vue 中的受控与非受控组件的实现
2018/12/17 Javascript
微信小程序和百度的语音识别接口详解
2019/05/06 Javascript
详解Vue 的异常处理机制
2020/11/30 Vue.js
Python实现控制台进度条功能
2016/01/04 Python
Django实现的自定义访问日志模块示例
2017/06/23 Python
详解django中自定义标签和过滤器
2017/07/03 Python
Python中顺序表的实现简单代码分享
2018/01/09 Python
浅谈Python中的bs4基础
2018/10/21 Python
Pandas读写CSV文件的方法示例
2019/03/27 Python
Python Sympy计算梯度、散度和旋度的实例
2019/12/06 Python
在Tensorflow中实现leakyRelu操作详解(高效)
2020/06/30 Python
python爬虫scrapy框架之增量式爬虫的示例代码
2021/02/26 Python
jupyter notebook指定启动目录的方法
2021/03/02 Python
HTML5 canvas基本绘图之绘制阴影效果
2016/06/27 HTML / CSS
大四学生找工作的自荐信
2014/03/27 职场文书
男性健康日的活动方案
2014/08/18 职场文书
2014幼儿园教师师德师风演讲稿
2014/09/10 职场文书
博士导师推荐信
2015/03/25 职场文书
博物馆观后感
2015/06/05 职场文书
军训阅兵新闻稿
2015/07/17 职场文书
2016教师校本研修心得体会
2016/01/08 职场文书
2016简单的租房合同范本
2016/03/18 职场文书