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-panzoom来实现图片或元素的放大缩小的更多相关文章

  1. html 图片在一个div中放大缩小效果

    <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> &l ...

  2. JS微信网页使用图片预览(放大缩小)

    前言 需求在微信网页中客户点击图片可进行预览放大缩小功能,网上找了各种js方式实现, 唯一的麻烦就是不兼容或者和项目框架不兼容 次函数只只用于部分客户端,否则会出现 WeixinJSBridge is ...

  3. PhotoView实现图片随手势的放大缩小的效果

    项目需求:在listView的条目中如果有图片,点击条目,实现图片的放大,并且图片可以根据手势来控制图片放大缩小的比例.类似于微信朋友圈中查看好友发布的照片所实现的效果. 思路是这样的:当点击条目的时 ...

  4. Ionic实战三:Ionic 图片预览可放大缩小左右滑动demo-iClub图片预览

    这个demo的主要功能有两个,一个是首页的导航向上拉动会浮动在最上面的效果,另一个就是我们平时非常实用的功能,就是图片预览功能 点击可以放大图片,并且可以左右滑动,还可以双击放大缩小图片以及双手指控制 ...

  5. Winform 图片鼠标滚动查看(放大,缩小,旋转,拖动查看)[日常随笔]

    方法千千万,我只是其中一笔[通过控制PictureBox来控制图片,图片完全施展在控件中]...几久不做,还真有点陌生! 窗体构造中添加鼠标滚动: /// <summary> /// 窗体 ...

  6. Android中图片的处理(放大缩小,去色,转换格式,增加水印等)(转)

    原文地址:http://menxu.lofter.com/post/164b9d_3ebf79 package com.teamkn.base.utils; import java.io.ByteAr ...

  7. iOS图片预览、放大缩小

    思路 图片预览,优先考虑基础控件UIImageView.UIButton 图片预览中可能需设置不同的mode,优先考虑UIImageView typedef NS_ENUM(NSInteger, UI ...

  8. jQuery页面滚动图片等元素动态加载实现

    一.关于滚动显屏加载 常常会有这样子的页面,内容很丰富,页面很长,图片较多.比如说光棍节很疯狂的淘宝商城页面. 或者是前段时间写血本买了个高档耳机的京东商城页面,或者是新浪微博之类. 这些页面图片数量 ...

  9. [转]jQuery页面滚动图片等元素动态加载实现

    本文转自:http://www.zhangxinxu.com/wordpress/?p=1259 一.关于滚动显屏加载 常常会有这样子的页面,内容很丰富,页面很长,图片较多.比如说光棍节很疯狂的淘宝商 ...

随机推荐

  1. Android虚拟机安装

    由于虫师那边的源估计到期了,我又找了一波. 打开SDK Manager.exe, 就在安卓目录下. 点击Tools--Options进入配置页面 mirrors.neusoft.edu.cn 配置如下 ...

  2. 裁剪Ubuntu内核和模块管理2

    准备工作 通常要运行的第一个命令是: #cd /usr/src/linux;make mrproper 该命令确保源代码目录下没有不正确的.o文件以及文件的互相依赖.由于我们使用刚下载的完整的源程序包 ...

  3. 项目总结2——mybatis配置的理解

    之前的项目基本上都是用mongodb,以至于mysql相关的知识异常薄弱,这次连续一个半月的加班,总算是实际用到了mysql,也使自己对mysql了解的更多,对mybatis了解的更多,这里就说一说经 ...

  4. Java中的StringBuffer

    Java中的StringBuffer /** * */ package com.you.model; /** * @author YouHaidong * */ public class StrFoo ...

  5. Direcshow中视频捕捉和参数设置报告

    Direcshow中视频捕捉和参数设置报告 1.      关于视频捕捉(About Video Capture in Dshow) 1视频捕捉Graph的构建 一个能够捕捉音频或者视频的graph图 ...

  6. javaWeb之eclipse创建Servlet模板快捷键设置

    没有模板创建Servlet 出现的是除了doPOST 和doGet方法 还有许多方法和一些注释,页面不够清晰 创建模板的步骤是: 1.点击window下的preference 选项 2在 表单框里填写 ...

  7. 微信小程序之上传下载交互api

    wx.request(OBJECT) OBJECT参数说明: 参数名 类型 必填 说明 url String 是 开发者服务器接口地址 data Object.String 否 请求的参数 heade ...

  8. sql一张表中两个字段指向同一个外键

    在项目开发中遇到这么一个例子,首先产品表 tb_product ----------------------------- id    name 1     手机 2    电脑 3     笔记本 ...

  9. Error Curves HDU - 3714

    Josephina is a clever girl and addicted to Machine Learning recently. She pays much attention to a m ...

  10. 使用PHPword中文乱码并且下载的方法

    如果你的编码格式是utf-8的话就用这个 1.找到 Section.php 的 addText 函数 $givenText = utf8_encode($text); 改成 $givenText = ...