vue练手小项目--眼镜在线试戴
最近看到了一个眼镜在线试戴小项目使用纯js手写的,本人刚学习vue.js没多久,便试试用vue做做看了,还没完善。
其中包括初始图片加载,使用keywords查找,父子组件之间传递信息,子组件之间传递信息
1. 使用keywords查找
1.1 给每个li添加初始data
smallImg: [
{
keywords: "椭圆脸",
src: "images/model_1.jpg",
addClass: false
},
{
keywords: "圆形脸",
src: "images/model_2.jpg",
addClass: false
},
...
]
1.2 添加方法
// 搜索脸型
addCurrent: function (index){// li样式添加this.faceType[index].isTrue=true;this.faceType[this.oldIndex].isTrue=false;this.oldIndex=index;// 搜索脸型var type=this.faceType[index].type;this.smallImg.forEach(function (val,index){// 先都不加classval.addClass=false;// 若关键字不等于脸型则添加classif(val.keywords!=type){val.addClass=true;}});// 点击全部,则所有的都不添加classif(index==0){this.smallImg.forEach(function (val,index){// 先都不加classval.addClass=false;});}
}
2. 子组件向父组件发送数据
2.1 点击任意眼镜触发showGlass()事件
<script type="text/template" id="galsslist">
<div class="galsslist"><ul class="clearfix"><li v-for="(val,index) in glass" @click="showGlass(index)" v-if="val.show"><img :src="val.src" alt=""><h4>{{ val.title }}</h4><p>{{ val.text }}</p></li></ul></div>
</script>
2.2 子组件发射togg()事件到父组件,并传递点击的index值
showGlass: function (index){this.$emit("togg",index);
},
2.3 父组件自定义事件
<!-- 自定义事件,子组件向父组件发送数据 -->
<galsslist @togg="showBig"></galsslist>
2.4 执行showBig()事件,佩戴选择的眼镜
showBig: function (index){this.bigGlassImg="images/glass_"+(index+1)+".png";this.showbigGlassImg=true;
}
3. 子组件之间传递信息
3.1 先在index的data中定义 bus: new Vue(),
3.2 点击搜索在子组件触发search事件,发射事件 sear(), 并传递sendMsg信息
// 向另一个组件传递信息
search: function (){var sendMsg=this.toggArr[0].msg;this.$root.bus.$emit("sear",sendMsg);
}
3.3 执行事件sear(),并修改this.searchKey,并触发searchKeywords()事件
// 接收另一组件传递的信息
created: function (){var self=this;this.$root.bus.$on("sear",function (val){self.searchKey=val;self.searchKeywords();})
},
beforeDestory: function (){this.$root.bus.$off("sear");
}
3.4 显示与之匹配的眼镜
searchKeywords: function (){this.glass.forEach(function (val,index){// 先全部显示val.show=true;var key=val.title.split("_")[0];// key不相等,则隐藏if(key!=this.searchKey){val.show=false;}},this);// 为全部则全部显示if(this.searchKey=="全部"){this.glass.forEach(function (val,index){// 全部显示val.show=true;});}
}
4. github地址 (https://github.com/hsiangleev/proj-eyeglass.git)
转载于:https://www.cnblogs.com/hsianglee/p/7613241.html
vue练手小项目--眼镜在线试戴相关推荐
- springboot+vue练手小项目[前台搭建+后台编写](非常详细)
[ springboot+vue练手小项目 ] 技术栈: springboot+vue3+element-plus +Mybaties-plus+hutool +mysql8 项目介绍 :最近刚学了s ...
- ssm练手小项目_20 个 JavaScript+Html+CSS 练手的小项目
前言: 最近在 GitHub 上发现了一个 vanillawebprojects[1] 开源仓库,里面收集了 20 个 JavaScript+Html+CSS的练手项目,没有使用任何框架,可以让你从基 ...
- c语言模拟器怎么打程序,C语言初学者练手小项目——万花模拟器
原标题:C语言初学者练手小项目--万花模拟器 还记得小时候玩的万花尺么?好好玩,各种不同的点距能画出各种各样形状图形. C语言程序万花尺模拟 函数功能:每隔5秒随机生成万花图形 并自动保存作图参数以及 ...
- 台式小风扇(HTML+CSS+JS练手小项目)
台式小风扇(HTML+CSS+JS练手小项目) 功能介绍 外观展示 HTML代码 CSS代码 JS代码 总结 功能介绍 前段时间看到这样的风扇特效,感觉还挺好玩,就自己也写一个练练手. 风扇有四个档位 ...
- 爬虫练手小项目:豆瓣高分图书TOP100
爬虫练手小项目:豆瓣高分图书TOP100 import requests import re from requests.exceptions import RequestException impo ...
- 数据结构练手小项目(AVL树、哈希表、循环链表、MySQL数据库)
文章目录 前言 正文(无删减) 我的想法(删减修改版) 数据导入与数据存储 功能实现 数据结构 用户结构 SIM卡结构 AVL树数据结构 哈希表结构 数据表 用户表 SIM卡表 时间安排 前言 本月主 ...
- html+css+js之20个练手小项目(一)
html+css+js之20个练手小项目(一)--Hangman 前言 一.HTML 二.CSS 三.JS 前言 前端新手练习,记录不迷失. 主要练习html和CSS布局以及JS. 来源github, ...
- 练手小项目,爬取3DM图片
博客原文:https://weweweha.com 1. 概述 爬取3DM指定网页的游戏壁纸,并且通过多线程来加速爬取图片的速度. 2.使用库 request库用来1解析指定网页,re库用来搜 ...
- Golang练手小项目系列
Golang练手小项目系列 本系列整理了10个工作量和难度适中的Golang小项目,适合已经掌握Go语法的工程师进一步熟练语法和常用库的用法. golang练手小项目系列(1)-位向量 golang练 ...
最新文章
- mysql数据库基本介绍及常见使用
- 第三课.python编程基础(二)
- ML-1 逻辑回归和梯度下降
- 【Flutter】Flutter 混合开发 ( Flutter 与 Native 通信 | 完整代码示例 )
- 【Python】青少年蓝桥杯_每日一题_10.19_回文数和个数
- 1810: Huffuman树(vector模拟)
- Liunx 重定向,管道符(转)
- Memcached 使用 及.NET客户端调用
- ORACLE Dataguard安装
- 计算机管理磁盘分区,一分钟搞定电脑磁盘分区,再也不求人!
- warning: backslash and newline separated by space
- 冰点还原精灵如何关闭?
- 视频教程-PO设计模式(精讲)-软件测试
- unity 彩带粒子_超级技术贴:Unity粒子遇上着色器,引爆视觉特效
- python中pd series_Python 数据处理(三)——pd.Series
- .ipynb文件怎么打开_Mac应用程序无法打开提示不明开发者或文件损坏怎么对待呢?
- 【JSON数据】中国各省份省会城市经纬度 JSON
- 云计算 第七章 云安全(3)概述 云计算面临的安全问题 云安全问题的深层原因 云安全关键技术 云计算信息安全的国内外标准化
- 【题海算法】趣味算命
- 胡适最著名演讲:天下没有白费的努力!
热门文章
- Springboot快递管理系统1k61h计算机毕业设计-课程设计-期末作业-毕设程序代做
- 运维工程师主要做什么_网络工程师和网络运维工程师到底有什么不同?
- Android:将鼠标右键点击事件设置为返回功能
- 计算机进去bios方式,电脑的BIOS在哪?各电脑进入BIOS的方法
- Samsung/三星I9128 Galaxy Grand root教程_方法
- mysql signal_[MySQL]MySQL的signal sqlstate
- 面试时,如何回答你还有什么想要了解的?
- Activity毛玻璃背景效果
- “外卖式”售后服务体验来袭 沃丰科技ServiceGo让售后服务更智能
- vs修改程序图标、任务栏图标