网页特效之鼠标展示

效果:每当鼠标移动到该图片,展示该图片的大图

效果图:

思路:

给div的padding-top值和大图高度一样,并以大图做该div背景

使用onmouseover事件使鼠标移动到图片上时更换div背景

具体代码:

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>鼠标展示</title>
	<style type="text/css">
		* {
			margin: 0; 
			padding: 0;
		}
		img{
			border:0;
			vertical-align:middle;
		}
		ul {
			list-style: none;
		}
		#box {
			width:360px;
			height: 70px;
			padding-top: 360px;
			border: 1px solid #ccc;
			margin: 100px auto;
			background: url(images/01big.jpg);
		}
		#box ul li {
			float: left;
			cursor: pointer;
			border-left: 2px solid #fff;
		}
		li{
			padding: 0;
		}
	</style>
</head>
<body>
	<div id="box">
		<ul>
			<li id="li01"><img src="images/01.jpg" alt=""></li>
			<li id="li02"><img src="images/02.jpg" alt=""></li>
			<li id="li03"><img src="images/03.jpg" alt=""></li>
			<li id="li04"><img src="images/04.jpg" alt=""></li>
			<li id="li05"><img src="images/05.jpg" alt=""></li>
		</ul>
	</div>
</body>
<script type="text/javascript">
 	var box = document.getElementById('box');
 	console.log(box);
 	function fn(li_id,bg_num){
 		var obj = document.getElementById(li_id);
 		console.log(obj);
 		obj.onmouseover = function(){
 			box.style.backgroundImage = bg_num;
 		}
 	}
 	fn('li01','url(images/01big.jpg)');
 	fn('li02','url(images/02big.jpg)');
 	fn('li03','url(images/03big.jpg)');
 	fn('li04','url(images/04big.jpg)');
 	fn('li05','url(images/05big.jpg)');
</script>
</html>

使用for循环改进后的代码:

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>鼠标展示</title>
	<style type="text/css">
		* {
			margin: 0;
			padding: 0;
		}
		img{
			border:0;
			vertical-align:middle;
		}
		ul {
			list-style: none;
		}
		#box {
			width:360px;
			height: 70px;
			padding-top: 360px;
			border: 1px solid #ccc;
			margin: 100px auto;
			background: url(images/01big.jpg);
		}
		#box ul li {
			float: left;
			cursor: pointer;
			border-left: 2px solid #fff;
		}
		li{
			padding: 0;
		}
	</style>
</head>
<body>
	<div id="box">
		<ul>
			<li><img src="images/01.jpg" alt=""></li>
			<li><img src="images/02.jpg" alt=""></li>
			<li><img src="images/03.jpg" alt=""></li>
			<li><img src="images/04.jpg" alt=""></li>
			<li><img src="images/05.jpg" alt=""></li>
		</ul>
	</div>
</body>
<script type="text/javascript">
 	var box = document.getElementById('box');
	var lis = document.getElementsByTagName('li');
 	function fn(li_id,bg_num){
 		var obj = document.getElementById(li_id);
 		// console.log(obj);
 		obj.onmouseover = function(){
 			box.style.backgroundImage = bg_num;
 		}
 	}
	for(var i=1;i<=lis.length;i++){
		// console.log(i);
		lis[i-1].id = 'li0'+i;//给各项li添加id
		fn('li0'+i,'url(images/0'+i+'big.jpg)');
	}
</script>
</html>

具体效果图可见:鼠标展示

Vue中实现鼠标移动特效有很多种方式,以下是其中一种常见的实现方法: 首先,在Vue组件中,你可以使用`@mousemove`事件监听鼠标移动事件。在事件处理函数中,你可以获取鼠标的坐标,并计算出相对于元素的位置。 例如,假设你要实现一个鼠标移动时产生气泡效果的特效。你可以在组件的`data`中定义一个数组,用于存储气泡的位置信息。然后,在`mounted`钩子函数中添加事件监听器。 ```vue <template> <div class="container" @mousemove="handleMouseMove"> <div class="bubble" v-for="(bubble, index) in bubbles" :key="index" :style="{ top: bubble.y + 'px', left: bubble.x + 'px' }"></div> </div> </template> <script> export default { data() { return { bubbles: [] // 存储气泡位置信息的数组 }; }, mounted() { window.addEventListener('resize', this.handleResize); }, methods: { handleMouseMove(event) { const x = event.clientX; const y = event.clientY; this.bubbles.push({ x, y }); }, handleResize() { // 处理窗口大小变化的逻辑 } }, beforeDestroy() { window.removeEventListener('resize', this.handleResize); } }; </script> <style> .container { position: relative; width: 100%; height: 100vh; } .bubble { position: absolute; width: 20px; height: 20px; border-radius: 50%; background-color: #ff0000; } </style> ``` 在上述代码中,我们监听了鼠标移动事件`@mousemove`,并在事件处理函数`handleMouseMove`中获取鼠标的坐标`event.clientX`和`event.clientY`。然后将坐标信息存储在`bubbles`数组中,并通过`v-for`指令动态渲染气泡。 你可以根据自己的需求进行样式和动画的调整,例如改变气泡的大小、颜色以及添加过渡动画等。以上只是一个简单的示例,希望对你有所帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值