vue 实现评论区表情输入

一、背景

实现评论区可输入中文,字母,数字,符号及表情的输入(表情为ios系统表情)

表情的输入,由两种方式实现,一是通过输入unicode编码如‘\ud83c\udf36’,二是,通过选择表情输入,传给后台以unicode的格式

二、效果

vue 实现评论区表情输入_第1张图片

三、实现方式有两种

方式一:将所需图片存放到本地文件,避免用url显示不出来

HTML:


js:

 export default {
    name: 'emoji',
    data () {
      return {
        activeFace: 'face',
        faceList: [ // 存放在本地文件的图片的获取方式需要用require
          {value: '\ud83d\ude00', url: require('../assets/imgs/emoji/grinning-face_1f600.png')},  // value为表情对应的unicode码,url为路径
          {value: '\ud83d\ude01', url: require('../assets/imgs/emoji/grinning-face-with-smiling-eyes_1f601.png')}
        ]
      }
    },
    methods: {
      shoseEmoji (emoji) {
        this.$emit('select', emoji)
      }
    }
  }

css:

.emoji {
    width: 480px;
    height: 186px;
    bottom: 50px;
    background: #fff;
    z-index: 10;
    padding: 10px;
    margin-right: 10px;
    background: white;
    overflow-y: scroll;
    border-radius: 10px;
  }
  .emoji-container {
    overflow-y: auto;
    overflow-x: hidden;
    position: relative;
  }
  .emoji-container li {
    float: left;
    width:30px;
    height: 30px;
    margin: 5px
  }
  .emoji-container li a {
    display: block;
    float: left;
    overflow: hidden;
    width: 35px;
    height: 35px;
    display:flex;
    justify-content:center;
    align-items:center;
    transition: all ease-out .2s;
    border-radius: 4px;
  }
  .emoji-container li a img {
    display: block;
    width: 30px;
    height: 30px;
  }
  .emoji-container li a:hover {
    background-color: #d8d8d8;
    border-color: #d8d8d8;
  }

方式二:通过使用ios系统公开的表情url

html:

js:

 export default {
    name: 'emoji',
    data () {
      return {
        activeFace: 'face',
        faceList: [
          {value: '\ud83d\ude00', url: 'grinning-face_1f600.png'}       
        ]
      }
    },
    methods: {
      shoseEmoji (emoji) {
        this.$emit('select', emoji)
      }
    }
  }

css同上

你可能感兴趣的:(vue)