HTML5高仿微信聊天、微信聊天表情|對話框|編輯器功能
發(fā)布時間:2018-04-23 08:58:56 作者:佚名
我要評論
之前做過一版h5微信聊天移動端的項目,今天小編抽空給大家分享HTML5高仿微信聊天、微信聊天表情|對話框|編輯器功能,需要的朋友參考下吧
之前做過一版h5微信聊天移動端,這段時間閑來無事就整理了下之前項目,又重新在原先的那版基礎(chǔ)上升級了下,如是就有了現(xiàn)在的h5仿微信聊天高仿版,新增了微聊、通訊錄、探索、我四個模塊 左右觸摸滑屏切換,聊天頁面優(yōu)化了多圖預(yù)覽、視頻播放,長按菜單UI,聊天底部編輯器重新優(yōu)化整理(新增多表情),彈窗則用到了自己開發(fā)的wcPop.js,具體看項目效果圖吧!
html代碼片段:
<!-- //微聊底部功能面板 -->
<div class="wc__footTool-panel">
<!-- 輸入框模塊 -->
<div class="wc__editor-panel wc__borT flexbox">
<div class="wrap-editor flex1"><div class="editor J__wcEditor" contenteditable="true"></div></div>
<i class="btn btn-emotion"></i>
<i class="btn btn-choose"></i>
<button class="btn-submit J__wchatSubmit">發(fā)送</button>
</div>
<!-- 表情、選擇模塊 -->
<div class="wc__choose-panel wc__borT" style="display: none;">
<!-- 表情區(qū)域 -->
<div class="wrap-emotion" style="display: none;">
<div class="emotion__cells flexbox flex__direction-column">
<div class="emotion__cells-swiper flex1" id="J__swiperEmotion">
<div class="swiper-container">
<div class="swiper-wrapper"></div>
<div class="pagination-emotion"></div>
</div>
</div>
<div class="emotion__cells-footer" id="J__emotionFootTab">
<ul class="clearfix">
<li class="swiperTmpl cur" tmpl="swiper__tmpl-emotion01"><img src="img/emotion/face01/face-lbl.png" alt=""></li>
<li class="swiperTmpl" tmpl="swiper__tmpl-emotion02"><img src="img/emotion/face02/face-lbl.gif" alt=""></li>
<li class="swiperTmpl" tmpl="swiper__tmpl-emotion03"><img src="img/emotion/face03/face-lbl.gif" alt=""></li>
<li class="swiperTmpl" tmpl="swiper__tmpl-emotion04"><img src="img/emotion/face04/face-lbl.gif" alt=""></li>
<li class="swiperTmpl" tmpl="swiper__tmpl-emotion05"><img src="img/emotion/face05/face-lbl.gif" alt=""></li>
<li class="swiperTmpl" tmpl="swiper__tmpl-emotion06"><img src="img/emotion/face06/face-lbl.gif" alt=""></li>
<li class="swiperTmplSet"><img src="img/wchat/icon__emotion-set.png" alt=""></li>
</ul>
</div>
</div>
</div>
<!-- 選擇區(qū)域 -->
<div class="wrap-choose" style="display: none;">
<div class="choose__cells">
<ul class="clearfix">
<li><a class="J__wchatZp" href="javascript:;"><span class="img"><img src="img/wchat/icon__choose-zp.png" /><input type="file" accept="image/*" /></span><em>照片</em></a></li>
<li><a class="J__wchatSp" href="javascript:;"><span class="img"><img src="img/wchat/icon__choose-sp.png" /><input type="file" accept="video/*" /></span><em>視頻</em></a></li>
<li><a class="J__wchatHb" href="javascript:;"><span class="img"><img src="img/wchat/icon__choose-hb.png" /></span><em>紅包</em></a></li>
<li><a class="J__wchatSc" href="javascript:;"><span class="img"><img src="img/wchat/icon__choose-sc.png" /></span><em>我的收藏</em></a></li>
<li><a class="J__wchatWj" href="javascript:;"><span class="img"><img src="img/wchat/icon__choose-wj.png" /></span><em>文件</em></a></li>
</ul>
</div>
</div>
</div>
</div>
<div class="wc__choosePanel-tmpl">
<!-- //紅包模板.begin -->
<div id="J__popupTmpl-Hongbao" style="display:none;">
<div class="wc__popupTmpl tmpl-hongbao">
<i class="wc-xclose"></i>
<ul class="clearfix">
<li class="item flexbox">
<label class="txt">總金額</label><input class="ipt-txt flex1" type="tel" name="hbAmount" placeholder="0.00" /><em class="unit">元</em>
</li>
<li class="item flexbox">
<label class="txt">紅包個數(shù)</label><input class="ipt-txt flex1" type="tel" name="hbNum" placeholder="填寫個數(shù)" /><em class="unit">個</em>
</li>
<li class="tips">在線人數(shù)共<em class="memNum">186</em>人</li>
<li class="item item-area">
<textarea class="describe" name="content" placeholder="恭喜發(fā)財,大吉大利"></textarea>
</li>
<li class="amountTotal">¥<em class="num">0.00</em></li>
</ul>
</div>
</div>
<!-- //紅包模板.end -->
</div>
Js代碼片段:
// ...長按彈出菜單
$("#J__chatMsgList").on("longTap", "li .msg", function(e){
var that = $(this), menuTpl, menuNode = $("<div class='wc__chatTapMenu animated anim-fadeIn'></div>");
that.addClass("taped");
that.parents("li").siblings().find(".msg").removeClass("taped");
var isRevoke = that.parents("li").hasClass("me");
var _revoke = isRevoke ? "<a href='#'><i class='ico i4'></i>撤回</a>" : "";
if(that.hasClass("picture")){
console.log("圖片長按");
menuTpl = "<div class='menu menu-picture'><a href='#'><i class='ico i1'></i>復(fù)制</a><a href='#'><i class='ico i2'></i>收藏</a><a href='#'><i class='ico i3'></i>另存為</a>"+ _revoke +"<a href='#'><i class='ico i5'></i>刪除</a></div>";
}else if(that.hasClass("video")){
console.log("視頻長按");
menuTpl = "<div class='menu menu-video'><a href='#'><i class='ico i3'></i>另存為</a>" + _revoke +"<a href='#'><i class='ico i5'></i>刪除</a></div>";
}else{
console.log("文字長按");
menuTpl = "<div class='menu menu-text'><a href='#'><i class='ico i1'></i>復(fù)制</a><a href='#'><i class='ico i2'></i>收藏</a>" + _revoke +"<a href='#'><i class='ico i5'></i>刪除</a></div>";
}
if(!$(".wc__chatTapMenu").length){
$(".wc__chatMsg-panel").append(menuNode.html(menuTpl));
autoPos();
}else{
$(".wc__chatTapMenu").hide().html(menuTpl).fadeIn(250);
autoPos();
}
function autoPos(){
console.log(that.position().top)
var _other = that.parents("li").hasClass("others");
$(".wc__chatTapMenu").css({
position: "absolute",
left: that.position().left + parseInt(that.css("marginLeft")) + (_other ? 0 : that.outerWidth() - $(".wc__chatTapMenu").outerWidth()),
top: that.position().top - $(".wc__chatTapMenu").outerHeight() - 8
});
}
});
效果圖:







