效果图:

父组件

<template><div style="padding:20px;width:90%;"><div class="textBox"><textarea :maxlength="maxNum" placeholder="请添加回复文字" v-model="shareText" ref="shareTextArea" @focus="showEmojiPanel = false"></textarea><div class="textInputBox"><div><img src="@/assets/smile.png" v-if="!showEmojiPanel" @click="showEmojiPanel = true"/><img src="@/assets/keyboard.png" v-if="showEmojiPanel" @click="handleKeyboardClick"/></div><div class="textTips">还可以输入{{getNum}}字</div></div><emoji-input @onEmojiChoose="handleEmojiChoose" v-if="showEmojiPanel"></emoji-input></div></div>
</template><script type="text/javascript">
export default {data () {return {shareText: '',showEmojiPanel: true,maxNum: 300}},computed: {getNum () {return this.maxNum - this.shareText.length}},methods: {getcurtext () {console.log(this.shareText, '提交')},handleEmojiChoose (emoji) {let value = this.shareTextlet el = this.$refs.shareTextArealet startPos = el.selectionStartlet endPos = el.selectionEndlet newValue = value.substring(0, startPos) + emoji + value.substring(endPos, value.length)this.shareText = newValueif (el.setSelectionRange) {setTimeout(() => {let index = startPos + emoji.lengthel.setSelectionRange(index, index)}, 0)}},handleKeyboardClick () {this.showEmojiPanel = falsethis.$refs.shareTextArea.focus()}}
}
</script><style type="text/scss" lang="scss" scoped>
.textBox {background: #F9F9F9;width: 100%;textarea {box-sizing: border-box;height: 92px;width: calc(100% - 16px);margin: 8px;resize: none;font-size: 14px;background: #FFFFFF;border: 1px solid #D9D9D9;border-radius: 4px;}.textTips {font-size: 12px;color: #BBBBBB;letter-spacing: 0;margin-right: 10px;}img {width: 24px;height: 24px;margin-left: 14px;}.textInputBox {display: flex;align-items: center;justify-content: space-between;color: #BBBBBB;padding-bottom: 8px;}
}
</style>

子组件

<template><div class="emojiContainer"><div class="emojiPage"><a v-for="(item, i) in emojiList" :key=i @click="onEmojiClick(`[${item.title}]`)"><img :src=item.src width="24" height="24"></a></div></div>
</template><script>
import emojiJSON from './emoji.json'
export default {name: 'EmojiInput',data () {return {emojiList: emojiJSON}},methods: {onEmojiClick (emoji) {this.$emit('onEmojiChoose', emoji)}}
}
</script><style lang="scss" scoped>
.emojiContainer {width: 100%;background: #F6F6F6;display: flex;height: 280px;flex-direction: column;.emojiPage {width: 100%;display: flex;flex-wrap: wrap;align-content: flex-start;a {width: 6.66%;height: 40px;display: flex;justify-content: center;align-items: center;}}
}
</style>
<style lang="scss">
.face-content .v-tabs__wrapper {display: none;
}
</style>

json 格式

[{"src": "https://btsstatic.oss-cn-shanghai.aliyuncs.com/admin/emoji","title": "微笑"}
]

