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 ...
随机推荐
- Swift -> Optional嵌套 探讨
准备运动:Optional 的介绍 王巍的<Swifter>一书中,介绍了一个有用的命令:在 LLDB 中输入 fr v -R foo,可以查看foo 这个变量的内存构成.我们稍后的分析将 ...
- mysql问题总结,远程登录
http://blog.sina.com.cn/s/blog_4550f3ca0101axzd.html 更改mysql数据库的数据库名 http://tech.sina.com.cn/s/s/200 ...
- windows程序设计(二)
MFC架构组成 1.CWinApp的派生类 2.必须在全局区定义一个派生类的对象 3.在CWinApp派生类内必须要有InitInstance虚函数的重写函数 在MFC软件工程以App类中的InitI ...
- FOJ 2203 单纵大法好
二分答案+验证 #include<cstdio> #include<cstring> #include<cmath> #include<algorithm&g ...
- java项目(java project)如何导入jar包的解决方案列表
右键项目-properties-java build path(左侧菜单)-选择libraries 有两种方式,导入jar包实际上就是建立一种链接,并不是copy式的导入 一.导入外部包,add ex ...
- PAT1014
Suppose a bank has N windows open for service. 一个银行有N个服务的窗口 There is a yellow line in front of the w ...
- BootStrap详解之(二)
六.内容 Bootstrap 将全局 font-size 设置为 14px,line-height 设置为 1.428 中心内容 .lead 将字体大小.加粗.行高修改 (无卵高深用) 标记 mark ...
- HBase伪分布安装
1把hbase-0.94.2-security.tar.gz复制到/usr/local 2 解压缩.重命名.设置环境变量 cd /usr/local tar -zxvf hbase--security ...
- SoftReference 介绍
1 Java中的SoftReference 2 即对象的软引用.如果一个对象具有软引用,内存空间足够,垃 圾回收器就不会回收它:如果内存空间不足了,就会回收这些对象的内存.只要垃圾回收器没有回收它,该 ...
- Diamond Collector
Diamond Collector 题目描述 Bessie the cow, always a fan of shiny objects, has taken up a hobby of mining ...