微信小程序使用weui构建搜索栏(searchbar)+导航(navbar)

摘要:
首先需要在lib目录中添加weui.wxss。searchbar和navbar结合主要解决两者的层次问题,即搜索框输入时,下方的检索结果能够覆盖住navbar。下面就开始发码啦:wxml部分:0}}"bindtap="clearInput"˃搜索˂viewclass="weui-search-bar__cancel-btn"hidden="{{!

首先需要在lib目录中添加weui.wxss。searchbar和navbar结合主要解决两者的层次问题,即搜索框输入时,下方的检索结果能够覆盖住navbar。下面就开始发码啦:

(1)wxml部分:

<view class="page">
    <view>
      <view class="page__bd">
        <view class="weui-search-bar">
            <view class="weui-search-bar__form">
                <view class="weui-search-bar__box">
                    <icon class="weui-icon-search_in-box"type="search"size="14"></icon>
                    <input type="text"class="weui-search-bar__input"placeholder="搜索"value="{{inputVal}}"focus="{{inputShowed}}"bindinput="inputTyping" />
                    <view class="weui-icon-clear"wx:if="{{inputVal.length > 0}}"bindtap="clearInput">
                        <icon type="clear"size="14"></icon>
                    </view>
                </view>
                <label class="weui-search-bar__label"hidden="{{inputShowed}}"bindtap="showInput">
                    <icon class="weui-icon-search"type="search"size="14"></icon>
                    <view class="weui-search-bar__text">搜索</view>
                </label>
            </view>
            <view class="weui-search-bar__cancel-btn"hidden="{{!inputShowed}}"bindtap="hideInput">取消
            </view>
        </view>
        <view class="weui-cells searchbar-result searchBarCss"wx:if="{{inputVal.length > 0}}">
          <!--搜索列表 -->
          <view class="weui-cell__bd"wx:for="{{list}}"wx:key="key">
            <navigator url=""class="weui-cell"hover-class="weui-cell_active"data-id='{{item.id}}'data-name='{{item.name}}'bindtap='btn_name'>
                <view class="weui-cell__bd">
                    <view>{{item.name}}</view>
                </view>
            </navigator>
          </view>
        </view> 
    </view>
    </view>
    <view class="page__bd">
        <view class="weui-tab">
            <view class="weui-navbar contentCss">
                <block wx:for="{{tabs}}"wx:key="*this">
                    <view id="{{index}}"class="weui-navbar__item {{activeIndex == index ? 'weui-bar__item_on' : ''}}"bindtap="tabClick">
                        <view class="weui-navbar__title">{{item}}</view>
                    </view>
                </block>
                <view class="weui-navbar__slider"style="left: {{sliderLeft}}px; transform: translateX({{sliderOffset}}px); -webkit-transform: translateX({{sliderOffset}}px);"></view>
            </view>
            <view class="weui-tab__panel">
                <view class="weui-tab__content"hidden="{{activeIndex != 0}}">
                 
                </view>
                <view class="weui-tab__content"hidden="{{activeIndex != 1}}">选项二的内容</view>
            </view>
        </view>
    </view>
</view>

(2)js部分:(注意:注释部分主要是传递到后台做的相应的检索筛选结果,返回值是已经检索完成后的结果集合JsonArray格式)

var sliderWidth = 96; //需要设置slider的宽度,用于计算中间位置
var app =getApp();

Page({
  data: {
    tabs: ["能效看板", "设备看板"],
    activeIndex: 0,
    sliderOffset: 0,
    sliderLeft: 0,
    //搜索框状态
    inputShowed: true,
    //显示结果view的状态
    viewShowed: false,
    //搜索框值
    inputVal: "",
    //搜索渲染推荐数据
list: [],
  },
  onLoad: function() {
    var that = this;
    wx.getSystemInfo({
      success: function(res) {
        that.setData({
          sliderLeft: (res.windowWidth / that.data.tabs.length - sliderWidth) / 2,
          sliderOffset: res.windowWidth / that.data.tabs.length *that.data.activeIndex
        });
      }
    });
  },
  tabClick: function(e) {
    this.setData({
      sliderOffset: e.currentTarget.offsetLeft,
      activeIndex: e.currentTarget.id
    });
  },
  showInput: function() {
    this.setData({
      inputShowed: true});
  },
  //隐藏搜索框样式
  hideInput: function() {
    this.setData({
      inputVal: "",
      inputShowed: false});
  },
  //清除搜索框值
  clearInput: function() {
    this.setData({
      inputVal: ""});
  },
  //键盘抬起事件
  inputTyping: function(e) {
    console.log(e.detail.value)
    var that = this;
    if (e.detail.value == '') {
      return;
    }
    that.setData({
      viewShowed: false,
      inputVal: e.detail.value
    });

    /*wx.request({
      url: "*****",
      data: { "openid": "*****", "name": e.detail.value },
      method: 'GET',
      header: {
        'Content-type': 'application/json'
      },
      success: function (res) {
        that.setData({
          list: res.data
        })
      }
    });*/
//随便写几个单词作为检索后的结果集
that.setData({ list: [{ "deviceId": "001", "name": "abcaaaaaaaa"}, { "deviceId": "002", "name": "bcdaaaaaaaaa"}, { "deviceId": "003", "name": "cde"}, { "deviceId": "004", "name": "def"}, { "deviceId": "005", "name": "efg"}] }) }, //获取选中推荐列表中的值 btn_name: function(res) { var that = this; that.hideInput();console.log('name: ' +res.currentTarget.dataset.name);}, });

(3)wxss部分:

@import '../../lib/weui.wxss';
page,
.page,
.page__bd{height:100%;background-color:white;
}.page__bd{padding-bottom:0;
}.weui-tab__content{padding-top:60px;text-align:center;
}.searchbar-result{margin-top:0;font-size:14px;
}.searchbar-result:before{display:none;
}.weui-cell{padding:12px 15px 12px 35px;
}.searchBarCss{position:fixed;width:100%;background-color:white;z-index:10;
}.contentCss{width:100%;position:fixed;margin-top:100rpx;z-index:1;
}

微信小程序使用weui构建搜索栏(searchbar)+导航(navbar)第1张微信小程序使用weui构建搜索栏(searchbar)+导航(navbar)第2张

免责声明:文章转载自《微信小程序使用weui构建搜索栏(searchbar)+导航(navbar)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇ArcGIS地图打印设置window10设置开机自启动exe的三种方式(亲测有效)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

微信小程序官方示例 官方weui-wxss下载于安装 详解

1.小程序示例源码:https://github.com/wechat-miniprogram/miniprogram-demo 2.微信 weui下载地址:https://github.com/weui/weui-wxss/ weui用微信开发者工具打开步骤。 新先小程序,目录选择dist。appid可以选择测试 对WEUI css详解...

微信WeUI入门

为帮助网页开发者实现与微信客户端一致的视觉体验,并降低设计和开发成本,微信团队推出了网页设计样式库:WeUI。 该样式库目前包含 button (按钮)、cell (单元格)、toast (浮层提示)、dialog (对话框)等网页常用的各式元素,并已在 GitHub 上开源 开发者只需三步,就能在自己的网页上轻松实现按钮、浮层提示等功能:1. 根据文档说...

Vue一些基本操作技巧

1.Vue删除data列表中的项 下为异步删除购物车,并清空当前条目 1 cartDel: function(item) { 2 let _this = this; 3 _this.confirm("确认删除吗?", function() { 4 _this.axios.post(cartD...

jQuery WeUI 组件下拉刷新和滚动加载的实现

最近在做手机版使用到了下拉刷新和滚动加载,记录一下实现过程: 一、引入文件 <link rel="stylesheet" href="http://t.zoukankan.com/Content/jqueryweui/weui.min.css"> <link rel="stylesheet" href="http://t.zoukanka...

前端简历

简历的本质在写简历之前,我们必须清楚的了解一件事情,那就是简历是什么?它不是人生履历,不是项目清单,也不是技能大放送。简历的存在只有一个目的 —— 帮你约到面试。只要能达到这个目的,简历可以是一段视频,一个开源项目,一张照片,甚至是一行字,比如: I wrote javascript 当然,绝大部分简历的形式,就是我们所熟知的,是一篇文章。即使你通过其他方...

移动端和web端前端UI库—Frozen UI、WeUI、SUI Mobile

web http://www.pintuer.com/ 拼图 http://www.h-ui.net/ http://www.layui.com/ 很厉害的一个个人产品 http://amazeui.org/ 这也是一个 mui.com 这个也是一个不错的 Frozen UI 自述:简单易用,轻量快捷,为移动端服务的前端框架。 主页:http://fr...