總結(jié)
以上所述是小編給大家介紹的HTML5高仿微信聊天、微信聊天表情|對話框|編輯器功能,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章

HTML5實(shí)現(xiàn)的移動端購物車自動結(jié)算功能示例代碼
本文介紹HTML5實(shí)現(xiàn)移動端購物車自動結(jié)算,通過WebStorage、事件監(jiān)聽、DOM操作等技術(shù),確保實(shí)時更新與數(shù)據(jù)同步,優(yōu)化性能及無障礙性,提升用戶體驗,感興趣的朋友一起看看吧2025-06-18- 在HTML5中,<button>標(biāo)簽用于定義一個可點(diǎn)擊的按鈕,它是創(chuàng)建交互式網(wǎng)頁的重要元素之一,本文將深入解析HTML5中的<button>標(biāo)簽,詳細(xì)介紹其屬性、樣式以及實(shí)際2025-06-18
基于 HTML5 Canvas 實(shí)現(xiàn)圖片旋轉(zhuǎn)與下載功能(完整代碼展示)
本文將深入剖析一段基于 HTML5 Canvas 的代碼,該代碼實(shí)現(xiàn)了圖片的旋轉(zhuǎn)(90 度和 180 度)以及旋轉(zhuǎn)后圖片的下載功能,通過對代碼的解讀,我們可以學(xué)習(xí)到如何利用 Canvas API2025-06-18
HTML5 getUserMedia API網(wǎng)頁錄音實(shí)現(xiàn)指南示例小結(jié)
本教程將指導(dǎo)你如何利用這一API,結(jié)合Web Audio API,實(shí)現(xiàn)網(wǎng)頁錄音功能,從獲取音頻流到處理和保存錄音,整個過程將逐步詳解,此外,還討論了getUserMedia API的使用限制和最2025-06-16- HTML5的搜索框是一個強(qiáng)大的工具,能夠有效提升用戶體驗,通過結(jié)合自動補(bǔ)全功能和適當(dāng)?shù)臉邮?,可以?chuàng)建出既美觀又實(shí)用的搜索界面,這篇文章給大家介紹HTML5 搜索框Search Box2025-06-13
- Checkbox是HTML5中非常重要的表單元素之一,通過合理使用其屬性和樣式自定義方法,可以為用戶提供豐富多樣的交互體驗,這篇文章給大家介紹HTML5中Checkbox標(biāo)簽的深入全面解2025-06-13
HTML5無插件拖拽圖片上傳功能實(shí)現(xiàn)過程
本實(shí)例展示了一種基于HTML5技術(shù)的圖片上傳功能,無需外部插件即可通過拖放圖片實(shí)現(xiàn)上傳,涉及到HTML5的拖放API和File API,以及使用CSS來增強(qiáng)用戶界面的交互性和視覺反饋,2025-05-16- 在HTML5和CSS中,定位(positioning)是控制元素在頁面上位置的重要機(jī)制,主要有四種定位方式:靜態(tài)定位(static)、相對定位(relative)、絕對定位(absolute)和固定定位(fixed),2025-05-13
- Microdata作為HTML5新增的一個特性,它允許開發(fā)者在HTML文檔中添加更多的語義信息,以便于搜索引擎和瀏覽器更好地理解頁面內(nèi)容,本文將探討HTML5中Microdata的使用方法以及2025-04-21
在HTML語法中,表格主要通過< table >、< tr >和< td >3個標(biāo)簽構(gòu)成,本文通過實(shí)例代碼講解HTML5表格語法格式,感興趣的朋友一起看看吧2025-04-21




