`

JQ 放大镜

 
阅读更多

zoom.css

*{
	padding: 0;
	margin: 0;
}
li{
	list-style-type: none;
}
.zoom{
	margin: 50px;
	position: relative;
}
.zoomMiddle{
	border: 1px solid #ccc;
	width: 300px;
	height: 300px;
	margin-bottom: 3px;
	position: relative;
}
.zoomMiddle img{
	width: 300px;
	height: 300px;
}
.mask{
	width: 100px;
	height: 100px;
	background: #abcdef;
	opacity:0.4;
	position: absolute;
	left: 0;
	top: 0;
	display: none;
}
.zoomSmall{
	-overflow: hidden;
	width: 302px;
	height: 54px;
}
.zoomSmall span{
	float: left;
	height: 52px;
	line-height: 52px;
	width: 10px;
	text-align: center;
	border: 1px solid #ccc;
	cursor: pointer;
}
.zoomSmall span.disable{
	cursor: default;
	background: #ccc;
}
.wrapSmallImg{
	float: left;
	height: 54px;
	width: 232px;
	/*background: #f00;*/
	position: relative;
	overflow: hidden;
}
.wrapSmallImg ul{
	width: 348px;
	/*background: #f00;*/
	position: absolute;
	left: 0;
	top: 0;
}
.wrapSmallImg ul li{
	float: left;
	width: 50px;
	height: 50px;
	border: 2px solid #ccc;
	margin: 0 2px;
	_display: inline;
	cursor: pointer;
}
.wrapSmallImg ul li.current{
	border: 2px solid orange;
}
.wrapSmallImg ul li img{
	width: 50px;
	height: 50px;
}
.zoomLarge{
	width: 350px;
	height: 350px;
	border: 1px solid #ccc;
	position: absolute;
	top: 0;
	left: 320px;
	overflow: hidden;
	display:none;
}
.zoomLarge img{
	width: 600px;
	height:600px;
	position: absolute;
	left: 0;
	top: 0;
}

 

zoom.html

<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>放大镜</title>
<link rel="stylesheet" href="zoom.css">
</head>
<body>
<input type="text" name="" id="">
<div class="zoom">
	<div class="zoomMiddle">
		<img src="1.jpg" alt="">
		<div class="mask"></div>
	</div>
	<div class="zoomSmall">
		<span class="left disable">&lt;</span>
		<div class="wrapSmallImg">
			<ul>
				<li class="current"><img src="1.jpg" alt=""></li>
				<li><img src="2.jpg" alt=""></li>
				<li><img src="3.jpg" alt=""></li>
				<li><img src="4.jpg" alt=""></li>
				<li><img src="5.jpg" alt=""></li>
				<li><img src="6.jpg" alt=""></li>
			</ul>
		</div>
		<span class="right">&gt;</span>
	</div>
	<div class="zoomLarge"><img src="1.jpg" alt=""></div>
</div>
<script src="jquery.js"></script>
<script src="zoom.js"></script>
</body>
</html>

 

zoom.js

$(function(){
	var smallImgLi = $('.wrapSmallImg ul li');
	var smallImgLiLength = smallImgLi.size();
	var smallImgLiWidth = smallImgLi.outerWidth(true);
	var smallImgUl = $('.wrapSmallImg ul');
	var leftBtn = $('span.left');
	var rightBtn = $('span.right');
	var now = 0;
	var zoomMiddleDiv = $('.zoomMiddle');

	smallImgLi.mouseover(function(){
		$(this).addClass('current').siblings().removeClass('current');
		var thisSrc = $(this).children('img').attr('src');
		$('.zoomMiddle img').attr('src',thisSrc);
		$('.zoomLarge img').attr('src',thisSrc);
	});

	rightBtn.click(function(){
		//当now=2的时候,我们不希望再让他滚动了
		leftBtn.removeClass('disable');
		if(now>=smallImgLiLength-4){
			$(this).addClass('disable');
			now = smallImgLiLength-4;

		}else{
			now++;
			smallImgUl.animate({'left':-now*smallImgLiWidth},300);
		}
	});

	leftBtn.click(function(){
		if(now==0){
			now=0;
		}else{
			now--;
			smallImgUl.animate({'left':'+='+smallImgLiWidth},300);
		}		
	});

	zoomMiddleDiv.mousemove(function(e){
		$('.mask').show();
		$('.zoomLarge').show();
		zoomMiddleDivOffset = zoomMiddleDiv.offset();
		var x = e.pageX - zoomMiddleDivOffset.left - $('.mask').width()/2;
		var y = e.pageY - zoomMiddleDivOffset.top - $('.mask').height()/2;

		if(x<=0){
			x=0;
		}else if(x>=zoomMiddleDiv.width()-$('.mask').width()){
			x = zoomMiddleDiv.width()-$('.mask').width();
		}

		if(y<=0){
			y=0;
		}else if(y>=zoomMiddleDiv.height()-$('.mask').height()){
			y = zoomMiddleDiv.height()-$('.mask').height();
		}

		var percentageX = x/(zoomMiddleDiv.width()-$('.mask').width());
		var percentageY = y/(zoomMiddleDiv.height()-$('.mask').height());

		$('.zoomLarge img').css({
			left:-percentageX*(600-$('.zoomLarge').width()),
			top:-percentageY*(600-$('.zoomLarge').height())
		});


		$('input').val(percentageX+','+percentageY)

		$('.mask').css({
			'left':x+'px',
			'top':y+'px'
		});
	});

	zoomMiddleDiv.mouseout(function(){
		$('.mask').hide();
		$('.zoomLarge').hide();
	});
});

 

效果图:


  • 大小: 306.5 KB
分享到:
评论

相关推荐

    jq放大镜二次修改后插件

    超好用的jq放大镜插件,比修改前更加方便使用,修复定位bug,不在担心标签嵌套问题。调用代码也是超级简洁~

    jQuery放大镜效果

    在网页设计中,jQuery放大镜效果是一种常见的交互功能,它为用户提供了一种便捷的方式来查看产品的细节,特别是对于电商网站上的商品图片。这个效果允许用户在鼠标悬停在小图上时,能看到一个放大的图像视图,从而...

    jQuery实战放大镜效果实现演示_代码

    在本文中,我们将深入探讨如何使用jQuery库来创建一个实用的“放大镜”效果,这是一种常见于电商网站上的交互功能,允许用户查看商品图片的细节。这个效果通过模拟一个浮动的放大窗口,使得用户可以对图片的特定区域...

    Jquery 放大镜插件

    **jQuery放大镜插件**是一种常用的前端交互技术,主要用于电商网站或者其他需要展示商品细节的网页中,用户可以通过鼠标悬停或点击实现对图片的局部放大,以查看更清晰的细节。这种技术极大地提升了用户体验,使得...

    jquery放大镜效果

    在网页设计中,为了提升用户体验,常常会使用到放大镜效果。这主要应用于产品展示,尤其是电商网站的商品图片,让用户可以更清晰地查看商品细节。本文将深入探讨jQuery实现放大镜效果的相关知识点。 首先,jQuery是...

    jQuery放大镜jQuery放大镜

    jQuery放大镜插件是一种常用的网页交互效果,常用于电商网站的产品展示,允许用户在鼠标悬停或点击时,查看图片的细节部分,提高用户体验。它通过动态调整图片大小和位置,模拟出放大镜的效果,使得用户能清晰地看到...

    购物图片放大镜jq例子.rar

    这个“购物图片放大镜jq例子.rar”压缩包文件包含了一个使用jQuery实现的购物图片放大镜功能的示例。 jQuery是一个流行的JavaScript库,它简化了DOM操作、事件处理、动画效果和Ajax交互等任务。在这个案例中,...

    炫酷的jQuery可拖拽放大镜动画

    之前我们分享过几款非常不错的jQuery/CSS3放大镜动画,比如这款jQuery球状放大镜特效...这次我们要分享的也是一款炫酷的jQuery可拖拽放大镜动画,拖拽放大镜在页面上移动,则可以让隐藏在黑夜中的东西显示在放大镜上。

    jq封装放大镜.rar

    在这个“jq封装放大镜.rar”压缩包中,包含了一个利用jQuery实现的图片放大镜效果。这个功能在电子商务网站上非常常见,允许用户在查看商品时获取更清晰的细节。 首先,我们要理解什么是“封装”。在编程中,封装是...

    简单的jquery放大镜特效.zip

    "简单的jquery放大镜特效"是一个基于jQuery实现的网页元素放大功能,常见于电商网站的产品展示,让用户能更清晰地查看产品细节。这个功能通过鼠标悬停在图片上时,出现一个放大的浮动视窗来实现。 首先,我们要理解...

    JQuery 类似淘宝商品放大镜效果

    在网页设计中,为了提升用户体验,特别是在展示商品细节时,"淘宝商品放大镜效果"是一种常见且实用的技术。这个效果允许用户在鼠标悬停在图片上时,能看到一个放大的部分,以便更清晰地查看商品的细节。在这个实例中...

    jq仿京东商品详细页图片放大镜

    【标题】"jq仿京东商品详细页图片放大镜"是一个基于jQuery实现的网页功能,它旨在为用户提供一种类似于京东商品详情页的图片查看体验。在电商网站中,商品图片的展示至关重要,放大镜效果能让用户更清晰地查看商品...

    仿淘宝京东放大镜

    在网页设计中,仿淘宝京东放大镜是一种常见的交互效果,它允许用户在鼠标悬停在商品图片上时,能看到一个放大的图像视图,从而提供更清晰的产品细节查看体验。这个效果主要涉及到HTML、jQuery和CSS这三个技术领域的...

    jq仿京东商品详细页图片放大镜.zip

    这个"jq仿京东商品详细页图片放大镜.zip"压缩包文件包含了一个利用jQuery库实现的类似京东商城商品详情页的图片放大镜特效。接下来,我们将深入探讨这个知识点。 首先,jQuery是一个广泛使用的JavaScript库,它简化...

    jQuery 图片放大镜实例

    **jQuery 图片放大镜实例详解** 在Web开发中,为用户提供高质量的图片预览体验是提升网站用户体验的重要一环。jQuery图片放大镜插件能够帮助我们实现这一目标,让用户在鼠标悬停或点击图片时看到放大的细节部分,...

    jquery手机屏幕放大镜效果

    在移动设备上,为了提供更好的用户体验,经常需要实现一种被称为“放大镜效果”的功能,特别是在电商网站中,用户可以通过此效果查看商品细节。本篇主要介绍如何使用jQuery库来实现手机屏幕上的放大镜效果。 首先,...

    jquery实现的图片滑动并带有放大镜效果代码

    这个项目“jquery实现的图片滑动并带有放大镜效果代码”显然是利用 jQuery 实现了一个功能丰富的图片展示功能,包括图片轮播和放大镜效果。下面我们将详细探讨这些知识点。 首先,图片轮播(Slider)是一种常见的...

Global site tag (gtag.js) - Google Analytics