用JavaScript实现鼠标调整div大小的代码示例
Admin 2021-04-12 群英技术资讯 822 次浏览
本文实例为大家分享了JavaScript实现鼠标拖拽调整div大小的具体代码,供大家参考,具体内容如下。鼠标拖拽调整div大小的功能,类似于我们查看街景地图时,对缩小地图的操作。那么我们用JavaScript如何实现这样的效果呢?下面小编就给大家分享下用JavaScript实现鼠标调整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大小的代码示例,使用js鼠标拖拽事件我们还能够实现div的左右滑动,div的移动,图片切换等等功能,感谢的朋友可以自己扩展了解下。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
这篇文章主要介绍了linux服务器快速卸载安装node环境(简单上手),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
这篇文章主要介绍了 vue3 自定义指令详情,自定义指令分为全局和局部两种类型,大家并不陌生。今天我们就讲讲在 vue3 中,自定义指令定义、使用以及钩子函数都有哪些变化?,需要的朋友可以参考一下
我们在做前端项目开发时,往往会遇到登录页面记住密码的需求。那么我们在vue登录页面要如何来实现这样的功能?本文就教大家vue登录页面用cookie实现记住七天密码的功能。感兴趣的朋友继续往下看吧。
这篇文章给大家分享的是JS改变元素宽高的方法。这里使用到的是setAttribute() ,能用于添加指定的属性,并为其赋指定的值,文中的示例代码介绍得很详细,有需要的朋友可以参考,接下来就跟随小编一起了解看看吧。
用JS怎样写一个简单计数器,方法是什么?一些朋友可能会遇到这方面的问题,对此在下文小编向大家来讲解一下,内容详细,易于理解,希望大家阅读完这篇能有收获哦,有需要的朋友就往下看吧!
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008