JavaScript的任意拖拽改变盒子的宽高<案例>

这篇博客详细记录了作者如何解决JavaScript中实现元素任意拖拽改变宽高的问题。通过onmousedown、onmousemove和onmouseup三个鼠标事件,实现拖动元素四周调整其大小和位置的功能。案例代码展示了具体的实现过程。
摘要由CSDN通过智能技术生成

前言,虽然说出来确实丢人但我不得不说,这个案例困扰了我很久. 在自己细细的琢磨并且 弄懂后  记录下来.我认为是一种乐趣.    总体这个案例我们要实现的效果是,拖拽盒子的四周 任意改变盒子的宽高 与位置 在案例中我们需要用到 三个关于鼠标的事件. 

1、onmousedown 鼠标按下后触发   2、  ommousemove 鼠标每移动一像素触发  3、 onmouseup 鼠标按下送开时触发 

初始代码如下:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<style type="text/css">
			#box{width: 160px; height: 160px; position: absolute; left: 40%; top: 200px; background: aquamarine;border: 10px solid aqua; box-sizing: border-box;}
		</style>
	</head>
	<body>
		<div id="box"></div>
	</body>
</html>


下面是js代码部分:

好的,以下是实现步骤: 1. HTML结构:在页面上添加一个大盒子<div>,并嵌套一个无序列表<ul>,每个列表项<li>代表一个导航链接,例如: ```html <div class="nav"> <ul> <li><a href="#">首页</a></li> <li><a href="#">产品中心</a></li> <li><a href="#">关于我们</a></li> <li><a href="#">联系我们</a></li> </ul> </div> ``` 2. CSS样式:设定大盒子和外边距,同时设定li的、背景样式、文字样式并使其左浮动,例如: ```css .nav { width: 960px; height: 40px; margin: 0 auto; } .nav ul { list-style: none; margin: 0; padding: 0; } .nav li { float: left; width: 120px; height: 40px; background-color: #ccc; text-align: center; line-height: 40px; } .nav li a { display: block; color: #333; text-decoration: none; } ``` 3. JavaScript特效:使用JavaScript为每个列表项添加鼠标移入和移出事件,使其在鼠标移入时改变背景颜色和字体颜色,在鼠标移出时恢复原样式,例如: ```javascript var navList = document.querySelectorAll('.nav li'); for (var i = 0; i < navList.length; i++) { navList[i].onmouseover = function() { this.style.backgroundColor = '#333'; this.querySelector('a').style.color = '#fff'; } navList[i].onmouseout = function() { this.style.backgroundColor = '#ccc'; this.querySelector('a').style.color = '#333'; } } ``` 4. 页面引入:将CSS样式和JavaScript代码分别放到<style>和<script>标签中,并将<script>标签放在页面底部,例如: ```html <head> <style> /* CSS样式 */ </style> </head> <body> <!-- HTML结构 --> <script> // JavaScript代码 </script> </body> ``` 这样就完成了一个简单的JavaScript下拉菜单和导航栏特效的实现。当鼠标移动到某个导航链接上时,该链接的背景色和字体颜色会改变,鼠标移出时恢复原样式。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值