微信小程序15 搜索框和tab项的结构与样式,无功能

一般来说首页上都会有搜索的功能,那么我们来加个搜索框试试

在newlist上继续操作

 

简单搜索框的布局和样式

页面上

<view class="headClass">
<input type="text" placeholder="请输入"></input>
</view>

但是这样太丑了,完善一下样式

.headClass{
  background-color: silver;
  height: 40px;
  overflow: hidden;
}
.headClass input{
  width: 80%;
  background-color: white;
  color: black;
  margin: 10px auto auto auto;
  border-radius: 5px;
 
font-size: 12px;
padding-left: 5px;
padding-right: 5px;

}

样式这个东西不经常写前端的可能不太熟,但是简单的一些样式效果、布局啥的百度一下都能查到,一般来说也不会考虑特别复杂的样式。

稍微解释一下,按顺序。

.headClass 设置了 背景色,高度,overflow控制的是高度的溢出效果,配合input里的 margin-top 来让输入框处于view的中间。

.headClass input 设置了宽度,背景色,文字颜色,margin 是 简写的 分别是 top,left,right,buttom的元素距离,

  border-radius 是让输入框是圆角好看些,

  设置文本字体大小为12px

  最后设置左右填充5px,这个就类似上面margin的详细写法,分别是设置left和right部分,看起来比较直观点。

效果,虽然难看但是是我们手动写的哈哈哈哈。

 

Tab切换

除了搜索框,我们在很多网站,app,小程序都见过Tab切换的功能。

在html基本都是用标签ul>li实现,但是小程序里可没这个

一般用view+text

还是在newlist上添加

<view class="tabClass">
  <text>关注</text>
  <text>推荐</text>
  <text>文章</text>
  <text>视频</text>
</view>

都挤在一块了,完善样式让它好看点。

.tabClass{
  font-size: 16px;
  line-height: 30px;
  border-bottom: 1px solid silver;
}

.tabClass定义了字体大小,行高,以及下边框的样式

text也需要控制样式

.tabClass text{
  margin-left: 11%;
  font-weight: bold;
}

.tabClass text 设置了 text标签左侧间距,按百分比是考虑不同的手机屏幕宽度(其实这种设置都是按百分比比较好,示例就随意了,想用啥用啥),然后字体加粗

一般来说,我们选中的tab项,需要有个高亮提示,因此再加一个样式

.tabClass text.select{
  color: red;
}

限定必须是 带 select的字体变成红色

同时给第一个text加上class=select 就行,表示默认显示 “关注”,这里不写了。

效果如图

 

切换事件

 加上切换效果

页面加上方法,参数,和控制代码

<view class="tabClass">
  <text class="{{selectIndex==1?'select':''}}" bind:tap="selectItem" data-itemIndex="1">关注</text>
  <text class="{{selectIndex==2?'select':''}}" bind:tap="selectItem" data-itemIndex="2">推荐</text>
  <text class="{{selectIndex==3?'select':''}}" bind:tap="selectItem" data-itemIndex="3">文章</text>
  <text class="{{selectIndex==4?'select':''}}" bind:tap="selectItem" data-itemIndex="4">视频</text>
</view>

js中data增加一个selectIndex变量,默认值是 1,增加方法

  selectItem(e){
    this.setData({
      selectIndex: e.currentTarget.dataset.itemindex
    });
  }

这样切换时text里的文字会变红。

 

posted @ 2023-08-08 15:01  luytest  阅读(315)  评论(0编辑  收藏  举报