小编给大家分享一下怎么使用Vue实现base64编码图片间的切换功能,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

要实现的效果

实现思路
给每个元素添加@mouserover事件和@mouseleave事件
绑定函数,传用于识别当前参数的标识
根据所传参数判断当前状态下应该显示什么图片
解析渲染
实现过程
从json文件中读取图片信息集合,循环渲染json文件中的图片,传当前元素和当前图片的一些信息过去
引入json文件,并在data()中声明
import emoji from '../assets/json/emoji';
data() {
return {
emojiList:emoji,
toolbarList:toolbar
}
}实现鼠标移入移除替换图片的函数
// 表情框鼠标悬浮显示动态表情
emojiConversion:function (event,status,path,hoverPath) {
if(status==="over"){
event.target.src = require(`../assets/img/emoji/${hoverPath}`);
}else{
event.target.src = require(`../assets/img/emoji/${path}`);
}
}
emoji.json
[
{
"name": "pout",
"src": "1fix@2x.png",
"info": "撇嘴",
"hover": "1@2x.gif"
},
{
"name": "porn",
"src": "2fix@2x.png",
"info": "色",
"hover": "2@2x.gif"
},
{
"name": "smile",
"src": "14fix@2x.png",
"info": "微笑",
"hover": "14@2x.gif"
},
{
"name": "smile",
"src": "178fix@2x.png",
"info": "滑稽",
"hover": "178@2x.gif"
}
]踩坑过程
错误的使用require
// 这样直接在data中写文件路径没问题,可以正常渲染
emojiSrc:{
"funny":require("../assets/img/emoji/178fix@2x.png"),
"funnyNormal":require("../assets/img/emoji/178fix@2x.png"),
"funnyHover":require("../assets/img/emoji/178@2x.gif"),
"smile":require("../assets/img/emoji/14fix@2x.png"),
"smileNormal":require("../assets/img/emoji/14fix@2x.png"),
"smileHover":require("../assets/img/emoji/14@2x.gif"),
"pout":require("../assets/img/emoji/1fix@2x.png"),
"poutNormal":require("../assets/img/emoji/1fix@2x.png"),
"poutHover":require("../assets/img/emoji/1@2x.gif"),
"porn":require("../assets/img/emoji/2fix@2x.png"),
"pornNormal":require("../assets/img/emoji/2fix@2x.png"),
"pornHover":require("../assets/img/emoji/2@2x.gif"),
}渲染结果:

但是如果在json文件中写文件的路径,渲染结果(无法识别文件路径):

解决方案:使用模板字符串,json文件只写文件名,文件路径写在当前组件
require的正确使用方式
require(`../assets/img/emoji/${hoverPath}`);看完了这篇文章,相信你对“怎么使用Vue实现base64编码图片间的切换功能”有了一定的了解,如果想了解更多相关知识,欢迎关注创新互联成都网站设计公司行业资讯频道,感谢各位的阅读!
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。