亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

vue+web端仿微信網頁版聊天室功能

2019-11-19 11:40:43
字體:
來源:轉載
供稿:網友

一、項目介紹

基于Vue2.5.6+Vuex+vue-cli+vue-router+vue-gemini-scrollbar+swiper+elementUI等技術混合架構開發的仿微信web端聊天室――vueWebChat,實現了發送消息、表情(動圖),圖片、視頻預覽,右鍵菜單、截屏、截圖可直接粘貼至文本框進行發送。

二、技術框架

•MVVM框架:Vue2.5.6
•狀態管理:Vuex
•頁面路由:Vue-router
•iconfont圖標:阿里巴巴字體圖標庫
•自定義滾動條:vue-gemini-scrollbar
•彈窗組件:element-ui(餓了么前端UI庫)
•環境配置:node.js + cnpm + webpack
•高德地圖:vue-amap
•圖片預覽:vue-photo-preview

◆ 點擊右上角最大化按鈕,可以進行全屏切換

◆ 引入公共及全局組件配置components.js

/* 引入公共及全局組件配置*/ // 引入側邊欄及聯系人import winBar from './components/winbar'import sideBar from './components/sidebar'import recordList from './components/recordList'import contactList from './components/contact'// 引入jqueryimport $ from 'jquery'// 引入wcPop彈窗插件import wcPop from './assets/js/wcPop/wcPop'import './assets/js/wcPop/skin/wcPop.css'// 引入餓了么pc端UI庫import elementUI from 'element-ui'import 'element-ui/lib/theme-chalk/index.css'// 引入圖片預覽插件import photoPreview from 'vue-photo-preview'import 'vue-photo-preview/dist/skin.css'// 引入自定義滾動條插件import geminiScrollbar from 'vue-gemini-scrollbar'// 引入加載更多插件import infiniteLoading from 'vue-infinite-scroll'// 引入高德地圖import vueAMap from 'vue-amap'const install = Vue => { // 注冊組件 Vue.component('win-bar', winBar) Vue.component('side-bar', sideBar) Vue.component('record-list', recordList) Vue.component('contact-list', contactList) // 應用實例 Vue.use(elementUI) Vue.use(photoPreview, {  loop: false,  fullscreenEl: true, //是否全屏  arrowEl: true, //左右按鈕 }); Vue.use(geminiScrollbar) Vue.use(infiniteLoading) Vue.use(vueAMap) vueAMap.initAMapApiLoader({  key: "e1dedc6bdd765d46693986ff7ff969f4",  plugin: [   "AMap.Autocomplete", //輸入提示插件   "AMap.PlaceSearch", //POI搜索插件   "AMap.Scale", //右下角縮略圖插件 比例尺   "AMap.OverView", //地圖鷹眼插件   "AMap.ToolBar", //地圖工具條   "AMap.MapType", //類別切換控件,實現默認圖層與衛星圖、實施交通圖層之間切換的控制   "AMap.PolyEditor", //編輯 折線多,邊形   "AMap.CircleEditor", //圓形編輯器插件   "AMap.Geolocation" //定位控件,用來獲取和展示用戶主機所在的經緯度位置  ],  uiVersion: "1.0" });}export default install

◆ 主頁面模板

<template> <div id="app"> <div class="vChat-wrapper flexbox flex-alignc">  <div class="vChat-panel" style="background-image: url(src/assets/img/placeholder/vchat__panel-bg01.jpg);">  <div class="vChat-inner flexbox">   <!-- //頂部按鈕(最大、最小、關閉) -->   <win-bar></win-bar>   <!-- //側邊欄 -->   <side-bar></side-bar>   <keep-alive>   <router-view class="flex1 flexbox"></router-view>   </keep-alive>  </div>  </div> </div> </div></template><script>export default { name: 'app', data () { return { } }, methods: { },}</script><style>/* 引入公共樣式 */@import './assets/fonts/iconfont.css';@import './assets/css/reset.css';@import './assets/css/layout.css';</style>

◆ vue文本框實現截圖粘貼發送圖片:

// 【截圖粘貼圖片】document.getElementById('J__wcEditor').addEventListener('paste',function(e){ var cbd = e.clipboardData; var ua = window.navigator.userAgent; // 沒有數據 if (!(e.clipboardData && e.clipboardData.items)) {  return; } // Mac平臺下Chrome49版本以下 復制Finder中的文件的Bug Hack掉 if(cbd.items && cbd.items.length === 2 && cbd.items[0].kind === "string" && cbd.items[1].kind === "file" &&  cbd.types && cbd.types.length === 2 && cbd.types[0] === "text/plain" && cbd.types[1] === "Files" &&  ua.match(/Macintosh/i) && Number(ua.match(/Chrome//(/d{2})/i)[1]) < 49){  return; } for(var i = 0; i < cbd.items.length; i++){  var item = cbd.items[i];  console.log(item);  console.log(item.kind);  if(item.kind == "file"){   var blob = item.getAsFile();   if(blob.size === 0){    return;   }   // 插入圖片記錄   var reader = new FileReader();   reader.readAsDataURL(blob);   reader.onload = function(){    var _img = this.result;    var _tpl = [     '<li class="me">/      <div class="content">/       <p class="author">王梅(Fine)</p>/       <div class="msg picture"><img class="img__pic" src="'+ _img + '" preview="1" /></div>/      </div>/      <a class="avatar" href="/contact/uinfo"><img src="src/assets/img/uimg/u__chat-img11.jpg" /></a>/     </li>'    ].join("");    $("#J__chatMsgList").append(_tpl);    setTimeout(() => {     $("#J__geminiScrollbar .gm-scroll-view").animate({ scrollTop: $("#J__chatMsgList").height() }, 0);     $(".fixGeminiscrollHeight").show();     setTimeout(() => { $(".fixGeminiscrollHeight").hide();}, 300);    }, 17);   }  } }});

◆ 表情處理及視頻預覽:

// >>> 【表情、動圖swiper切換模塊】--------------------------var emotionSwiper;function setEmotionSwiper(tmpl) { var _tmpl = tmpl ? tmpl : $("#J__emotionFootTab ul li.cur").attr("tmpl"); $("#J__swiperEmotion .swiper-container").attr("id", _tmpl); $("#J__swiperEmotion .swiper-wrapper").html($("." + _tmpl).html()); emotionSwiper = new Swiper('#' + _tmpl, {  // loop: true,  // autoplay: true,  // 分頁器  pagination: {   el: '.pagination-emotion', clickable: true,  }, });}// 表情模板切換$("body").on("click", "#J__emotionFootTab ul li.swiperTmpl", function () { // 先銷毀swiper emotionSwiper && emotionSwiper.destroy(true, true); var _tmpl = $(this).attr("tmpl"); $(this).addClass("cur").siblings().removeClass("cur"); setEmotionSwiper(_tmpl);});// >>> 【視頻預覽模塊】--------------------------$("body").on("click", "#J__chatMsgList li .video", function () { var _src = $(this).find("img").attr("videoUrl"), _video; var videoIdx = wcPop({  id: 'wc__previewVideo',  skin: 'fullscreen',  // content: '<video id="J__videoPreview" width="100%" height="100%" controls="controls" x5-video-player-type="h5" x5-video-player-fullscreen="true" webkit-playsinline preload="auto"></video>',  content: '<video id="J__videoPreview" width="100%" height="100%" controls="controls" preload="auto"></video>',  shade: false,  xclose: true,  style: 'background: #000;padding-top:48px;',  anim: 'scaleIn',  show: function(){   _video = document.getElementById("J__videoPreview");   _video.src = _src;   if (_video.paused) {    _video.play();   } else {    _video.pause();   }   // 播放結束   _video.addEventListener("ended", function(){    _video.currentTime = 0;   });   // 退出全屏   _video.addEventListener("x5videoexitfullscreen", function(){    wcPop.close(videoIdx);   })  } });});

總結

