uni-app(H5)论坛 | 社区 表情选择 UI组件

项目源码请移步:bbs

效果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

实现思路

  • 表情切换

人物、动物、小黄人不同表情之间的切换实际就是组件的切换

  • emoji表情

emoji表情本身就是一种字符 如需其他emoji表情可参考 EmojiAll中文官方网站

需要注意的就是数据库的存储格式需要支持emoji表情,我项目中使用的mysql(utf8mb4)

  • 小黄人表情

我的方案是gif图或png(或其他格式)图,在输入框内可以看到点击小黄人实际录入的是“[小黄人-微笑]”一段文案,实际上数据库内存的也是“[小黄人-微笑]”。但我们更关心的是页面如何反显这张图呢?

答案是正则

export default {
		data() {
			return {
				minions:{
					'[小黄人-微笑]':'f0/xhrnew_weixiao_org.png',
					'[小黄人-剪刀手]':'63/xhrnew_jiandaoshou_org.png',
					'[小黄人-不屑]':'b2/xhrnew_buxie_org.png',
					'[小黄人-高兴]':'41/xhrnew_gaoxing_org.png',
					'[小黄人-惊讶]':'fd/xhrnew_jingya_thumb.png',
					'[小黄人-委屈]':'79/xhrnew_weiqu_org.png',
					'[小黄人-坏笑]':'be/xhrnew_huaixiao_thumb.png',
					'[小黄人-白眼]':'e2/xhrnew_baiyan_org.png',
					'[小黄人-无奈]':'15/xhrnew_wunai_org.png',
					'[小黄人-得意]':'c8/xhrnew_deyi_org.png'
				}
			}
		},
		filters:{
			formatMinions:function(content, minions){
				var res = ""
				if(content){
					res = content.replace(/\[(.*?)\]/gi,(item)=>{
						if(item.indexOf('小黄人-') != -1){
							let suffix = minions[item]
							return `<image class="emoji-sticker" src="https://face.t.sinajs.cn/t4/appstyle/expression/ext/normal/${suffix}" mode=""></image>`
						}
						return ""
					})
				}
				return res
			}
		}
	}
<view class="pub-v3">
			<text class="articled-t3-a4" v-html="$options.filters.formatMinions(articleContent,minions)"></text>
		</view>

相关推荐

  1. Compose | UI(六) | 选择

    2024-04-09 17:16:03       59 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-09 17:16:03       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-09 17:16:03       106 阅读
  3. 在Django里面运行非项目文件

    2024-04-09 17:16:03       87 阅读
  4. Python语言-面向对象

    2024-04-09 17:16:03       96 阅读

热门阅读

  1. Vue Router的介绍与引入

    2024-04-09 17:16:03       34 阅读
  2. 自动化测试岗面试问题整理

    2024-04-09 17:16:03       29 阅读
  3. 基于单片机的机械手臂控制系统设计

    2024-04-09 17:16:03       30 阅读
  4. 逻辑回归(Logistic Regression)详解

    2024-04-09 17:16:03       30 阅读
  5. 蓝桥杯刷题 深度优先搜索-[178]全球变暖(C++)

    2024-04-09 17:16:03       33 阅读
  6. 声明结构体变量时,是否一定要加struct关键字?

    2024-04-09 17:16:03       31 阅读
  7. 如何才能把握电商的私域流量呢?

    2024-04-09 17:16:03       42 阅读
  8. 大数据分层存储架构:ODS、DWD、DWM与DWS详解

    2024-04-09 17:16:03       35 阅读
  9. 算法刷题记录 Day39

    2024-04-09 17:16:03       35 阅读