原生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 相关文章推荐
下载站控制介绍字数显示的脚本 显示全部 隐藏介绍等功能
Sep 19 Javascript
freemarker判断对象是否为空的方法
Aug 13 Javascript
jQuery实现垂直半透明手风琴特效代码分享
Aug 21 Javascript
纯HTML5制作围住神经猫游戏-附源码下载
Aug 23 Javascript
js如何改变文章的字体大小
Jan 08 Javascript
详解Bootstrap的iCheck插件checkbox和radio
Aug 24 Javascript
javascript事件捕获机制【深入分析IE和DOM中的事件模型】
Dec 15 Javascript
Bootstrap Scrollspy源码学习
Mar 02 Javascript
基于Two.js实现星球环绕动画效果的示例
Nov 06 Javascript
vuejs简单验证码功能完整示例
Jan 08 Javascript
小程序使用分包的示例代码
Mar 23 Javascript
js基于div丝滑实现贝塞尔曲线
Sep 23 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 随机记录mysql rand()造成CPU 100%的解决办法
2010/05/18 PHP
摘自启点的main.js
2008/04/20 Javascript
javascript脚本编程解决考试分数统计问题
2008/10/18 Javascript
ext combox 下拉框不出现自动提示,自动选中的解决方法
2010/02/24 Javascript
JS实现具备延时功能的滑动门菜单效果
2015/09/17 Javascript
JQuery实现左右滚动菜单特效
2015/09/28 Javascript
js实现简单的省市县三级联动效果实例
2016/02/18 Javascript
详解JavaScript实现设计模式中的适配器模式的方法
2016/05/18 Javascript
jQuery Validate格式验证功能实例代码(包括重名验证)
2017/07/18 jQuery
利用JS实现scroll自定义滚动效果详解
2017/10/17 Javascript
在Vue项目中使用d3.js的实例代码
2018/05/01 Javascript
vue-cli 如何打包上线的方法示例
2018/05/08 Javascript
js实现经典贪吃蛇小游戏
2020/03/19 Javascript
[54:10]Spirit vs NB Supermajor小组赛 A组败者组决赛 BO3 第一场 6.2
2018/06/03 DOTA
动感网页相册 python编写简单文件夹内图片浏览工具
2016/08/17 Python
酷! 程序员用Python带你玩转冲顶大会
2018/01/17 Python
Python的SimpleHTTPServer模块用处及使用方法简介
2018/01/22 Python
Python实现深度遍历和广度遍历的方法
2019/01/22 Python
python实现石头剪刀布小游戏
2021/01/20 Python
Python 的字典(Dict)是如何存储的
2019/07/05 Python
Django框架视图介绍与使用详解
2019/07/18 Python
利用anaconda作为python的依赖库管理方法
2019/08/13 Python
python+opencv实现车牌定位功能(实例代码)
2019/12/24 Python
python实现将range()函数生成的数字存储在一个列表中
2020/04/02 Python
翻转数列python实现,求前n项和,并能输出整个数列的案例
2020/05/03 Python
基于HTML5代码实现折叠菜单附源码下载
2015/11/27 HTML / CSS
Html5页面二次分享的实现
2018/07/30 HTML / CSS
Expedia印度:您的一站式在线旅游网站
2017/08/24 全球购物
雅诗兰黛澳大利亚官网:Estée Lauder澳大利亚
2019/05/31 全球购物
写出一个方法实现冒泡排序
2016/07/08 面试题
主治医师岗位职责
2013/12/10 职场文书
成龙霸王洗发水广告词
2014/03/14 职场文书
会计的岗位职责
2014/03/15 职场文书
教师查摆问题及整改措施
2014/10/11 职场文书
党员干部作风建设思想汇报范文
2014/10/25 职场文书
培训感想范文
2015/08/07 职场文书