javascript 实例:跟随鼠标移动(大图展示)

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>跟随鼠标移动(大图展示)</title>
<style type="text/css">
html,body{overflow:hidden;}
body,div,ul,li{margin:0;padding:0;}
#box ul{width:768px;height:172px;list-style-type:none;margin:10px auto;}
#box li{float:left;width:170px;height:170px;cursor:pointer;display:inline;border:1px solid #ddd;margin:0 10px;}
#box li.active{border:1px solid #a10000;}
#box li img{width:170px;height:170px;vertical-align:top;}
#big{position:absolute;width:400px;height:400px;border:2px solid #ddd;display:none;}
#big div{position:absolute;top:0;left:0;width:400px;height:400px;opacity:0.5;filter:alpha(opacity=50);background:#fff url(loading.gif) 50% 50% no-repeat;}
</style>

</head>
<body>
<div id="box">
    <ul>
    	<li><img src="shirt_1.jpg" /></li>
        <li><img src="shirt_2.jpg" /></li>
        <li><img src="shirt_3.jpg" /></li>
        <li><img src="shirt_4.jpg" /></li>
    </ul>
</div>
<div id="big"><div></div></div>


<script type="text/javascript">
	var aLi = document.getElementsByTagName("li");
	var oBig = document.getElementById("big");
	var oLoading = oBig.getElementsByTagName("div")[0];
	var i = 0;
	for(i=0;i<aLi.length;i++) {
	    aLi[i].index = i;
		//鼠标移入
		aLi[i].onmouseover = function() {
		    var img = new Image();  //new img对象
			img.src =  aLi[this.index].getElementsByTagName('img')[0].src.replace('.jpg','_big.jpg');  //给对象添加图片
			oBig.appendChild(img);    //插入到盒子里面
			this.className = "active";
			oBig.style.display = oLoading.style.display = "block";  //默认图片隐藏
			//判断大图是否加载成功
		   img.complete  ? oLoading.style.display = "none" : (img.onload = function() {oLoading.style.display = "none";});
		}
		//鼠标移动
		aLi[i].onmousemove = function(evt) {
		    	var evt = evt || window.event;
				//获取页面总宽度 - 当前鼠标位置 剩下的宽度
				var iWidth = document.documentElement.offsetWidth - evt.clientX;	
				oBig.style.top = evt.clientY + 20 + "px";
			   //设置big的left值, 如果右侧显示区域不够, 大图将在鼠标左侧显示.
			   //图片的左边距离:   如果鼠标右边的宽度小于 图片宽度+10的话  那么就用当前的坐标-去图片宽度 -10  否则 就当前的坐标 +10
			  oBig.style.left = (iWidth < oBig.offsetWidth + 10 ? evt.clientX - oBig.offsetWidth - 10 : evt.clientX + 10) + "px";
			
		}
		
		//鼠标离开
		aLi[i].onmouseout = function() {
		   this.className = "";
		   oBig.style.display = "none";
		   //移除大图
		   oBig.removeChild(oBig.lastChild);
		}
		
		
		
	}









</script>

</body>
</html>

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
JQ是指jQuery,是一个流行的JavaScript库,用于简化网页开发中的DOM操作。要实现鼠标移入图片放大,并且跟随鼠标移动,可以通过以下步骤: 1. 在HTML中添加一个图片元素,并为其添加一个唯一的ID,以便后续操作。 2. 使用jQuery的.hover()方法来监测鼠标移入和移出图片的事件。 3. 在鼠标移入事件的处理函数中,使用jQuery的.animate()方法来逐渐增大图片的尺寸。 4. 在鼠标移动事件的处理函数中,获取鼠标的当前位置,然后使用jQuery的.css()方法来动态调整图片的位置。 具体步骤可如下所示: HTML: ``` <img id="myImage" src="图片的URL" alt="图片"> ``` JavaScript: ``` $(document).ready(function(){ $("#myImage").hover( function(){ // 鼠标移入事件处理函数 $(this).animate({ width: '+=50px', // 图片宽度增加50像素 height: '+=50px' // 图片高度增加50像素 }, 200); // 动画持续时间为200毫秒 }, function(){ // 鼠标移出事件处理函数 $(this).animate({ width: '-=50px', // 图片宽度减少50像素 height: '-=50px' // 图片高度减少50像素 }, 200); // 动画持续时间为200毫秒 } ); $("#myImage").mousemove(function(event){ // 鼠标移动事件处理函数 var imagePosition = $(this).offset(); // 获取图片在页面中的位置 var mouseX = event.pageX - imagePosition.left; // 获取鼠标相对于图片的水平位置 var mouseY = event.pageY - imagePosition.top; // 获取鼠标相对于图片的垂直位置 $(this).css({left: mouseX, top: mouseY}); // 动态设置图片的位置 }); }); ``` 以上代码将在页面加载完成后绑定鼠标移入、移出以及移动事件,当鼠标移入图片时,图片逐渐放大,当鼠标移出图片时,图片逐渐恢复原始尺寸;同时,当鼠标图片移动时,图片跟随鼠标的位置移动。注意,需要将代码中的"图片的URL"替换为实际图片的URL。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值