class Index { constructor() { this.userinfo = JSON.parse(localStorage.getItem("userinfo")); this.fontSetConfig = { fontSize: '22px', color: '', bgColor: '' } this.setUserInfo(); this.golableOn(); this.sendMessage(); this.renderBiaoQing(); this.fontSet() } golableOn() { io.socket.emit("getUserOnline",this.userinfo.roomid); io.socket.on('UserOnline', (list) => { $(".right_header p").text(list.length) $(".right_content").empty(); list.forEach((v,i) => { $(".right_content").append(`

${v.username}

`) }) }); io.socket.on('sedMessage', (list) => { console.log("其他人收到的消息为: ",list) this.renderMessage(list,'left') }) } setUserInfo() { $(".user img").attr("src", this.userinfo.img); $(".user p").text(this.userinfo.username); $(".rightlog").text(this.userinfo.roomid); } sendMessage() { $('.shuru').on('keydown', (event) => { if(event.keyCode == 13){ event.preventDefault(); if ($(".shuru").text().length > 0) { var data = Object.assign(this.userinfo, { message: `
${$(".shuru").html()}
` }); this.renderMessage(data); io.socket.emit("getMessage",data); $(".shuru").html("") } } }); } renderMessage(data, position = "right") { if (position == "right") { $(".left_content .chat_message").append(`

${data.username}

${data.message}
`); } else { $(".left_content .chat_message").append(`

${data.username}

${data.message}
`) }; $(".left_content").animate({ scrollTop: $(".chat_message").outerHeight() }, 1); } renderBiaoQing() { for (var i = 2;i<=209;i++) { $(".bq").append(`
  • `) }; $(".bq li img").mouseover(function (){ var oldImg = $(this).attr("src"); $(this).attr("src", oldImg.replace("png","gif")) }); $(".bq li img").mouseout(function (){ var oldImg = $(this).attr("src"); $(this).attr("src", oldImg.replace("gif","png")) }); var a = this; $(".bq li img").click(function () { a.innerEmoji($(this).attr("src")) }); $(".icon-xiaolian1").click(function (){ $(".bq").toggle(); }) } innerEmoji(src) { if (window.getSelection) { var sel = window.getSelection(); var range = sel.getRangeAt(0); var img = new Image(); range.deleteContents() img.src = src; console.log(range); range.insertNode(img); range.collapse(false);//对于IE来说,参数不可省略 } } fontSet() { var self = this; $(".fontSize").change(function(){ self.fontSetConfig.fontSize = $(this).val(); console.log("self.fontSetConfig: ", self.fontSetConfig) }); $(".fontColor").change(function(){ self.fontSetConfig.color = $(this).val(); }); $(".bgColor").change(function(){ self.fontSetConfig.bgColor = $(this).val(); }); } } new Index();