h5 仿微信语音聊天 weChatIM 项目|仿微信定位|支付键盘

2018-12-23 13:16:18 +08:00
 xiaoyan2017

使用 html5+css3 开发的高仿微信语音聊天系统|仿微信地图定位|仿微信语音效果|仿微信支付键盘|仿微信摇一摇功能,实现了消息记录长按菜单、发送消息 表情,图片、视频预览,红包|地图|摇一摇等互动聊天功能。

https://blog.csdn.net/yanxinyun1990/article/details/85221037

// ...获取语音时长
getVoiceTime();
function getVoiceTime(){
	$("#J__chatMsgList li .audio").each(function () {
		var that = $(this), audio = that.find("audio")[0], duration;
		audio.load();
		audio.oncanplay = function(){
			duration = Math.ceil(audio.duration);
			if (duration == 'Infinity') {
				getVoiceTime();
			} else {
				that.find(".time").text(duration + `''`);
				that.attr("data-time", duration);
				// 语音宽度%
				var percent = (duration / 60).toFixed(2) * 100 + 20 + '%';
				that.css("width", percent);
			}
		}
	});
}
// >>>  [按住说话核心模块] ------------------------------------------
// ...按住说话
var _voiceObj = $(".J__wdtVoice"), eY1 = 0, eY2 = 0, eY3 = 0, isDrag = true;
var voiceIdx;
var difftime = 0;
function initVoice(){
	_voiceObj.on("touchstart", function(e){
		difftime = new Date();
		if(!isDrag) return;
		isDrag = false;
		eY1 = e.originalEvent.targetTouches[0].pageY;
		_voiceObj.text("松开 结束");

		// 弹窗提示
		voiceIdx = wcPop({
			id: 'wdtVoice',
			skin: 'toast',
			content: '<div style="margin-top:-10px;"><i class="iconfont icon-yuyin" style="font-size:65px;"></i><div style="line-height:32px;">手指上滑,取消发送</div></div>',
			style: 'border-radius:6px;height: 160px; width:160px;',
			time: 10,
			opacity: 0,
		});

		_voiceObj.on("touchmove", function (e) {
			e.preventDefault();

			eY3 = e.originalEvent.targetTouches[0].pageY;
			if(eY1 - eY3 < 150){
				_voiceObj.text("松开 结束");
			}else{
				_voiceObj.text("松开手指,取消发送");

				// 弹窗提示
				$("#wdtVoice .popui__panel-cnt").html('<div style="margin-top:-10px;"><i class="iconfont icon-quxiao" style="font-size:65px;"></i><div style="background:#c53838; border-radius:3px; line-height:32px;">松开手指,取消发送</div></div>');
			}
		});
	});
	_voiceObj.on("touchend", function (e) {
		e.preventDefault();
		eY2 = e.originalEvent.changedTouches[0].pageY;
		_voiceObj.text("按住 说话");

		// 录音时间太短提示
		if(new Date() - difftime < 1000){
			// 弹窗提示
			$("#wdtVoice .popui__panel-cnt").html('<div style="margin-top:-10px;"><i class="iconfont icon-gantan" style="font-size:65px;"></i><div style="line-height:32px;">录音时间太短!</div></div>');
		} else{
			if (eY1 - eY2 < 150) {
				// 发送成功
				submitData();
				console.log("测试数据");
			} else {
				// 取消发送
				console.log("cancel");
			}
		}
		// 关闭弹窗
		setTimeout(function(){
			wcPop.close(voiceIdx);
		}, 500);
		isDrag = true;
	});
}

欢迎大家一起交流、学习 Q:282310962 wx:xy190310

3251 次点击
所在节点    推广
2 条回复
o00o
2018-12-23 14:10:14 +08:00
我如果问开源吗,会不会被打
GDC
2018-12-23 14:18:41 +08:00
刚仿完 人家微信就改版了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/520172

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX