我是靠谱客的博主 健壮茉莉,这篇文章主要介绍关于layer.photos图片点击无法弹出的问题分析,现在分享给大家,希望可以做个参考。

摘要: layer是一款口碑很好的弹层组件,详细的介绍可以参看官网介绍,网址是http://layer.layui.com/。本期在博主进行测试的过程中,发现需要顺利返回JSON并通过前端进行获取并显示照片需要注意以下内容: 1、如果测试可以将json打印出来,需要注意的是,json中的所有斜杠必须都是向右斜的(),如果是本机测试的话,要注意的是获得的图片资源的路径格式必须为相对路径,也就是说路径钱不能像那些以c:盘符号开头的形式。


1、如果对于打印出的json无法自己判断是否正确的话,可以通过下面的这个网站来进行json校对,官网是:http://www.bejson.com/。如果校验后不报错可以基本判断输出的json格式是正确的。

2、注意在打印json的时候,如果是双引号套双引号,像这样 " "" " ;这样的话必须进行转义,写成:""""。最后记得return xxx.toString();

3、要使用layer的照片图层可以将下载的组件放到WEB-INF目录下,在引用的时候,需要使用绝对路径进行引用,例:<script type="text/javascript" src="${pageContext.request.contextPath}/layer/layer.min.js"></script>,还需引入:extend/layer.ext.js,extend/layer.ext.js的引用也可以使用:layer.use('extend/layer.ext.js');来进行。使用$.getJSON("url",value,callback)。jQuery语法适用于layer。如图:


4、最后楼主在测试的时候发现自己使用的360极速浏览器在极速模式下点击后图片无法弹出,切换到兼容模式和IE9模式都是可以的,谷歌浏览器也可以正常弹出,各项功能指标正常!

5、下面给出一个我亲自测试好用的程序。

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
package mypicture; import java.util.ArrayList; //MVC进一步分层 public class PictureService { public static String getJSON(ArrayList<Picture> list , String contextPath){//接收所有图片 StringBuilder str = new StringBuilder();//字符串连接 str.append("{"); str.append(""status": 1, "); str.append(""msg": "照片", "); str.append(""title": "用户相册", "); str.append(""id": 0, "); str.append(""start": 0, "); str.append(""data": [ "); //处理照片 for (int i = 0; i < list.size(); i++) { str.append("{"); str.append(""name": "" + list.get(i).getName() + "", "); str.append(""pid": 0, "); //注意这个中间的是左斜杠,若是写成右斜杠"\"出不来结果 str.append(""src": ""+ contextPath + "/" + list.get(i).getUrl() + "", "); str.append(""thumb": "", ");//缩略图 str.append(""area": [600,800] " ); str.append("}"); if (i < list.size()-1) { str.append(",");//不是最后一项的话,加上,号 }else { break; } } str.append("]"); str.append("}"); return str.toString(); } }
前端使用它的方法。

复制代码
1
2
3
4
5
6
7
8
9
10
$(".picture").click(function() { layer.use('extend/layer.ext.js'); $.getJSON("${pageContext.request.contextPath}/picture/getPic",{"picture.uid":this.lang}, function (data) { layer.photos({ html:"", json:data }); }); });

  注意这个中间的是左斜杠,若是写成右斜杠"\"出不来结果,json校验会出错,如图是校验结果


改成"/"后,json校验正确,图片也可以正常弹出来。


这是谷歌浏览器弹出照片的效果:





参考文献:

http://layer.layui.com/1.8.5/ext.html

https://yq.aliyun.com/articles/60890

http://www.cnblogs.com/xiadongqing/p/5252579.html


最后

以上就是健壮茉莉最近收集整理的关于关于layer.photos图片点击无法弹出的问题分析的全部内容,更多相关关于layer.photos图片点击无法弹出内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(78)

评论列表共有 0 条评论

立即
投稿
返回
顶部