当前位置:网站首页>鸿蒙os第四次学习
鸿蒙os第四次学习
2022-07-05 20:19:00 【韬平】
目标界面:
一、搜索框的实现
在common文件夹下创建search文件夹(.hml,.css,.js)
.hml
<div class="search-container">
<div class="search-input">
<image class="search-input-image" src="/common/images/search.png"></image>
<text class="search-input-text">想吃什么搜这里,比如川菜</text>
</div>
</div>
.css
.search-container {
padding: 10px 15px;
}
.search-input {
height: 40px;
width: 100%;
justify-content: center;
align-items: center;
border-radius: 6px;
border: 0.5px solid #ee742f;
}
.search-input-image {
width: 20px;
height: 20px;
}
.search-input-text {
font-size: 12px;
font-weight: 100;
}
.index-inner-bg {
background-color: #fff;
}
.cate-inner-bg {
background-color: #f2f2f2;
border-width: 0;
}
.index-outer-bg {
background-color: #f2f2f2;
}
.cate-outer-bg {
background-color: #fff;
}
二、顶层效果实现
.hml
<element name="cb-menu"src="./menu/menu"></element>
<element name='comp' src='../../../components/tabbar/tabbar.hml'></element>
<element name='cb-search' src="../../../common/components/search/search"></element>
<div class="cate-container">
<div class="cate-header">
<div class="cate-header-nav">
<div class="cate-header-nav-item" @click="handleSliderClick('category')">
<text class="item-text">
分类
</text>
</div>
<div class="cate-header-nav-item" @click="handleSliderClick('material')">
<text class="item-text">
食材
</text>
</div>
<div if="{
{type==='category'}}" class="cate-header-nav-slider">
<text class="slider-text">
分类
</text>
</div>
<div else class="cate-header-nav-slider move">
<text class="slider-text">
食材
</text>
</div>
</div>
</div>
<comp index="1"></comp>
<cb-search from="cate"></cb-search>
<cb-menu menu-data="{
{filteredMenuData}}" first-item="{
{type==='category'?'热门':'肉类'}}"></cb-menu>
</div>
.css
.cate-container {
flex-direction: column;
}
.cate-header {
width: 100%;
height: 44px;
background-color: #ee742f;
justify-content: center;
align-items: center;
}
.cate-header-nav {
width: 140px;
height: 30px;
border-radius: 30px;
border: 0.5px solid #FFF;
position: relative;
z-index: 1;
}
.cate-header-nav-item {
flex: 1;
justify-content: center;
align-items: center;
height: 30px;
}
.item-text {
font-size: 12px;
color: #FFF;
}
.cate-header-nav-slider {
position: absolute;
left: 0;
border-radius: 30px;
width: 70px;
height: 30px;
background-color: #FFF;
z-index: 0;
justify-content: center;
align-items: center;
transition: left 200ms ease-in;
}
.slider-text {
font-size: 12px;
color: #ee742f;
}
.move {
left: 70px;
}
.js
// @ts-nocheck
import menuData from "../../../common/data/cookbook-category.json"
export default{
data:{
type:'category',
menuData:[],
},
handleSliderClick(type){
this.type = type
},
computed:{
filteredMenuData(){
return this.menuData[this.type]
}
},
onInit(){
this.menuData = menuData.data
}
}
三、菜单功能的实现
在category下创建menu文件夹
.hml
<div class="menu-container">
<div class="menu-tab">
<div
class="menu-tab-item {
{$item === currenTab?'menu-tab-item-active':'menu-tab-item-normal'}}"
for="{
{tabs}}"
@click="handleTabClick($item)"
>
<text class="menu-tab-item-text">
{
{$item}}
</text>
</div>
</div>
<div class="menu-list">
<div class="menu-list-item" for="{
{lists}}">
<text class="menu-list-item-text">
<span>{
{$item}}</span>
</text>
</div>
</div>
</div>
.css
.menu-container {
flex: 1;
border-top: 0.5px solid #CCC;
}
.menu-tab {
width: 100px;
background-color: #f3f3f3;
flex-direction: column;
}
.menu-tab-item {
height: 34px;
justify-content: center;
align-items: center;
width: 100px;
}
.menu-tab-item-text {
font-size: 12px;
font-weight: 100;
height: 100%;
/* align-content: stretch;*/
}
.menu-tab-item-normal {
background-color: #f3f3f3;
}
.menu-tab-item-text-normal {
/* font-size: 12px;*/
/* font-weight: 100;*/
/* height: 100%;*/
/* align-content: stretch;*/
color: #000;
border-bottom: 0;
}
.menu-tab-item-active {
background-color: #FFF;
}
.menu-tab-item-text-active {
font-size: 12px;
font-weight: 100;
height: 100%;
/* align-content: stretch;*/
/* color: #ee742f;*/
/* border-bottom: 2px solid #ee742f;*/
}
.menu-list {
flex: 1;
flex-wrap: wrap;
}
.menu-list-item {
width: 33.333333%;
height: 40px;
justify-content: center;
align-items: center;
}
.menu-list-item-text {
font-size: 12px;
font-weight: bold;
}
.js
export default{
props:['menuData','firstItem'],
data(){
return{
currentTab:this.firstItem
}
},
computed:{
tabs(){
return Object.keys(this.menuData)
},
lists(){
return this.menuData[this.currentTab]
}
},
handleTabClick(currentTab){
this.currentTab = currentTab
},
onReady() {
this.$watch('firstItem', (newValue) => {
this.currentTab = newValue
})
}
}
边栏推荐
- Is it safe for Galaxy Securities to open an account online?
- leetcode刷题:二叉树15(找树左下角的值)
- . Net distributed transaction and landing solution
- Zero cloud new UI design
- 【数字IC验证快速入门】7、验证岗位中必备的数字电路基础知识(含常见面试题)
- Mysql频繁操作出现锁表问题
- Rainbond 5.7.1 支持对接多家公有云和集群异常报警
- DP:树DP
- leetcode刷题:二叉树10(完全二叉树的节点个数)
- Leetcode: binary tree 15 (find the value in the lower left corner of the tree)
猜你喜欢
[quick start of Digital IC Verification] 7. Basic knowledge of digital circuits necessary for verification positions (including common interview questions)
基础篇——配置文件解析
[quick start of Digital IC Verification] 6. Quick start of questasim (taking the design and verification of full adder as an example)
物联网智能家居基本方法实现之经典
leetcode刷题:二叉树10(完全二叉树的节点个数)
零道云新UI设计中
kubernetes资源对象介绍及常用命令(五)-(ConfigMap&Secret)
2022北京眼睛健康用品展,护眼产品展,中国眼博会11月举办
618 "low key" curtain call, how can baiqiushangmei join hands with the brand to cross the "uncertain era"?
微信小程序正则表达式提取链接
随机推荐
Bzoj 3747 poi2015 kinoman segment tree
解决Thinkphp框架应用目录下数据库配置信息修改后依然按默认方式连接
leetcode刷题:二叉树17(从中序与后序遍历序列构造二叉树)
[quick start of Digital IC Verification] 7. Basic knowledge of digital circuits necessary for verification positions (including common interview questions)
Hong Kong stocks will welcome the "best ten yuan store". Can famous creative products break through through the IPO?
基金网上开户安全吗?去哪里开,可以拿到低佣金?
B站UP搭建世界首个纯红石神经网络、基于深度学习动作识别的色情检测、陈天奇《机器学编译MLC》课程进展、AI前沿论文 | ShowMeAI资讯日报 #07.05
解决php无法将string转换为json的办法
Leetcode brush question: binary tree 13 (the same tree)
Practical demonstration: how can the production research team efficiently build the requirements workflow?
ICTCLAS word Lucene 4.9 binding
Go language learning tutorial (16)
.Net分布式事務及落地解决方案
19 Mongoose模块化
model方法
Informatics Olympiad 1337: [example 3-2] word search tree | Luogu p5755 [noi2000] word search tree
处理文件和目录名
CCPC 2021威海 - G. Shinyruo and KFC(组合数,小技巧)
Introduction to dead letter queue (two consumers, one producer)
Process file and directory names