zoukankan      html  css  js  c++  java
  • (三)微信小程序首页的分类功能和搜索功能的实现笔记

    就在昨天,微信宣布了微信小程序开发者工具新增“云开发”功能

    下载最新的开发者工具,现在无需服务器即可实现小程序的快速迭代!

    分类功能和搜索功能的效果图

    1.首页分类功能的实现

    boxtwo方法(.js文件)

    boxtwo: function (e) {
        var index = parseInt(e.currentTarget.dataset.index)
        this.setData({
          HomeIndex: index
        })
      },

    当在首页点击 分类导航时,会触发这个方法,并传回当前点击时的index值。

    这个方法实现的是将.wxml文件传来的index值赋给HomeIndex。

    class="boxtwo-tab-nav {{HomeIndex == 0 ?'on':''}}"

    .wxss样式文件
    .boxtwo-tab-nav{
    display: inline-block;
     20%;
    height: 90rpx;
    line-height: 90rpx;
    border-bottom: 1rpx solid #ededed;
    box-sizing: border-box;
    text-align: center;
    color: black;
    font-size: 30rpx
    }

    这样就实现了首页 当前点击的分类 呈现出 被选中的样式。

    然后在视图层根据HomeIndex的不同,加载对应的数据。
    <view wx:if="{{HomeIndex == 1}}" >
        <block wx:for="{{shareList}}" wx:key="*this">
      <navigator url='../../pages/shareDetail/shareDetail?id={{item.id}}' hover-class="navigator-hover">
          <view class='imgs'>
            <image src="{{item.img}}"  background-size="cover" mode="scaleToFill"></image>
          </view>
          <view class='infos'>
            <view class="title">{{item.title}}</view>
            <view class="date">{{item.cTime}}</view>
          </view>
        </navigator>
    </block>
      </view>
    <navigator></navigator>组件实现的是点击当前文章时传出id到详情页面(detail)。这样就把首页的文章列表和文章的详情页面一一对应起来了。
    detail.js文件
    onLoad: function (options) {
       var that = this
        wx.request({
          url: 'http://localhost:81/weicms/index.php?s=/addon/School/School/getDetail',
          data: {id:options.id},
          header: {
            'content-type': 'application/json'
          },
          success: function (res) {
            wx.setStorage({
              key: 'info',
              data: res.data,
            })
            that.setData({
              info: res.data
            })
          }
        })
      
      }

    2.搜索功能的实现

    .wxml文件

    <view class='search-view'>
        <input class='input' confirm-type="search" maxlength="30" bindinput='wxSearchInput' value='{{keyword}}' bindconfirm='wxSearchFn' bindfocus="wxSerchFocus" bindblur="wxSearchBlur" placeholder='请输入搜索内容'></input>
        <button class='search' bindtap="wxSearchFn" hover-class='button-hover'>搜索</button>
    </view>

    JavaScript indexOf() 方法

       indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。

    key为搜索的关键字,res.data[i].title为首页列表的标题。使用indexOf()方法时,
    当满足了(res.data[i].title.indexOf(key) >= 0)说明输入的关键字在文章列表中
    也有相同的关键字,然后arr.push(res.data[i]),这样就把筛选出来的文章放在了临时数组arr中了
    //搜索方法 key为用户输入的查询字段
      search: function (key) {
        /*console.log('搜索函数触发')*/
        var that = this;
        var newsList = wx.getStorage({
          key: 'newsList',
          success: function (res) {//从storage中取出存储的数据*/
          /*console.log(res)*/
            if (key == '') {//用户没有输入 全部显示
              that.setData({
                newsList: res.data
              })
              return;
            }
            var arr = [];//临时数组 用于存放匹配到的数据
            for (let i in res.data) {
              if (res.data[i].title.indexOf(key) >= 0) {//查找
                arr.push(res.data[i])
              }
            }
            if (arr.length == 0) {
              that.setData({
                newsList:[]
              })
             
            } else {
              that.setData({
                newsList: arr//在页面显示找到的数据
              })
            }
    
          }
        })
        }

    //搜素时触发,调用search: function (key),传入输入的e.detail.value值
    wxSearchInput: function (e) {
    this.search(e.detail.value);

    }
  • 相关阅读:
    Java路径问题终于解决方式—可定位全部资源的相对路径寻址
    易学设计模式看书笔记(2)
    js算法:分治法-棋盘覆盖
    [NIO]dawn之Task具体解释
    C#高级编程五十八天----并行集合
    [Swift通天遁地]九、拔剑吧-(12)创建Preview-Transition图像预览界面
    [Swift通天遁地]九、拔剑吧-(11)创建强大的Pinterest风格的瀑布流界面
    [Swift通天遁地]九、拔剑吧-(10)快速创建美观的聊天界面:可发送文字、表情、图片
    [Swift通天遁地]九、拔剑吧-(9)创建支持缩放、移动、裁切的相机视图控制器
    [Swift通天遁地]九、拔剑吧-(8)创建气泡式页面切换效果
  • 原文地址:https://www.cnblogs.com/colintz/p/9628873.html
Copyright © 2011-2022 走看看