[jQuery]地图浏览:如何实现图片的放大缩小和点击之后的位置居中

HTML代码:

 

<!DOCTYPE html>
<html>
	<head>
		<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js"></script>
        <link rel="stylesheet" href="style.css" type="text/css" />
        <script type='text/javascript' src='script.js'></script>
	</head>

	<body>
	
	<img id="back" name="back" src="back.jpg" alt = "背景"/>

	<div>
		<div id="larger" class="size_btn"><img src="+.png" alt="+"></div>
		<div id="smaller" class="size_btn"><img src="-.png" alt="+"></div>
	</div>

	</body>
</html>


JS代码:

 

 

$(document).ready(function(){

	/******** 先将图片居中并完全显示 ********/
	var proportion = 1;
	if($(window).width() / $('#back').width() < $(window).height() / $('#back').height())
		proportion = $(window).width()/$('#back').width();
	else
		proportion = $(window).height()/$('#back').height();
	
	var back_width = $('#back').width() * proportion;
	var back_height = $('#back').height() * proportion;
	var back_left = ($(window).width() - back_width)/2;
	var back_top = ($(window).height() - back_height)/2;
	$('#back').width(back_width);      
	$('#back').height(back_height);
	$("#back").offset({left:back_left,top:back_top});


	//放大缩小操作时的尺寸变化
	var sizeX = back_width/10;
	var sizeY = back_height/10;
	//放大缩小操作时的位置变化
	var moveX = sizeX/2;
	var moveY = sizeY/2;

	//点击放大按钮
	$('#larger').click(function(){
		$('#back').height("+=" + sizeX);      
		$('#back').width("+=" + sizeY);
		$("#back").offset(function(n,c){
			newPos = new Object();
			newPos.left = c.left-moveX;
			newPos.top = c.top-moveY;
			return newPos;
		});
	});

	//点击缩小按钮
	$('#smaller').click(function(){
		$('#back').height("-=" + sizeX);      
		$('#back').width("-=" + sizeY);
		$("#back").offset(function(n,c){
			newPos = new Object();
			newPos.left = c.left + moveX;
			newPos.top = c.top + moveY;
			return newPos;
		});
	});

	//点击图片
	$('#back').click(function(event){
		var x=($(window).width()/2) - event.clientX + $("#back").offset().left;
		var y=($(window).height()/2) - event.clientY + $("#back").offset().top;
		$("#back").animate({left:x,top:y});
	});
});

 

 

css代码:

 

#back{
	left: 0px;
    top:  0px;
	position:absolute;
	z-index:-1;
}

.size_btn{
	position:absolute;
	height:30px;
	width:30px;
}

#larger{
}

#smaller{
	top:60px;
}

 

最终效果:

 


点击放大按钮:


点击图片的任意位置:


 

转载于:https://www.cnblogs.com/dyllove98/p/3162875.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值