商品详情页图片的放大

 //CSS样式
 .box {
			width: 400px;
			height: 500px;
			margin-left: 50px;				
			background: url(img/1.jpg) 0 0/200% 200% no-repeat;
		}

		.largebox {
			display: flex;
			justify-content: flex-start;
		}
         .onebox{
			width: 400px;
			height: 500px;
			 position: relative;
			 background: url(img/1.jpg) 0 0/cover no-repeat;
		 }
		.smallbox {
			width: 200px;
			height: 250px;
			background-color: rgba(0, 0, 0, 0.3);
			position: absolute;
			opacity: 0;
		}
		//html布局
	<div class="largebox">
		<div class="onebox">				
			<div class="smallbox">
			</div>
		</div>
		<div class="box">

		</div>
	</div>
	<div class="back">
		
	</div>
  //  js
		function $cl(cl){
			return document.getElementsByClassName(cl)[0];   //根据classname获取节点
		}
		
		$cl("onebox").onmouseover=function(event){
			$cl("smallbox").style.opacity="1";      //鼠标移上去时小盒子出现
			 //鼠标离屏幕左边的距离减去小盒子离屏幕左边的距离
			var smallX=event.clientX-$cl("smallbox").offsetLeft;   
			 //鼠标离屏幕顶部的距离减去小盒子离屏幕顶部的距离
			var smallY=event.clientY-$cl("smallbox").offsetTop;
			$cl("onebox").onmousemove=function(event){
				var x = event.clientX - smallX; 
				var y = event.clientY - smallY;
				 if(x < 0){
				       x = 0;
				}else if(x > $cl("onebox").offsetWidth - $cl("smallbox").offsetWidth){
				    x =  $cl("onebox").offsetWidth - $cl("smallbox").offsetWidth;
				}
				if(y < 0){
				   y = 0;
				}else if(y > $cl("onebox").offsetHeight - $cl("smallbox").offsetHeight){
				    y =  $cl("onebox").offsetHeight - $cl("smallbox").offsetHeight;
				}          	
					$cl("smallbox").style.left = x + "px";          //小盒子随着鼠标的移动而移动
					$cl("smallbox").style.top = y + "px";
				$cl("box").style.backgroundPositionX=-x +'px'; //背景图片的位置
				$cl("box").style.backgroundPositionY=-y +'px';
			}
		}
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值