微信qq表情输入文本 vue相关推荐

  1. Android仿微信具有表情输入和拍照上传功能的键盘

    因公司业务要求,需要做一款类似微信聊天的页面,最主要的是表情输入和拍照.选图上传,因此仿照大神(https://github.com/dss886/Android-EmotionInputDetect ...

  2. Android 模仿手机QQ表情输入和表情预览框

    闲来无事花了一点空暇时间写了一个模仿Android版手机QQ的表情输入框 效果图如下 实现步骤 一:布局 二:录入填充表情 三:监听表情的适配器的触摸监听显示出预览框 一 .布局 我是自己自定一个Ex ...

  3. 解决微信小程序输入文本时候页面上移

    第1个属性:adjust-position 默认开始,可以忽略,注意兼容性即可.  第2个属性:cursor-spacing.核心属性 把这个值设为同input.textarea一样的高度即可,注意单 ...

  4. 微信公众帐号开发教程第9篇-QQ表情的发送与接收

    我想大家对QQ表情一定不会陌生,一个个小头像极大丰富了聊天的乐趣,使得聊天不再是简单的文字叙述,还能够配上喜.怒.哀.乐等表达人物心情的小图片.本文重点要介绍的内容就是如何在微信公众平台使用QQ表情, ...

  5. [033] 微信公众帐号开发教程第9篇-QQ表情的发送与接收

    我想大家对QQ表情一定不会陌生,一个个小头像极大丰富了聊天的乐趣,使得聊天不再是简单的文字叙述,还能够配上喜.怒.哀.乐等表达人物心情的小图片.本文重点要介绍的内容就是如何在微信公众平台使用QQ表情, ...

  6. 微信公众号最佳实践 ( 10.2)回复QQ表情和Emoji表情

    回复QQ表情和Emoji表情 微信的的文字发送方有一个笑脸表情等表情符,单击该表情后,我们可以发送这些表情,这些表情包括QQ表情和Emoji表情(也叫符号表情) 如图示: 微信用户和微信公众号都能直接 ...

  7. android高仿微信表情输入与键盘输入详解-解决跳闪与表情切换问题

    最近公司在项目上要使用到表情与键盘的切换输入,自己实现了一个,还是存在些缺陷,比如说键盘与表情切换时出现跳闪问题,这个相当困扰我,不过所幸在Github(其中一个不错的开源项目是https://git ...

  8. android高仿微信表情输入与键盘输入详解

    转载请注明出处: http://blog.csdn.net/javazejian/article/details/52126391   最近公司在项目上要使用到表情与键盘的切换输入,自己实现了一个,还 ...

  9. android高仿微信表情输入与键盘输入(详细实现分析)

    转载请注明出处(请尊重原创!谢谢~): http://blog.csdn.net/javazejian/article/details/52126391 出自[zejian的博客]   表情与键盘的切 ...

  10. java使用微信表情代码_iOS高仿微信表情输入功能代码分享

    最近项目需求,要实现一个类似微信的的表情输入,于是把微信的表情扒拉出来,实现了一把.可以从这里下载源码.看起来表情输入没有多少东西,不外乎就是用NSTextAttachment来实现图文混排,结果在实 ...

最新文章

  1. 智源研究院发布“智能信息检索与挖掘”重大方向,打造北京学派,联合攻关“个人智能信息助手”关键科学问题...
  2. MiniDao普通项目集成方案
  3. 用g.raphael.js高速绘制饼图、柱状图、点状图、折线图(上)
  4. 【机器学习】人工智能典型应用:班组工作日志转绩效类型
  5. LQ训练营(C++)学习笔记_常见动态规划模型
  6. Maze(BFS处理)
  7. python里str什么意思_Python 3 字符串中的 STR 和 Bytes 究竟有什么区别?
  8. python标准库之zipfile
  9. java中随机生成汉字
  10. Win制作苹果IOS证书
  11. 2022最新独立版智狐聚合支付V1.0.5.21+聚合支付系统源码
  12. DEFCON 23|利用U盘60秒打开保险柜
  13. 全国各省女孩性格+美丽程度比较分析!
  14. ▼ 系列 | 漫谈数仓第四篇NO.4 『BI选型』
  15. 国家进口的爱乐维与德国药店的爱乐维的区别
  16. Walkthrough: Word 2007 XML 格式
  17. JVM参数详细配置说明
  18. canvas 将折线转换成曲线
  19. 常用的php函数与类
  20. RPC实践(二)JsonRPC实践

热门文章

  1. 【爆肝帝,花费3个月整理】金九银十面试季,2020-2021字节跳动所有,软件测试面试题拿走不谢!(附详细答案解析)
  2. ABAQUS计算不收敛问题,排查方法和解决方案都在这儿了
  3. 介绍几款高级DAC解码芯片(整编)
  4. 尚学堂马士兵Oracle教程笔记
  5. 微软笔试题2:403 Forbidden
  6. 机械制图国家标准的绘图模板_从制图到数字制图,你知道真相吗
  7. ssci源刊里有开源期刊吗_ssci源刊里有开源期刊吗_啥是核心期刊?啥是北核啥是南核?啥是国家级?啥又是省级?都给你整明白......
  8. MATLAB加入螺旋相位板调制,螺旋相位板原理及使用手册
  9. 计算机硬件驱动备份,驱动备份还原软件工具
  10. 第十一章.软件工程(上)