以上所述是小編給大家介紹的vue+web端仿微信網頁版聊天室功能,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對武林網網站的支持!
如果你覺得本文對你有幫助,歡迎轉載,煩請注明出處,謝謝!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产91亚洲精品| 国产成人拍精品视频午夜网站| 动漫精品一区二区| 欧美一区二区三区免费视| 亚洲一区二区自拍| 国产精品丝袜久久久久久不卡| 亚洲精品一区二区网址| 欧美日韩国产专区| 中文字幕精品国产| 欧美成人在线免费视频| 久久97久久97精品免视看| 亲爱的老师9免费观看全集电视剧| 97国产精品视频人人做人人爱| 欧美日韩一区二区免费在线观看| 日韩久久免费电影| 亚洲精品永久免费| 午夜精品一区二区三区av| 国产日韩欧美电影在线观看| 国产精品视频公开费视频| 欧美最猛性xxxxx(亚洲精品)| 久久免费视频网| 中文字幕亚洲欧美日韩在线不卡| 亚洲精品久久久一区二区三区| 中文字幕日韩精品在线| 久久精品国产亚洲| 国产不卡av在线| 成人免费网站在线看| 91亚洲人电影| 久久精品夜夜夜夜夜久久| 欧美另类第一页| 一个色综合导航| 日韩av在线网| 亚洲国产一区二区三区在线观看| 成人免费福利视频| 夜夜嗨av一区二区三区四区| 欧美日韩福利电影| 日韩中文字幕视频在线观看| 亚洲最大成人在线| 色先锋资源久久综合5566| 国产欧美一区二区三区在线看| 国产精品丝袜白浆摸在线| 久久精品久久精品亚洲人| 久久九九有精品国产23| 清纯唯美亚洲激情| 午夜剧场成人观在线视频免费观看| 亚洲国产精品高清久久久| 国产精品视频xxx| 国产欧美精品一区二区三区介绍| 日韩福利伦理影院免费| 国产精品一区二区三区成人| 日本久久91av| 在线观看久久久久久| 一本色道久久综合狠狠躁篇怎么玩| 精品国产91乱高清在线观看| 亚洲第一精品夜夜躁人人躁| 欧美性猛交视频| 国产精品黄色av| 在线观看国产精品日韩av| 日韩精品一区二区三区第95| 欧美日韩精品国产| 国产精品一二三在线| 欧美人在线观看| 亚洲新中文字幕| 亚洲人成电影网站色…| 亚洲国产欧美一区| 国产丝袜一区视频在线观看| 国产成人精品一区| 中文字幕av一区二区| 中文日韩电影网站| 欧美高跟鞋交xxxxxhd| 亚洲视频专区在线| 欧美性在线视频| 国产精自产拍久久久久久蜜| 午夜精品三级视频福利| 日韩av手机在线| 欧美丝袜第一区| 久久精品欧美视频| 欧美夫妻性生活xx| 日韩精品免费一线在线观看| 久操成人在线视频| 欧美孕妇与黑人孕交| 久久久国产一区二区三区| 日本免费一区二区三区视频观看| 丝袜美腿亚洲一区二区| 国产91精品不卡视频| 国产精品成人观看视频国产奇米| 成人免费视频97| www高清在线视频日韩欧美| 992tv成人免费影院| 98午夜经典影视| 国产精品视频网| 色青青草原桃花久久综合| 日韩成人av网| 国产精品久久一| 国产一区二区黄| 国产精品高潮在线| 一本一本久久a久久精品牛牛影视| 久久视频在线视频| 国产综合视频在线观看| 热久久这里只有精品| 国产精品久久久久久久久借妻| 久久久久国产精品www| 久久久久国产精品免费网站| 久热国产精品视频| 国产日韩中文在线| 亚洲欧美激情四射在线日| 日韩中文字幕视频在线| 亚洲成人网久久久| 久久国产精品网站| 亚洲性猛交xxxxwww| 亚洲国产精品免费| 亚洲激情在线视频| 原创国产精品91| 国产精品视频免费在线观看| 欧美激情一区二区三区在线视频观看| 精品视频偷偷看在线观看| 亚洲精品在线91| 欧美日本在线视频中文字字幕| 91在线高清免费观看| 久久久免费在线观看| 国产欧美日韩专区发布| 日本欧美黄网站| 亚洲最大福利视频网站| 亚洲午夜未满十八勿入免费观看全集| 成人妇女免费播放久久久| 久久精品视频播放| 欧美另类69精品久久久久9999| 国产一区二区视频在线观看| 久久久久成人精品| 国产精品旅馆在线| 亚洲第一福利视频| 久久全国免费视频| 日韩av影院在线观看| 国产美女精品视频免费观看| 久久久久亚洲精品国产| 国产a∨精品一区二区三区不卡| 国产欧美日韩最新| 色综合久久天天综线观看| 日本欧美爱爱爱| 欧美一级视频一区二区| 九九热这里只有在线精品视| 亚洲国产精品久久久久| 亚洲精品视频二区| 欧美成人合集magnet| 国产精品日韩av| 国产一区二区精品丝袜| 国产丝袜高跟一区| 日韩精品黄色网| 精品日韩中文字幕| 国产成人精品视频在线观看| 欧美日韩性视频在线| 久久久国产精品x99av| 国产精品视频大全| 亚洲电影免费观看高清完整版在线| 亚洲美女激情视频| 日韩av免费在线播放| 久久不射热爱视频精品| 欧美怡春院一区二区三区| 日韩在线视频中文字幕| 久久91精品国产91久久跳| 中文综合在线观看| 国产欧美久久一区二区| 日韩美女视频在线观看| 日韩经典一区二区三区|