使用jquery-panzoom来实现图片或元素的放大缩小
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来实现图片或元素的放大缩小的更多相关文章
- html 图片在一个div中放大缩小效果
<html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> &l ...
- JS微信网页使用图片预览(放大缩小)
前言 需求在微信网页中客户点击图片可进行预览放大缩小功能,网上找了各种js方式实现, 唯一的麻烦就是不兼容或者和项目框架不兼容 次函数只只用于部分客户端,否则会出现 WeixinJSBridge is ...
- PhotoView实现图片随手势的放大缩小的效果
项目需求:在listView的条目中如果有图片,点击条目,实现图片的放大,并且图片可以根据手势来控制图片放大缩小的比例.类似于微信朋友圈中查看好友发布的照片所实现的效果. 思路是这样的:当点击条目的时 ...
- Ionic实战三:Ionic 图片预览可放大缩小左右滑动demo-iClub图片预览
这个demo的主要功能有两个,一个是首页的导航向上拉动会浮动在最上面的效果,另一个就是我们平时非常实用的功能,就是图片预览功能 点击可以放大图片,并且可以左右滑动,还可以双击放大缩小图片以及双手指控制 ...
- Winform 图片鼠标滚动查看(放大,缩小,旋转,拖动查看)[日常随笔]
方法千千万,我只是其中一笔[通过控制PictureBox来控制图片,图片完全施展在控件中]...几久不做,还真有点陌生! 窗体构造中添加鼠标滚动: /// <summary> /// 窗体 ...
- Android中图片的处理(放大缩小,去色,转换格式,增加水印等)(转)
原文地址:http://menxu.lofter.com/post/164b9d_3ebf79 package com.teamkn.base.utils; import java.io.ByteAr ...
- iOS图片预览、放大缩小
思路 图片预览,优先考虑基础控件UIImageView.UIButton 图片预览中可能需设置不同的mode,优先考虑UIImageView typedef NS_ENUM(NSInteger, UI ...
- jQuery页面滚动图片等元素动态加载实现
一.关于滚动显屏加载 常常会有这样子的页面,内容很丰富,页面很长,图片较多.比如说光棍节很疯狂的淘宝商城页面. 或者是前段时间写血本买了个高档耳机的京东商城页面,或者是新浪微博之类. 这些页面图片数量 ...
- [转]jQuery页面滚动图片等元素动态加载实现
本文转自:http://www.zhangxinxu.com/wordpress/?p=1259 一.关于滚动显屏加载 常常会有这样子的页面,内容很丰富,页面很长,图片较多.比如说光棍节很疯狂的淘宝商 ...
随机推荐
- 和scikit-learn打个招呼
1.先装对应的库.不能偷懒,都得装,不然飞不起来. pip install scikit-learn pip install numpy pip install scipy 2.测试如下代码. imp ...
- javascript垃圾收集与性能问题
一.垃圾收集 JavaScript具有自动垃圾收集功能,也就是说,执行环境会负责管理代码所占用的内存. 不同于C和类C语言,这些语言都需要手动监听内存的使用情况.JavaScript实现了自动管理内存 ...
- linux下insmod lsmod rmmod
insmod(install module) 功能说明:载入模块 install loadable kernel module 语法:insmod [-fkmpsvxX][-o <模块名称> ...
- java 后台封装json数据学习总结(一)
一.数据封装 1. List集合转换成json代码 List list = new ArrayList(); list.add( "first" ); list.add( &quo ...
- 芝麻HTTP:在阿里云上测试Gerapy教程
1.配置环境 阿里云的版本是2.7.5,所以用pyenv新安装了一个3.6.4的环境,安装后使用pyenv global 3.6.4即可使用3.6.4的环境,我个人比较喜欢这样,切换自如,互不影响. ...
- css 超出规定行数自动隐藏
单行overflow: hidden;text-overflow: ellipsis;white-space: nowrap; 多行(兼容各个浏览器)//通过覆盖最后几个字的形式p{positio ...
- html基础加强2
1.表单元素 表单元素一定要提交在form标签里面 2.id和name 所有元素都有ID,但只有表单元素才有name ID不可以重复,name可以重复 name属性的目的时可以将数据提交到服务器.id ...
- 异常-----Can't convert the date to string, because it is not known which parts of the date variable are in use. Use ?date, ?time or ?datetime built-in, or ?string.\u003Cformat> or ?string(format) built-
1.错误描述 五月 27, 2014 12:07:05 上午 freemarker.log.JDK14LoggerFactory$JDK14Logger error 严重: Template proc ...
- httppost的用法(NameValuePair(简单名称值对节点类型)核心对象)
一,案例一 定义了一个list,该list的数据类型是NameValuePair(简单名称值对节点类型),这个代码多处用于Java像url发送Post请求.在发送post请求时用该list来存放参数. ...
- php+sqlServer 2008R2 PHPstudy下数据库环境搭建
简要:小主从事PHP二年,期间一直做后台;在过程中遇到一个奇葩的组合就是PHP+sqlServer应用场景,希望能够跟各位PHP大神分享和学习探索,如果有不对或者好的建议告知下:*~*! 一.下载sq ...