JQuery,图片的放大和缩小

JQuery支持图片放大、缩小:

 一、JQuery支持图片放大、缩小:

 今天在"懒人之家"看到JQuery支持图片放大和缩小这个效果,顿时觉得非常神奇,就学习一下的.

 二、下载源码,开始学习:

JQuery,图片的放大和缩小
 

 三、开始编码:

 1.是对基本格式书写:

<html>
<head>
<title>JQuery,图片放大缩小</title>

</head>


<body>

</body>
</html>

 2.在body里面填充内容及样式:

<body>
<div id="pageContent">
  <div id="imgContainer">
     <img id="imageFullScreen" src="images/zoomFullScreen.jpg"/>
  </div>

  <div id="positionButtonDiv">
    <p>
	  <span>
	  <img id="zoomInButton" class="zoomButton" src="images/zoomIn.png" title="zoom in" alt="zoom in"/>
	  <img id="zoomOutButton" class="zoomButton" src="images/zoomOut.png" title="zoom out" alt="zoom out"/>
	  </span>
	</p>
    
	<p>
	<span class="positionButtonSpan">
	 <map name="positionMap" class="positionMapClass">
	   <area id="topPositionMap" shape="rect" coords="20,0,40,20" title="move up" alt="move up"/>
	   <area id="leftPositionMap" shape="rect" coords="0,20,20,40" title="move left" alt="move left"/>
	   <area id="rightPositionMap" shape="rect" coords="40,20,60,40" title="move right" alt="move right"/>
	   <area id="bottomPositionMap" shape="rect" coords="20,40,40,60" title="move bottom" alt="move bottom"/>
	 </map>
	 <img src="images/position.png" usemap="#positionMap"/>
	</span>
	</p>
  
  </div>
</div>
</body>

 样式:

<style>
*{
margin:0;
padding:0;
}
body{
background:#333;
}
#pageContent{
width:980px;
height:500px;
overflow:hidden;
position:relative;
margin:50px auto;
}
#imgContainer{
width:980px;
height:500px;
}
#positionButtonDiv{
background:rgba(58,56,63,0.8);
border:solid 1px #100000;
color:#fff;
padding:8px;
text-align:left;
position:absolute;
right:35px;
top:35px;
}
#positionButtonDiv.positionButtonSpan img{
float:right;
border:0;
}
.positionMapClass area{
cursor:pointer;
}
.zoomButton{
border:0;
cursor:pointer;
}
.zoomableContainer{
background-image: url("images/transparent.png");
}
</style>

 3.书写JQuery:

<script src="http://libs.baidu.com/jquery/2.1.1/jquery.min.js"></script>
<script src="js/e-smart-zoom-jquery.min.js"></script>
<script>
$(document).ready(function(){
$('#imageFullScreen').smartZoom({'containerClass':'zoomableContainer'});
$('#topPositionMap,#leftPositionMap,#rightPositionMap,#bottomPositionMap').bind("click",moveButtonClickHandler);
$('#zoomInButton,#zoomOutButton').bind("click",zoomButtonClickHandler);

function zoomButtonClickHandler(e){
var scaleToAdd=0.8;
if(e.target.id == 'zoomOutButton')
 scaleToAdd=-scaleToAdd;
$('#imageFullScreen').smartZoom('zoom',scaleToAdd);
}

function moveButtonClickHandler(e){
var pixIsToMoveOnX=0;
var pixIsToMoveOnY=0;

switch(e.target.id){
case "leftPositionMap":
pixIsToMoveOnX=50;
break;
case "rightPositionMap":
pixIsToMoveOnX=-50;
break;
case "topPositionMap":
pixIsToMoveOnY=50;
break;
case "bottomPositionMap":
pixIsToMoveOnY=-50;
break;
}
$('#imageFullScreen').smartZoom('pan',pixIsToMoveOnX,pixIsToMoveOnY);
}
});


</script>

 四、运行效果:

 JQuery,图片的放大和缩小
 

 五、解释:

 body里面的:

 <span> :在CSS定义中属于一个行内元素,在行内定义一个区域,

也就是一行内可以被 <span> 划分成好几个区域,从而实现某种

特定效果。 <span> 本身没有任何属性.

 <map>:定义一个客户端图像映射。图像映射(image-map)指带

有可点击区域的一幅图像

 script里面的:

 smartZoom()和bind()应该是e-smart-zoom-jquery.min.js里面

的方法。然后下面这两句没看懂:

1.$('#imageFullScreen').smartZoom({'containerClass':

'zoomableContainer'});

2.$('#imageFullScreen').smartZoom('pan',pixIsToMoveOnX,

pixIsToMoveOnY);

 还有:

 刚开始就是没引入<script src="js/e-smart-zoom-jquery.min.js"></script>这一句,反复修改了好多次,最后突然明白了,那个实现放

大和缩小的方法在e-smart-zoom-jquery.min.js这个库中,不引入是

实现不了的。

 六、完整代码:

 见附件

相关推荐