2021-01-07【Web作业开发记录】悬浮窗功能

本文档介绍了一种在鼠标悬停商品窗口时显示详细信息的JavaScript实现方法。通过创建一个绝对定位的悬浮窗div,并在鼠标悬停时动态获取内容和位置,实现商品信息的淡入显示。在鼠标移开时,悬浮窗会淡出消失。代码包括HTML、CSS和JS部分,展示了如何结合使用这些技术来创建交互式的商品提示功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.需求分析

当鼠标放在一个窗口上面的时候,出现一个悬浮窗,提示商品的具体信息。

2.设计

一开始的时候一脸懵逼,之后借鉴了steam的做法。在需要显示悬浮窗范围的div下,新建一个div儿子节点,即为悬浮窗的div。这个div的position设为absolute,初始display设为none,通过js动态获得位置和内容后,设置top,left属性,写入内容后,再将display设为block(下面直接采用了jquery的fadeIn函数,原理功能是一样的,只不过有个淡入的效果)。

3.代码

html部分

<div id="floatBox" class="MyContainer TooltipBox">
		<div class="Name MyContainer" id="name"></div>
		<div class="Description MyContainer" id="description"></div>
		<div class="Attribute MyContainer" id="attribute"></div>
</div>

css 部分

#floatBox{
	display: none;
	height: 300px;
	width: 200px;
	border: solid black 1px;
	background-color: #dfdcdc;
	border-radius: 10px;
	position: absolute;
}

#floatBox div{
	margin-top: 15px;
	text-align: center;
}
#floatBox div.Attribute{
	font-weight: 10;
}

#floatBox img{
	display: block;
	margin: 10px auto;
}

js部分

$('td img')
	.on('mouseover', (e) => {
		let itemId = $(e.target).parent().parent().attr('id');
		let ajaxData = 'json=' + 
		encodeURI(JSON.stringify({itemId: itemId}));
		$.ajax({
			url: 'GetItem',
			method: 'GET',
			contentType: 'JSON',
			data: ajaxData,
			success: (item, status) => {
				/*找到偏移距离*/
				let x = $(e.target).offset().left + 480;
				let y = $(e.target).offset().top;
				/*设置内容*/
				$('#attribute').text(item.attribute1,
					item.attribute2, item.attribute3
					, item.attribute4, item.attribute5);
				$('#name').text(item.name);
				$('#description').html(item.product.description);
				$('#floatBox')
					.attr('style', 'top:' + y + 'px; left:' + x + 'px;')
					/*淡入*/
					.fadeIn();
			}
		});

	})
	/*鼠标移开的时候淡出就行了,不需要清空内容什么的*/
	.on('mouseout', (e) => {
		$('#floatBox').fadeOut();
})

4.效果图

效果图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值