vue 评论框里面输入Emoji表情

contenteditable 属性是 HTML5新增的。所有主流浏览器都支持 contenteditable 属性。div设置contenteditable=“true”,即可对其进行编辑。

    <div placeholder="写评论..." ref="inputs" @input="changeBtnClick" @focus="focusCustomerMessage" @blur="blurCustomerMessage" contenteditable class="pingluninput pingluninputbox"></div>

给div设置一个placeholder属性,可以自行改变颜色。

在这里插入图片描述

div[contenteditable]:empty:before {
    content: attr(placeholder);
    color: #666666;
}
div[contenteditable]:focus {
    content: none;
}

自动获取焦点

this.$nextTick(() => {
	this.$refs.inputs.focus()
})

设置光标在最后的位置

this.$nextTick(() => {
        if (window.getSelection) { //ie11 10 9 ff safari
        	this.$refs.inputs.focus(); //解决ff不获取焦点无法定位问题
            	var range = window.getSelection(); //创建range
                    range.selectAllChildren(this.$refs.inputs); //range 选择 this.$refs.inputs下所有子内容
                    range.collapseToEnd(); //光标移至最后
                } else if (document.selection) { //ie10 9 8 7 6 5
                    var range = document.selection.createRange(); //创建选择对象
                    range.moveToElementText(this.$refs.inputs); //range定位到 this.$refs.inputs
                    range.collapse(false); //光标移至最后
                    range.select();
                }
            })

给每个图片进行排版

   <div class="biaoqing" v-show="emailShow">
                <ul>
                    <div>
                        <li @click="biaoQing('哈哈')"><img class="biaoq" src="../../assets/images/haha.png" data-alias="哈哈" /></li>
                        <li @click="biaoQing('笑哭')"><img class="biaoq" src="../../assets/images/aiku.png" data-alias="笑哭" /></li>
                        <li @click="biaoQing('奸诈')"><img class="biaoq" src="../../assets/images/jianzha.png" data-alias="奸诈" /></li>
                        <li @click="biaoQing('难过')"><img class="biaoq" src="../../assets/images/nanguo.png" data-alias="难过" /></li>
                        <li @click="biaoQing('')"><img class="biaoq" src="../../assets/images/se.png" data-alias="" /></li>
                        <li @click="biaoQing('捂脸')"><img class="biaoq" src="../../assets/images/wulian.png" data-alias="捂脸" /></li>
                        <li @click="biaoQing('皱眉')"><img class="biaoq" src="../../assets/images/zhoumei.png" data-alias="皱眉" /></li>
                    </div>

                    <div>
                        <li @click="biaoQing('发呆')"><img class="biaoq" src="../../assets/images/fadai.png" data-alias="发呆" /></li>
                        <li @click="biaoQing('坏笑')"><img class="biaoq" src="../../assets/images/huaixiao.png" data-alias="坏笑" /></li>
                        <li @click="biaoQing('委屈')"><img class="biaoq" src="../../assets/images/weiqu.png" data-alias="委屈" /></li>
                        <li @click="biaoQing('可爱')"><img class="biaoq" src="../../assets/images/keai.png" data-alias="可爱" /></li>
                        <li @click="biaoQing('爱心')"><img class="biaoq" src="../../assets/images/aixin.png" data-alias="爱心" /></li>
                        <li @click="biaoQing('')"><img class="biaoq" src="../../assets/images/zan.png" data-alias="" /></li>
                        <li><img class="back" @click="goBack" src="../../assets/images/back.png" /></li>
                    </div>
                </ul>
            </div>

在这里插入图片描述

biaoQing (val) {
      switch (val) {
         case '哈哈':
            this.$refs.inputs.innerHTML += `<img style='width:0.6rem' src='${require('../../assets/images/haha.png')}'/>`
            break;
    }
}

以此类推每个都写上。

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Hope°

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值