非微信图文网页,微信浏览器点击图片弹出自带图片浏览

2019-03-02 00:11|来源: 网路

微信图文网页点击插入的图片,会在微信的图片浏览器上浏览图片可以放大缩小,但是自己做的网页没有这个功能,下面我就来介绍一下这个功能,做出一个完美一点的demo。如果不想看过程直接到最后看demo...

教程需要:脚本编辑器(记事本或者是notepad++、DW都可以)、jquery.js、微信浏览器作为测试

如下图效果

我们用到的是微信内置JsAPI的一个,这个函数在微信的开发者平台文档里我没有找到,是在网上搜到的。

WeixinJSBridge.invoke('imagePreview',{
           'current' : curSrc,
           'urls' : srcList
});

'urls': srcList 是一串json格式文本。形似这样子:

["图片地址","图片地址"]
                    //输出效果如下
["http:\/\/3.whatsthewater.sinaapp.com\/images\/pic1.png","http:\/\/3.whatsthewater.sinaapp.com\/images\/pic2.png"]

就是说 所有的要在本页面显示的图片的src都在这个json里面。文章最后我讲一下如何把这些地址放在json里面。

那么'current' : curSrc是什么呢,就是当前要浏览的这个图片是这个json格式里面的值。

我们如何获取呢?

$('img').click(function(){
           var index = $(this).attr("data-index"); //这里是当用户点击图片时候,点击的第几个图片
                });

然后我们继续 当鼠标点击时候,我获取了当前点击的图片,紧接着我们需要触发我们打开微信图片浏览器,也就是使用到了我们这个函数。

$('img').click(function(){
           var index = $(this).attr("data-index"); //这里是当用户点击图片时候,点击的第几个图片
           imagePreview(srcList[index],srcList); //这个时候,srcList还没有,不过我等会讲
                });


srcList有了 我们要讲第一个参数 'urls' : srcList 的获取了。

这是一个json格式数据,首先我的思路是把所有的图片地址放在数组里然后再用函数转换成json格式。

先说一下如何放在数组里:

                var aa=[]; 
		var i=0;
		var src=[];
		var json=null;
		aa=$('img');    //把所有img节点放在数组
		for (i=0;i<aa.length;i++){
			src[i]=aa[i].src;  //获取所有img的src放在数组src中。
		}
		var srcList =arrayToJson(src);   //这个就是我的转换json的函数,并且赋值给srcList了

接着我说一下数组转换json函数

