使用jquery-panzoom来实现图片或元素的放大缩小
2017-11-21 12:05
691 查看
1. html
<div class="wrapper"> <a class="btn btn-md" ui-turn-off="AllIssueImgView" style="position: absolute;top: 10px;left: 0px;font-size: x-large;color: white;z-index: 1100"><i class="fa fa-angle-left"></i></a> <div class="modal-body"> <div class="panzoomContainer"> <div class="parent" style="position: fixed;left: 0px;top:0px;bottom:0px" ui-swipe-right="swipePreview('prev')" ui-swipe-left="swipePreview('next')"> <div class="panzoom"> <img class="issueImg" ng-src="{{activeImg.base64Str == null ? '/issues/bigImage/'+activeImg : activeImg.base64Str}}" style="width: 500px;height: 600px;"> </div> </div> </div> </div> </div>
2. js
<script> var $panzoomContainer = $('.panzoomContainer').first(); var parentElement = $('.parent'); var panzoomElement = $panzoomContainer.find('.panzoom'); // 初始化panzoom (function() { panzoomElement.panzoom({ minScale: 0.7, maxScale: 2, startTransform: 'scale(0.7)', duration: 100, contain: 'automatic', }); })(); // 处理panzoomstart事件 (function() { panzoomElement.on('panzoomstart', function(e, panzoom, event, touches) { if (panzoom.scale == 0.7) { panzoomElement.panzoom("option", "disableYAxis", true); } else { panzoomElement.panzoom("option", "disableYAxis", false); } }); })(); // 处理panzoomend事件 (function() { panzoomElement.on('panzoomend', function(e, panzoom, matrix, changed) { if (changed) { // 父元素绝对坐标 var parentLeftTop = parseInt(parentElement.offset().left); var parentRightTop = parseInt(parentElement.offset().left + parentElement.width()); // alert(parentLeftTop); // alert(parentRightTop); // panzoom绝对坐标 var panzoomLeftTop = parseInt(panzoomElement.offset().left); var panzoomRightTop = parseInt(panzoomElement.offset().left + panzoomElement.width()); // alert(panzoomLeftTop); // alert(panzoomRightTop); // alert(panzoom.scale); if (Math.abs(parentLeftTop - panzoomLeftTop) <= 10) { if (panzoom.scale == 0.7) { angular.element('#issueImagesView').scope().swipePreview('next', true) } else { angular.element('#issueImagesView').scope().swipePreview('prev', true); } } if (Math.abs(parentRightTop - panzoomRightTop) <= 10) { if (panzoom.scale == 0.7) { angular.element('#issueImagesView').scope().swipePreview('prev', true); } else { angular.element('#issueImagesView').scope().swipePreview('next', true); } } } else { // 缩放时重置 if (panzoom.scale != 0.7) { setTimeout(function() { panzoomElement.panzoom("reset"); }, 200); } } }); })(); </script>
相关文章推荐
- 利用jQuery插件imgAreaSelect实现图片上传裁剪(放大缩小)
- jQuery实现滚动鼠标放大缩小图片的方法(附demo源码下载)
- jquery实现页面图片等比例放大缩小功能
- jquery实现图片缩小放大的切换
- jQuery实现滚动鼠标放大缩小图片的方法(附demo源码下载)
- jQuery照片伸缩效果,不是单纯的图片放大缩小,不影响其他元素的布局
- Asp.net使用JQuery实现放大图片效果
- jquery实现图片放大,缩小,翻转,旋转小实例
- jquery实现图片放大,缩小,翻转,旋转小实例
- 基于jquery实现一张图片点击鼠标放大再点缩小
- [jQuery]地图浏览:如何实现图片的放大缩小和点击之后的位置居中
- 使用ViewPager和Photoview实现图片左右滑动和放大缩小
- [jQuery]地图浏览:如何实现图片的放大缩小和点击之后的位置居中
- 使用jQuery实现图片内容的放大(提示)
- 基于jquery实现一张图片点击鼠标放大再点缩小
- jQuery实现图片放大,缩小,翻转,旋转小实例
- jquery imgareaselect 使用利用js与程序结合实现图片剪切
- C#中Bitmap类实现对图像操作的一些方法(Asp.net(C#)-放大缩小图片尺寸)