使用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 一.关于滚动显屏加载 常常会有这样子的页面,内容很丰富,页面很长,图片较多.比如说光棍节很疯狂的淘宝商 ...
随机推荐
- 转 Caffe学习系列(5):其它常用层及参数
本文讲解一些其它的常用层,包括:softmax_loss层,Inner Product层,accuracy层,reshape层和dropout层及其它们的参数配置. 1.softmax-loss so ...
- 一句python,一句R︱python中的字符串操作、中文乱码
先学了R,最近刚刚上手python,所以想着将python和R结合起来互相对比来更好理解python.最好就是一句python,对应写一句R. pandas可谓如雷贯耳,数据处理神器. 以下符号: = ...
- weak alias
Weak Alias 跟 Weak Reference 完全没有任何关系,不过是我在看到 Weak Reference 的时候想到的而已. Weak Alias 是 gcc 扩展里的东西,实际上是函数 ...
- 【linux】mysql安装问题 g++: not found
问题现象: ../depcomp: line 512: exec: g++: not foundmake[2]: *** [my_new.o] Error 127make[2]: Leaving di ...
- 浅谈IT企业挑选技术人员招聘几个要点
在实际人员招聘的一些感想总结,企业需要怎么样的人才,个人总结如下: 1.技术能力不是第一位 企业在招聘一个人的时候往往看你第一点不是技术实力,而是你个人言谈行为和态度,往往一个面试你的人员他不可能在半 ...
- MessageFormat.format用法
用法一: package gacl.request.study; import java.io.IOException; import java.text.MessageFormat; import ...
- C# wav语音文件合并
开发完成语音播报产品,由于客户所使用的播放产品种类繁多,在使用HDMI接口播放音频时,由于采用的声卡不同,个别机器会出现播报声音过小,或者不播报的情况.所以采用将语音文件合并播放的方式,来解决此问题. ...
- [hihoCoder] 高斯消元·一 [TPLY]
高斯消元一 题目链接 : http://hihocoder.com/problemset/problem/1195?sid=1269842 很"好aoaoaoaoaoaoa"的高斯 ...
- 【BZOJ3926】诸神眷顾的幻想乡(后缀自动机)
[BZOJ3926]诸神眷顾的幻想乡(后缀自动机) 题面 BZOJ 题解 广义后缀自动机啦 求多个串的不同子串个数? 当然是后缀自动机,最后只要把\(longest-parent.longest\)求 ...
- 【BZOJ1008】【HNOI2008】越狱(组合数学)
题面 题目描述 监狱有连续编号为1...N的N个房间,每个房间关押一个犯人,有M种宗教,每个犯人可能信仰其中一种.如果相邻房间的犯人的宗教相同,就可能发生越狱,求有多少种状态可能发生越狱 输入输出格式 ...