html5版聊天室|仿微信語音|搖一搖|地圖定位
相信大家都有使用過微信,微信這款產品確實設計的不錯,簡約不簡單。尤其裡面的搖一搖、語音功能更是吸引了大批使用者,顛覆式的功能及設計,讓微信穩穩坐上了社交寶座。
之前由於專案需求有開發過一款簡單的聊天專案,不過功能及UI比較簡單,最近又重新在原先的基礎上進行了一次大的重構,開發了這款仿微信介面聊天IM系統。
採用html5+css3+Zepto+swiper+wcPop+flex等技術混合開發,實現了傳送訊息、表情(動圖),圖片、視訊預覽,新增好友/群聊,右鍵長按選單。另外新增了語音模組、地圖定位模組。整體功能介面效果比較接近微信聊天。
專案中使用到的彈窗wcPop.js,是自己開發的JQ彈出框元件,多種api呼叫方式
// 聊天記錄頁面(長按操作)
$("#J__recordList").on("contextmenu", "li", function(e){
e.preventDefault();
var _points = [e.pageX, e.pageY];
wcPop({
skin: 'contextmenu',
follow: _points,
opacity: 0,
btns: [
{text: '標為未讀'}, { text: '置頂' }, {text: '刪除該聊天'}
]
});
});
點選ripple波紋效果
// ripple波紋效果
wcRipple({ elem: '.effect__ripple-fff', opacity: .15, speed: .5, bgColor: "#fff" });
wcRipple({ elem: '.effect__ripple', opacity: .15, speed: .5, bgColor: "#000" });
回滾聊天資訊至聊天底部
// ...滾動聊天區底部
function wchat_ToBottom() {
$(".mescroll").animate({ scrollTop: $("#J__chatMsgList").height() }, 0);
}
// ...處理編輯器資訊
var $editor = $(".J__wdtEditor"), _editor = $editor[0];
function surrounds() {
setTimeout(function () { //chrome
var sel = window.getSelection();
var anchorNode = sel.anchorNode;
if (!anchorNode) return;
if (sel.anchorNode === _editor ||
(sel.anchorNode.nodeType === 3 && sel.anchorNode.parentNode === _editor)) {
var range = sel.getRangeAt(0);
var p = document.createElement("p");
range.surroundContents(p);
range.selectNodeContents(p);
range.insertNode(document.createElement("br")); //chrome
sel.collapse(p, 0);
(function clearBr() {
var elems = [].slice.call(_editor.children);
for (var i = 0, len = elems.length; i < len; i++) {
var el = elems[i];
if (el.tagName.toLowerCase() == "br") {
_editor.removeChild(el);
}
}
elems.length = 0;
})();
}
}, 10);
}
// 傳送資訊處理
function isEmpty() {
var html = $editor.html();
html = html.replace(/<br[\s\/]{0,2}>/ig, "\r\n");
html = html.replace(/<[^img].*?>/ig, "");
html = html.replace(/ /ig, "");
return html.replace(/\r\n|\n|\r/, "").replace(/(?:^[ \t\n\r]+)|(?:[ \t\n\r]+$)/g, "") == "";
}
// >>> 【地圖位置核心功能模組】------------------------------------------
// ...選擇位置
var poiPopIdx;
$(".J__chooseWz").on("click", function () {
poiPopIdx = wcPop({
id: 'wcim_local_fullscreen',
title: '位置',
skin: 'fullscreen',
content: $("#J__popupTmpl-location").html(),
position: 'right',
xclose: true,
style: 'background: #f3f3f3;',
// 載入地圖
show: function () {
$(".J__sendLatlng").show();
$(".localMap").html('<iframe id="mapPage" width="100%" height="100%" frameborder=0 src="https://apis.map.qq.com/tools/locpicker?search=1&type=1&key=OB4BZ-D4W3U-B7VVO-4PJWW-6TKDJ-WPB77&referer=myapp"></iframe>');
}
});
});
// ...獲取位置座標點
var pointArr;
window.addEventListener('message', function (event) {
// 接收位置資訊,使用者選擇確認位置點後選點元件會觸發該事件,回傳使用者的位置資訊
var loc = event.data;
// 防止其他應用也會向該頁面post資訊,需判斷module是否為'locationPicker'
if (loc && loc.module == 'locationPicker') {
console.log('location', loc);
pointArr = loc;
}
}, false);
相關文章
- HTML5 語音聊天 IM|仿微信語音介面|搖一搖效果HTML
- iOS-OC-仿微信搖一搖iOS
- 微信IOS中搖一搖無法播放聲音iOS
- Android利用感測器實現-仿微信搖一搖Android
- swift實現仿知乎搖一搖彈出框Swift
- iOS微信朋友圈與搖一搖iOS
- 微信搖一搖的一個有趣應用
- 實現微信搖一搖功能簡單介紹
- Flutter 實現微信搖一搖的功能 Flutter 加速度感應Flutter
- Android搖一搖、螢幕方向的監聽Android
- iOS通過加速計計算搖一搖次數iOS
- 如何用純 CSS 創作一個搖搖晃晃的 loaderCSS
- 搖桿程式
- 不會吧,這也行?iOS後臺鎖屏監聽搖一搖iOS
- HTML5 3D衣服搖擺動畫特效HTML3D動畫特效
- 韓國巨型機器人曝光,走一步地動山搖機器人
- 和 transformjs 一起搖擺ORMJS
- 和transformjs一起搖擺ORMJS
- vue.js聊天例項|仿微信聊天室vue版Vue.js
- webpack 搖樹處理Web
- 盤點叫車App市場:嘀嘀、搖搖、易叫車列前三APP
- angular 版 IM 聊天室|仿微信 App 介面|angular 實戰開發AngularAPP
- iOS 地圖定位 地圖iOS地圖
- 價格離譜的配件,與蘋果搖搖欲墜的奢侈品人設蘋果
- iOS 地圖定位 定位iOS地圖
- 地圖定位地圖
- IT的消費化:尾巴搖狗
- IT族經常有意識地搖頭晃腦可防治職業病
- 利用HTML5定位功能,實現在百度地圖上定位HTML地圖
- win10系統怎麼新增遊戲搖桿【圖文】Win10遊戲
- 利用HTML5定位功能,實現在百度地圖上定位薦HTML地圖
- 天體搖擺儀的工作原理
- Unity——EasyTouch搖桿外掛使用Unity
- Android joystick,安卓模擬搖桿Android安卓
- 【騰訊地圖】騰訊地圖定位解析地圖
- 微信小程式-仿QQ音樂微信小程式
- html5仿微信朋友圈相簿圖片放大程式碼HTML
- vue 高仿微信即時 IM 聊天|仿微信 vue+h5 版|仿微信介面VueH5