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>
四、运行效果:
五、解释:
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这个库中,不引入是
实现不了的。
六、完整代码:
见附件