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){
// 先都不加class
val.addClass=false;
// 若关键字不等于脸型则添加class
if(val.keywords!=type){
val.addClass=true;
}
});
// 点击全部,则所有的都不添加class
if(index==0){
this.smallImg.forEach(function (val,index){
// 先都不加class
val.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)
vue练手小项目--眼镜在线试戴的更多相关文章
- 初始Spring MVC——练手小项目
初始Spring MVC 前几天开始了我的spring学习之旅,由于之前使用过MVC模式来做项目,所以我先下手的是 Spring MVC,做个练手项目,非常简单 项目介绍: 用户输入信息 -> ...
- Spring+Mybatis整合的练手小项目(一)项目部署
声明:教程是网上找的,代码是自己敲的 项目目录大致如下: 1. 首先创建Maven工程,在pom.xml中加入项目所需依赖: <?xml version="1.0" enco ...
- 前端练手小项目——网页版qq音乐仿写
qq音乐网页版仿写 一些步骤与注意事项 一开始肯定就是html+css布局和页面了,这段特别耗时间,耐心写完就好了 首先要说一下大致流程: 一定要先布局html!,所以一定要先分析页面布局情况,用不同 ...
- 一个vue练手的小项目
编程路上的菜鸟一枚 : 最近接触了vue 然后写了一个练手的项目 使用vue-cli脚手架来搭建了的项目 技术: vue2 + vue-router + ES6 + axios 框架有 mint- ...
- 【Python】【辅助程序】练手小程序:记录外网动态IP地址
练手小程序 程序作用:对IP实时记录: 1.定时获取外网IP,存储在本地文件中: 编写思路: 1)收集获取外网的API接口 http://bbs.125.la/thread-1383897 ...
- 【Python精华】100个Python练手小程序
100个Python练手小程序,学习python的很好的资料,覆盖了python中的每一部分,可以边学习边练习,更容易掌握python. [程序1] 题目:有1.2.3.4个数字,能组成多少个互不相同 ...
- 整理了适合新手的20个Python练手小程序
100个Python练手小程序,学习python的很好的资料,覆盖了python中的每一部分,可以边学习边练习,更容易掌握python. 本文附带基础视频教程:私信回复[基础]就可以获取的 [程序1] ...
- php小项目-web在线文件管理器
php小项目-web在线文件管理器 一 项目结果相关视图 二 项目经验 通过简单的实现小项目,对php的文件相关操作更加熟悉,主要用于熟悉文件的相关操作 三 源代码下载地址 http://files. ...
- 简单的ssm练手联手项目
简单的ssm练手联手项目 这是一个简单的ssm整合项目 实现了汽车的品牌,价格,车型的添加 ,修改,删除,所有数据从数据库中拿取 使用到了jsp+mysql+Mybatis+spring+spring ...
随机推荐
- Python之测试webservice接口
前段时间学习了Python操作http接口,觉得挺容易的.最近项目组也有接触webservice接口,心里想想是否Python也可以操作这类接口.于是利用伟大的度娘,花了6个小时研究出来了,所以迫不及 ...
- Weave 网络结构分析 - 每天5分钟玩转 Docker 容器技术(64)
上一节我们安装并创建了 Weave 网络,本节将部署容器并分析网络结构.在 host1 中运行容器 bbox1: eval $(weave env) docker run --name bbox1 - ...
- node.js 下载安装及gitbook环境安装、搭建
最近需要gitbook看文档,于是各种百度,各种安装,很多都是无法正常安装完成的,比较纠结啊 最后,终于发现一个好用的,现分享一下地址(也是给自己做个记录): 1.node.js下载地址: http: ...
- Scala中柯里化函数
高阶函数转一阶函数: val add1 = (x: Int) => x + 5 def add2(x: Int)(y: Int) = x + y //传入一个参数转换为一阶函数 def add3 ...
- protobuf和thrift对比
详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt383 数据类型 protobuf thrift protobuf thrif ...
- 0908期 HTML 样式表属性
1.背景与前景 /*背景色,样式表优先级高*/ background-image:url(路径); /*设置背景图片(默认)*/ background-attachment:fixed; ...
- 【Alpha】 第七次Daily Scrum Meeting
一.本次会议为第七次meeting会议 二.时间:9:37AM-9:50AM 地点:禹州三楼 三.会议站立式照片 四.今日任务 成员 昨日任务 今日任务 林清青 学习并了解微信程序相关方面知识,为小组 ...
- 201521123037 《Java程序设计》第3周学习总结
1. 本周学习总结 链接:http://naotu.baidu.com/file/026a646bb4031d4238accc69cdf53272 2. 书面作业 1. 代码阅读 public cla ...
- Java 第二周总结
1.本周学习总结 (1)斐波那契函数 public static int fibonacci(int n)//斐波那契函数 { if(n<=2) { return 1; } else { ret ...
- 201521123076 《Java程序设计》第13周学习总结
1. 本周学习总结 以你喜欢的方式(思维导图.OneNote或其他)归纳总结多网络相关内容. 2. 书面作业 1. 网络基础 1.1 比较ping www.baidu.com与ping cec.jmu ...