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
- swift實現仿知乎搖一搖彈出框Swift
- Flutter 實現微信搖一搖的功能 Flutter 加速度感應Flutter
- Android搖一搖、螢幕方向的監聽Android
- iOS通過加速計計算搖一搖次數iOS
- 用HTML5實現手機搖一搖功能你有做過嗎?你知道它的原理嗎?HTML
- 如何用純 CSS 創作一個搖搖晃晃的 loaderCSS
- vue.js聊天例項|仿微信聊天室vue版Vue.js
- 不會吧,這也行?iOS後臺鎖屏監聽搖一搖iOS
- angular 版 IM 聊天室|仿微信 App 介面|angular 實戰開發AngularAPP
- 和 transformjs 一起搖擺ORMJS
- vue 高仿微信即時 IM 聊天|仿微信 vue+h5 版|仿微信介面VueH5
- html5仿微信朋友圈相簿圖片放大程式碼HTML
- 微信小程式-仿QQ音樂微信小程式
- 使用Html5 多媒體實現微信語音功能HTML
- webpack 搖樹處理Web
- uniapp+vue3聊天室|uni-app+vite4+uv-ui跨端仿微信app聊天語音/朋友圈APPVueViteUI跨端
- flutter 圖片檢視,仿微信Flutter
- iOS 地圖定位 地圖iOS地圖
- iOS 地圖定位 定位iOS地圖
- Unity——EasyTouch搖桿外掛使用Unity
- flutter仿微信底部圖示漸變Flutter
- 價格離譜的配件,與蘋果搖搖欲墜的奢侈品人設蘋果
- react18+arco網頁聊天室|react hooks高仿微信聊天React網頁Hook
- 基於 Flutter+Dart 聊天例項 | Flutter 仿微信介面聊天室FlutterDart
- vue+h5仿微信網頁版聊天室vueWebChat專案VueH5網頁Web
- 微信語音怎麼提取作為證據?教你微信語音提取證據方法
- Android joystick,安卓模擬搖桿Android安卓
- 天體搖擺儀的工作原理
- 基於 Taro+react 多端仿微信聊天室|taro 聊天例項分享React
- HTML5地理定位-Geolocation APIHTMLAPI
- 趣玩Python——利用python搖身一變社會人Python
- win10系統怎麼新增遊戲搖桿【圖文】Win10遊戲
- Nuxt+Vue聊天室|nuxt仿微信App介面|nuxt.js聊天例項UXVueAPPJS
- 堅持“動態清零”不動搖
- WannaMine再升級! 搖身一變成為軍火商
- 仿頭條、微信大圖預覽檢視
- 一個仿微信朋友圈的圖片檢視框架 - PhotoViewer框架View