function arrayToJson(o) { 
	var r = []; 
	if (typeof o == "string") return "\"" + o.replace(/([\'\"\\])/g, "\\$1").replace(/(\n)/g, "\\n").replace(/(\r)/g, "\\r").replace(/(\t)/g, "\\t") + "\""; 
	if (typeof o == "object") { 
	if (!o.sort) { 
	for (var i in o) 
	r.push(i + ":" + arrayToJson(o[i])); 
	if (!!document.all && !/^\n?function\s*toString\(\)\s*\{\n?\s*\[native code\]\n?\s*\}\n?\s*$/.test(o.toString)) { 
	r.push("toString:" + o.toString.toString()); 
	} 
	r = "{" + r.join() + "}"; 
	} else { 
	for (var i = 0; i < o.length; i++) { 
	r.push(arrayToJson(o[i])); 
	} 
	r = "[" + r.join() + "]"; 
	} 
	return r; 
	} 
	return o.toString(); 
}


把上面的代码综合一下是这样的

<script>	
//下面这个函数用来转换数组到json格式
function arrayToJson(o) { 
	var r = []; 
	if (typeof o == "string") return "\"" + o.replace(/([\'\"\\])/g, "\\$1").replace(/(\n)/g, "\\n").replace(/(\r)/g, "\\r").replace(/(\t)/g, "\\t") + "\""; 
	if (typeof o == "object") { 
	if (!o.sort) { 
	for (var i in o) 
	r.push(i + ":" + arrayToJson(o[i])); 
	if (!!document.all && !/^\n?function\s*toString\(\)\s*\{\n?\s*\[native code\]\n?\s*\}\n?\s*$/.test(o.toString)) { 
	r.push("toString:" + o.toString.toString()); 
	} 
	r = "{" + r.join() + "}"; 
	} else { 
	for (var i = 0; i < o.length; i++) { 
	r.push(arrayToJson(o[i])); 
	} 
	r = "[" + r.join() + "]"; 
	} 
	return r; 
	} 
	return o.toString(); 
}
//这个是调用微信图片浏览器的函数 
function imagePreview(curSrc,srcList) {
				//这个检测是否参数为空
                if(!curSrc || !srcList || srcList.length == 0) {
                    return;
                }
				//这个使用了微信浏览器提供的JsAPI 调用微信图片浏览器
                WeixinJSBridge.invoke('imagePreview', { 
                    'current' : curSrc,
                    'urls' : srcList
                });
};

(function($){
		//下面是获取当前页面所有的img的src 转成数组 并且 转换成json格式
		var aa=[];
		var i=0;
		var src=[];
		var json=null;
		aa=$('img');
		for (i=0;i<aa.length;i++){
			src[i]=aa[i].src;    //把所有的src存到数组里
		}
		var srcList=arrayToJson(src); //转换成json并赋值给srcList
		//下面是点击图片的时候获取当前第几个图片并且启用咱们做的调用微信图片浏览器的函数
        $('img').click(function(){
                	var index = $('img').index(this);
                    imagePreview(srcList[index],srcList);
                });
				
})(jQuery);
</script>


文章未经本人允许不得转载,谢谢合作。


转自:http://my.oschina.net/edire/blog/295112

相关问答

更多
  • 先登录手机上的微信,然后使用手机上的微信扫一扫,扫过以后电脑就直接登录,十分蛋疼的功能和设计。。。
  • 发图片可以!在聊天界面点右下角的“+”,选择图片即可! 但无法发图文
  • 微信2下载[2024-02-01]

    您好,打开手机浏览器或者是应用商城,然后输入微信进行搜索,在搜索结果中下载安装这款软件即可
  • selenium吧。做网页的自动化测试还算是首选。 具体的你百度 selenium Python 自动化,例子一堆一堆的。
  • 主要是在交货前充分做好程序测试,是否能满足你的需求。 另外,售后服务一定要有保证,如果有更新协议的话最好确定更新时间和周期; 基本上就这样,最好选择一些信誉比较好的公司吧。企业开发微信小程序要明确自己的需求。 把需求提交给产品进行设计。 设计和开发做好小程序后提交审核最终上线。
  • 微信有运行H5的环境,浏览器不具备小程序的运行环境。两者实现方式不一样,无法进行对比,h5是通用性的,基本任何app都具备浏览的本事,微信小程序是微信技术团队研发的,其他app没有运行环境
  • 开通微信商城的流程如下: 一、注册微信公众平台的服务号; 我们必须先注册微信公众平台的服务号,因为只有服务号才可能开通支付功能,实现线上的交易。至于如何申请微信公平台请参照我们的《微信公众号的申请和完善》。 二、微信认证服务号(申请公函); 进入微信公众平台之后点击右侧中设置的微信认证,如何搭建自己的微商城(上) 点击之后就会出现微信认证的界面 如何搭建自己的微商城(上) 微信认证 根据提示进行一步一步的认证,我们的公众号认证可以算是基本成型,不过认证的最后是要给腾迅缴纳300元认证费用的。认证通过之后,服 ...
  • 小程序是一种不需要下载安装即可使用的应用,它实现了应用“触手可及”的梦想,用户扫一扫或者搜一下即可打开应用。也体现了“用完即走”的理念,用户不用关心是否安装太多应用的问题。应用将无处不在,随时可用,但又无需安装卸载。对于开发者而言,小程序开发门槛相对较低,难度不及APP,能够满足简单的基础应用,适合生活服务类线下商铺以及非刚需低频应用的转换。小程序能够实现消息通知、线下扫码、公众号关联等七大功能。其中,通过公众号关联,用户可以实现公众号与小程序之间相互跳转。由于小程序不存在入口。
  • 小程序本身是微信提供的一个平台,使用和注册都是不需要钱的(企业需要300认证费)。注册下来的名字也永久是你的,就是小程序你要用起来里面的功能是需要开发的,要么自己开发要么找第三方合作。