WebView点击图片看大图效果
在webViewDelegate里面添加如下代码:
- 12345678910111213141516171819202122232425
- (void)webViewDidFinishLoad:(UIWebView *)aWebView {//调整字号NSString *str = @"document.getElementsByTagName('body')[0].style.webkitTextSizeAdjust= '95%'";[webView stringByEvaluatingJavaScriptFromString:str];//js方法遍历图片添加点击事件 返回图片个数staticNSString *constjsGetImages =@"function getImages(){\var objs = document.getElementsByTagName(\"img\");\for(var i=0;i<objs.length;i++){\objs[i].onclick=function(){\document.location=\"myweb:imageClick:\"+this.src;\};\};\returnobjs.length;\};";[webView stringByEvaluatingJavaScriptFromString:jsGetImages];//注入js方法//注入自定义的js方法后别忘了调用 否则不会生效(不调用也一样生效了,,,不明白)NSString *resurlt = [webView stringByEvaluatingJavaScriptFromString:@"getImages()"];//调用js方法// NSLog(@"---调用js方法--%@ %s jsMehtods_result = %@",self.class,__func__,resurlt);} - 1234567891011121314151617181920212223
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType{//将url转换为stringNSString *requestString = [[request URL] absoluteString];// NSLog(@"requestString is %@",requestString);//hasPrefix 判断创建的字符串内容是否以pic:字符开始if([requestString hasPrefix:@"myweb:imageClick:"]) {NSString *imageUrl = [requestString substringFromIndex:@"myweb:imageClick:".length];// NSLog(@"image url------%@", imageUrl);if(bgView) {//设置不隐藏,还原放大缩小,显示图片bgView.hidden = NO;imgView.frame = CGRectMake(10, 10, SCREEN_WIDTH-40, 220);[imgView setImageWithURL:[NSURL URLWithString:imageUrl] placeholderImage:LOAD_IMAGE(@"house_moren")];}else[self showBigImage:imageUrl];//创建视图并显示图片returnNO;}returnYES;} 创建放大图片的视图
- 123456789101112131415161718192021222324252627282930313233343536373839404142
#pragma mark 显示大图片-(void)showBigImage:(NSString *)imageUrl{//创建灰色透明背景,使其背后内容不可操作bgView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT)];[bgView setBackgroundColor:[UIColor colorWithRed:0.3green:0.3blue:0.3alpha:0.7]];[self.view addSubview:bgView];//创建边框视图UIView *borderView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH-20, 240)];//将图层的边框设置为圆脚borderView.layer.cornerRadius = 8;borderView.layer.masksToBounds = YES;//给图层添加一个有色边框borderView.layer.borderWidth = 8;borderView.layer.borderColor = [[UIColor colorWithRed:0.9green:0.9blue:0.9alpha:0.7] CGColor];[borderView setCenter:bgView.center];[bgView addSubview:borderView];//创建关闭按钮UIButton *closeBtn = [UIButton buttonWithType:UIButtonTypeCustom];// [closeBtn setImage:[UIImage imageNamed:@"close.png"] forState:UIControlStateNormal];closeBtn.backgroundColor = [UIColor redColor];[closeBtn addTarget:self action:@selector(removeBigImage) forControlEvents:UIControlEventTouchUpInside];[closeBtn setFrame:CGRectMake(borderView.frame.origin.x+borderView.frame.size.width-20, borderView.frame.origin.y-6, 26, 27)];[bgView addSubview:closeBtn];//创建显示图像视图imgView = [[UIImageView alloc] initWithFrame:CGRectMake(10, 10, CGRectGetWidth(borderView.frame)-20, CGRectGetHeight(borderView.frame)-20)];imgView.userInteractionEnabled = YES;[imgView setImageWithURL:[NSURL URLWithString:imageUrl] placeholderImage:LOAD_IMAGE(@"house_moren")];[borderView addSubview:imgView];//添加捏合手势[imgView addGestureRecognizer:[[UIPinchGestureRecognizer alloc]initWithTarget:self action:@selector(handlePinch:)]];} 实现关闭和捏合手势的方法
- 123456789101112
//关闭按钮-(void)removeBigImage{bgView.hidden = YES;}- (void) handlePinch:(UIPinchGestureRecognizer*) recognizer{//缩放:设置缩放比例recognizer.view.transform = CGAffineTransformScale(recognizer.view.transform, recognizer.scale, recognizer.scale);recognizer.scale = 1;}
效果图如下

<div>
<img width="320.000000" height="300.000000" src="http://114.215.171.217:80/image/f?fileName=null_1436866458461.jpg" onclick="imageClick()">
<script type="text/javascript">
function imageClick(){document.location = "ClickImage:"}
</script>
<br />
</div>
附上我的html代码
http://my.oschina.net/linxiaoxi1993/blog/465905?p={{page}}
WebView点击图片看大图效果的更多相关文章
- ios webview点击图片看大图效果及相应手势操作
下面参考资料有比较详细的解释,在之前的就项目中也有比较好的效果(支持更多手势),可以参考下 参考资料
- ionic中点击图片看大图的实现
在页面上显示了几张图片后,因为是手机端,图片会有点小的感觉,就想着怎么样才能让用户点击小图片看到大图呢,项目中ionic结合angularjs实现了这个功能 1.首先是三张小图上应添加一个函数,当点击 ...
- 点击图片查看大图(纯js)
$(function(){ $(".pimg").click(function(){ var _this = $(this);//将当前的pimg元素作为_this传入函数 img ...
- js+jquery+html实现在三种不通的情况下,点击图片放大的效果
js+jquery+html实现在三种不通的情况下,点击图片放大的效果. 三种情况分别是:图片的父元素宽高固定; 图片的宽高固定; 图片的父元素宽固定,高度不固定 第一种情况:图片的父元素宽高固定 ...
- 基于jquery鼠标点击图片翻开切换效果
基于jquery鼠标点击图片翻开切换效果是一款基于jQuery+CSS3实现的点击图片切换特效.效果图如下: 在线预览 源码下载 实现的代码. html代码: <div class=&quo ...
- jQuery插件——imgbox(点击图片查看大图)
需要的资源: 需要对应的js代码和css样式,大家可以通过www.htmldrive.net平台下载,也可以在我文章的底部下载.对应的资源如下,将资源引入页面(别忘了JQuery): 注意:jQuer ...
- [原创]WKWebview点击图片查看大图
大家都知道,WKWebview是没有查看大图的属性或者方法的,所以只能通过js与之交互来实现这一功能,原理:通过js获取页面的图片,把它存放到数组,给图片添加点击事件,通过index显示大图就行了 其 ...
- WKWebview点击图片查看大图
大家都知道,WKWebview是没有查看大图的属性或者方法的,所以只能通过js与之交互来实现这一功能,原理:通过js获取页面的图片,把它存放到数组,给图片添加点击事件,通过index显示大图就行了 其 ...
- JQuery - 点击图片显示大图
效果: 目录结构: 代码: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="De ...
随机推荐
- Android Camera(一)
最近老大交给了一个任务,说是要在本地视频端很够调节摄像头焦距. 碰到了一些问题: 1.手机支不支持摄像头变焦 2.系统自带摄像软件可以变焦,但是自己编写的程序不支持变焦, 这个问题网上也有很多童鞋碰到 ...
- java 方法的重载的语法规则
class People { float hello(int a,int b) { return a+b; } float hello(long a,int b) { return a-b; } do ...
- Landsat TM DN值转为表观反射率
日地距离计算参见<中华人民共和国气象行业标准太阳能资源评估方法>
- Image File Execution Options(转)
今天公司的一台计算机无法正常工作送来维修,经简单判断是感染了很多病毒,即使在安全模式下也无法清除:于是将硬盘摘下挂到另外一台机器上,用卡巴斯基对病毒进行了查杀,再次启动计算机后发现很多系统维护程序以及 ...
- 一个好用简单的布局空间EasyUI
之前项目中都是前端来新写的页面,对于很多后台管理系统来说,新写页面其实比较麻烦. 最近看到一款还是不错的开源页面框架EasyUi http://www.jeasyui.com/index.php 这是 ...
- Centos下安装jdk详解
环境: 系统: [root@Wulaoer ~]# cat /proc/version Linux version 2.6.32-431.el6.x86_64 (mockbuild@c6b8.bsys ...
- elasticsearch 配置说明
elasticsearch的config文件夹里面有两个配置文件:elasticsearch.yml和logging.yml,第一个是es的基本 配置文件,第二个是日志配置文件,es也是使用log4j ...
- C#入门经典(3-窗体应用程序-第二章要点)
新建一个窗体用用程序,拖一个按钮,加事件和Text属性.打开Form1Designer.cs.
- 页面新宠图片格式WebP
WebP格式,谷歌(google)开发的一种旨在加快图片加载速度的图片格式.图片压缩体积大约只有JPEG的2/3,并能节省大量的服务器带宽资源和数据空间.Facebook Ebay等知名网站已经开始测 ...
- POJ1611 The Suspects 并查集模板题
题目大意:中文题不多说了 题目思路:将每一个可能患病的人纳入同一个集合,然后遍历查找每个点,如果改点点的根节点和0号学生的根节点相同,则该点可能是病人. 模板题并没有思路上的困难,只不过在遍历时需要额 ...