jQuery 实战———放大镜

基于jQuery

实现一个放大镜功能

在这里插入图片描述


HTML代码

<body>
	<div id="small">
		<img src="http://cms-bucket.nosdn.127.net/2018/11/28/5915fc732a2747ecb5132a9376b65c2c.jpg">
		<div id="mark"></div>
	</div>
	<div id="big">
		<img src="http://cms-bucket.nosdn.127.net/2018/11/28/5915fc732a2747ecb5132a9376b65c2c.jpg">
	</div>
</body>·

CSS代码

	<style>
		#small{
			width: 240px;
			height: 350px;
			border:1px solid rgb(0,0,0);
			position: absolute;
			left: 100px;
		}
		#small img{
			width: 100%;
			height: 100%;
		}
		#big img{
			width: 480px;
			height: 700px;
			position:absolute;
		}
		#big{
			display: none;
			overflow: hidden;
			width: 200px;
			height: 200px;
			border:1px solid rgb(0,0,0);
			position: absolute;
			left: 400px;	
		}
		#mark{
			display: none;
			width: 100px;
			height: 100px;
			background-color: rgb(255,255,255);
			opacity: 0.6;
			filter: alpha(opacity=50);
			position: absolute;
			left: 0px;
			top: 0px;
		}
	</style>

filter: alpha(opacity=50)设置透明度

这个filter过滤器是IE专用的,建议不要用,如果想做透明可以用JS来解决。

filter:alpha(opacity=50)是IE专用的属性,因为它不支持opacity属性,为了保证浏览器的兼容性,建议使用时俩个都写。


JS代码

	<script >
		$(function(){
			$("#small").mouseenter(function(){
				$("#mark,#big").show()
			}).mouseleave(function(){
				$("#mark,#big").hide()
			}).mousemove(function(ev){
				//ev是鼠标指向坐标
				var l=ev.pageX - $(this).offset().left-50;
				var t=ev.pageY - $(this).offset().top-50;
				//设置限制
				if(l<=0){
					l=0;
				}
				if(l>=140){
					l=140;
				}
				if (t<=0) {
					t=0;
				}
				if (t>=250) {
					t=250;
				}

				//改变遮罩层的位置
				$("#mark").css({
					left:l,
					top:t
				})

				//同时改变放大图片的位置,两倍于遮罩层位置,注意反方向
				$("#big img").css({
					left:-2*l,
					top:-2*t
				})

			})
		})
	</script>

(1) if 判断语句是设置限制,不让遮挡罩溢出照片。
(2) offset() 方法返回或设置匹配元素相对于文档的偏移
(位置)。具体用法参考文档: offset().

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值