利用JavaScript怎么实现一个拖拽鼠标调整div大小的功能-创新互联

本篇文章为大家展示了利用JavaScript怎么实现一个拖拽鼠标调整div大小的功能,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

创新互联专注于七星企业网站建设,成都响应式网站建设公司,成都做商城网站。七星网站建设公司,为七星等地区提供建站服务。全流程按需制作网站,专业设计,全程项目跟踪,创新互联专业和态度为您提供的服务

Java的特点有哪些

Java的特点有哪些 1.Java语言作为静态面向对象编程语言的代表,实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。 2.Java具有简单性、面向对象、分布式、安全性、平台独立与可移植性、动态性等特点。 3.使用Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等。

实现思路:


  • 根据鼠标位置改变鼠标样式

  • 当鼠标在div的边缘和四个角时显示不同的样式,通过cursor修改

  • 当鼠标在div的边缘和四个角按下时记录具体坐标点位置, 并开始根据鼠标的移动修改div的尺寸

  • 鼠标松开时结束尺寸修改


代码实现:

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>Title</title>
 <style>
  body, html {
   width: 100%;
   height: 100%;
   margin: 0;
  }

  #container {
   width: 200px;
   height: 200px;
   padding: 15px;
   border: #00cdcd 2px solid;
   box-sizing: border-box;
  }

  .item {
   cursor: default;
   width: 100%;
   height: 100%;
   background: #757575;
  }
 </style>
</head>
<body id="body">
<div id="container">
 <div class="item"></div>
</div>
<script>
 //需要调整尺寸的div
 let c = document.getElementById('container')
 // body监听移动事件
 document.getElementById('body').addEventListener('mousemove', move)
 // 鼠标按下事件
 c.addEventListener('mousedown', down)
 // 鼠标松开事件
 document.getElementById('body').addEventListener('mouseup', up)

 // 是否开启尺寸修改
 let resizeable = false
 // 鼠标按下时的坐标,并在修改尺寸时保存上一个鼠标的位置
 let clientX, clientY
 // div可修改的最小宽高
 let minW = 8, minH = 8
 // 鼠标按下时的位置,使用n、s、w、e表示
 let direc = ''

 // 鼠标松开时结束尺寸修改
 function up() {
  resizeable = false
 }

 // 鼠标按下时开启尺寸修改
 function down(e) {
  let d = getDirection(e)
  // 当位置为四个边和四个角时才开启尺寸修改
  if (d !== '') {
   resizeable = true
   direc = d
   clientX = e.clientX
   clientY = e.clientY
  }
 }

 // 鼠标移动事件
 function move(e) {
  let d = getDirection(e)
  let cursor
  if (d === '') cursor = 'default';
  else cursor = d + '-resize';
  // 修改鼠标显示效果
  c.style.cursor = cursor;
  // 当开启尺寸修改时,鼠标移动会修改div尺寸
  if (resizeable) {
   // 鼠标按下的位置在右边,修改宽度
   if (direc.indexOf('e') !== -1) {
    c.style.width = Math.max(minW, c.offsetWidth + (e.clientX - clientX)) + 'px'
    clientX = e.clientX
   }

   // 鼠标按下的位置在上部,修改高度
   if (direc.indexOf('n') !== -1) {
    c.style.height = Math.max(minH, c.offsetHeight + (clientY - e.clientY)) + 'px'
    clientY = e.clientY
   }
   // 鼠标按下的位置在底部,修改高度
   if (direc.indexOf('s') !== -1) {
    c.style.height = Math.max(minH, c.offsetHeight + (e.clientY - clientY)) + 'px'
    clientY = e.clientY
   }

   // 鼠标按下的位置在左边,修改宽度
   if (direc.indexOf('w') !== -1) {
    c.style.width = Math.max(minW, c.offsetWidth + (clientX - e.clientX)) + 'px'
    clientX = e.clientX
   }

  }
 }

 // 获取鼠标所在div的位置
 function getDirection(ev) {
  let xP, yP, offset, dir;
  dir = '';

  xP = ev.offsetX;
  yP = ev.offsetY;
  offset = 10;

  if (yP < offset) dir += 'n';
  else if (yP > c.offsetHeight - offset) dir += 's';
  if (xP < offset) dir += 'w';
  else if (xP > c.offsetWidth - offset) dir += 'e';

  return dir;
 }
</script>
</body>
</html>

上述内容就是利用JavaScript怎么实现一个拖拽鼠标调整div大小的功能,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注创新互联行业资讯频道。

文章名称:利用JavaScript怎么实现一个拖拽鼠标调整div大小的功能-创新互联
分享地址:https://www.cdcxhl.com/article10/jsjgo.html

成都网站建设公司_创新互联,为您提供App开发网站导航关键词优化品牌网站建设定制开发营销型网站建设

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

成都做网站