最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

微信小程序?qū)崿F(xiàn)列表分頁功能

 更新時(shí)間:2022年08月24日 11:58:22   作者:四月邇安  
這篇文章主要為大家詳細(xì)介紹了微信小程序?qū)崿F(xiàn)列表分頁功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

微信小程序列表分頁功能(未使用API),供大家參考,具體內(nèi)容如下

概述

主要實(shí)現(xiàn)功能:

1.列表展示
2.上下頁點(diǎn)擊

效果圖:

知識(shí)點(diǎn):wx:for、bindtap、生命周期函數(shù)–監(jiān)聽頁面加載、.filter、取余( % )取整(parseInt(x/y) )函數(shù)

js

data: {
? ? frontPage: false,//上一頁 存在true,不存在false
? ? nextPage: false,//下一頁 存在true,不存在false
? ? pages: 0,//所有頁
? ? thisPages: 0,//當(dāng)前頁
? ? rows: 6,//每頁條數(shù)
? ? total: 0,//總條數(shù)
? ? pageData: [],//本頁顯示的列表數(shù)據(jù)
? ? prizeListItem:[
? ? ? {name: "張三", pic: "../../images/1.png", gift:"小蛋糕"},?
? ? ? {name: "李四", pic: "../../images/2.png", gift:"冰淇淋"},?
? ? ? {name: "陳工", pic: "../../images/3.png", gift:"按摩椅"},?
? ? ? {name: "孫悟空", pic: "../../images/3.png", gift:"桃子"},?
? ? ? {name: "豬八戒", pic: "../../images/2.png", gift:"紅燒肉"},?
? ? ? {name: "薩赫尚", pic: "../../images/1.png", gift:"新衣服"},?
? ? ? {name: "程序員", pic: "../../images/2.png", gift:"電腦"},?
? ? ? {name: "甄姬", pic: "../../images/3.png", gift:"口紅"},
? ? ? {name: "孫悟空", pic: "../../images/3.png", gift:"桃子"},?
? ? ? {name: "豬八戒", pic: "../../images/2.png", gift:"紅燒肉"},?
? ? ? {name: "薩赫尚", pic: "../../images/1.png", gift:"新衣服"},?
? ? ? {name: "程序員", pic: "../../images/1.png", gift:"電腦"},?
? ? ? {name: "甄姬", pic: "../../images/2.png", gift:"口紅"}
? ? ],
? ? myPrize: false,
? ? tab1: '',
? ? tab2: 'selected',
? },
/**
? ?* 生命周期函數(shù)--監(jiān)聽頁面加載
? ?*/
? onLoad: function () {
? ? this.setList();
? },
? // 初始化列表分頁
? setList() {
? ? let that = this;
? ? let thisPages = that.data.thisPages;
? ? let rows = that.data.rows;
? ? let prizeListItem = that.data.prizeListItem;
? ? let pageData = that.data.pageData;
? ? let pages = that.data.pages;
? ? if (pageData !== []){
? ? ? pageData = prizeListItem.filter(function (item, index, prizeListItem) {
? ? ? ? //元素值,元素的索引,原數(shù)組。
? ? ? ? return index >= rows*thisPages && index <= rows*(thisPages+1)-1; ?//初始為0,0 < index < 6-1
? ? ? });
? ? ? let x = 0;
? ? ? let y = prizeListItem.length;
? ? ? if ( y%rows !== 0){
? ? ? ? x = 1
? ? ? };
? ? ? pages = parseInt(y/rows) + x; //所有頁
? ? ? thisPages = thisPages +1; //當(dāng)前頁
? ? ? if ( pages > 1){
? ? ? ? that.setData({
? ? ? ? ? nextPage: true,
? ? ? ? })
? ? ? }
? ? ? that.setData({
? ? ? ? thisPages: thisPages,
? ? ? ? pageData: pageData,
? ? ? ? pages: pages,
? ? ? ? rows: rows,
? ? ? })
? ? }
? },
//點(diǎn)擊下一頁
? clickNext() {
? ? let that = this;
? ? let thisPages = that.data.thisPages;
? ? let prizeListItem = that.data.prizeListItem;
? ? let pageData = that.data.pageData;
? ? let pages = that.data.pages;
? ? let rows = that.data.rows;
? ? pageData = prizeListItem.filter(function (item, index, prizeListItem) {
? ? ? //元素值,元素的索引,原數(shù)組。
? ? ? return index >= rows*thisPages && index <= rows*(thisPages+1)-1; ?
? ? });
? ? thisPages = thisPages + 1;
? ? if ( pages === thisPages){
? ? ? that.setData({
? ? ? ? nextPage: false,
? ? ? })
? ? }
? ? that.setData({
? ? ? thisPages: thisPages,
? ? ? pageData: pageData,
? ? ? frontPage: true,
? ? })
? },
//點(diǎn)擊上一頁
? clickFront() {
? ? let that = this;
? ? let thisPages = that.data.thisPages;
? ? let prizeListItem = that.data.prizeListItem;
? ? let pageData = that.data.pageData;
? ? let rows = that.data.rows;
? ? pageData = prizeListItem.filter(function (item, index, prizeListItem) {
? ? ? //元素值,元素的索引,原數(shù)組。
? ? ? return index >= rows*(thisPages-2) && index <= rows*(thisPages-1)-1; ?
? ? });
? ? thisPages = thisPages - 1;
? ? if ( thisPages === 1){
? ? ? that.setData({
? ? ? ? frontPage: false,
? ? ? })
? ? }
? ? that.setData({
? ? ? thisPages: thisPages,
? ? ? pageData: pageData,
? ? ? nextPage: true,
? ? })
? },

wxml

<view class="prizelist">
? ? ? <view class="info_con">
? ? ? ? <view class="list" wx:for="{{pageData}}">
? ? ? ? ? <image class="list_bg" src="../../images/wi_listbg.png"></image>
? ? ? ? ? <view class="list_head">
? ? ? ? ? ? <image class="list_headpic" src="{{item.pic}}"></image>
? ? ? ? ? ? <view class="list_name">{{item.name}}</view>
? ? ? ? ? </view>
? ? ? ? ? <view class="list_prize">{{item.gift}}</view>
? ? ? ? </view>
? ? ? </view> ??
? ? ? <view class="paging">
? ? ? ? <view class="page_btn">
? ? ? ? ? <view wx:if="{{frontPage}}" bindtap="clickFront">上一頁</view>
? ? ? ? </view>
? ? ? ? <view class="page_num">第{{thisPages}}頁 共{{pages}}頁</view>
? ? ? ? <view class="page_btn">
? ? ? ? ? <view wx:if="{{nextPage}}" bindtap="clickNext">下一頁</view>
? ? ? ? </view>
? ? ? </view>
? ? </view>

wxss

【外框

.con .prizelist{
? width: 100%;
? height: max-content;
? margin-top: 38rpx;
}
.con .prizelist .info_con{
? width: 639rpx;
? height: 787rpx;
? display: inline-block;
}

【list的樣式

.con .prizelist .info_con .list{
? width: 639rpx;
? height: 108rpx;
? position: relative;
? margin: 20rpx 0;
}
.list .wi_prize{
? width: 186rpx;
? height: 69rpx;
? margin: 20rpx 0 0 60rpx;
}
.list .prizeinfo{
? width: 350rpx;
? height: 108rpx;
? float: right;
}
.list .prizeinfo .prize_name{
? font-size: 28rpx;
? color: #87562e;
? line-height: 42rpx;
? margin-top: 20rpx;
}
.list .prizeinfo .prize_state{
? font-size: 20rpx;
? color: #ff2d2d;
? line-height: 25rpx;
}
.list .list_bg{
? width: 639rpx;
? height: 108rpx;
? position: absolute;
? left: 56rpx;
? z-index: -1;
}
.list .list_head{
? height: 100%;
? width: max-content;
? margin-left: 100rpx;
? float: left;
}
.list .list_head .list_headpic{
? border-radius: 50%;
? background-color: rgb(43, 93, 216);
? width: 46rpx;
? height: 46rpx;
? margin: 31rpx 0rpx;
? float: left;
}
.list .list_head .list_name{
? color: #000;
? line-height: 108rpx;
? font-size: 28rpx;
? float: left;
? margin-left: 31rpx;
}
.list .list_prize{
? height: 100%;
? line-height: 108rpx;
? font-size: 28rpx;
? color: #87562e;
? float: right;
}

【上下頁樣式

.con .prizelist .paging{
? width: 580rpx;
? height: 108rpx;
? margin: 30rpx auto;
}
.con .prizelist .paging .page_btn{
? width: 96rpx;
? height: 32rpx;
? font-size: 32rpx;
? font-family: "PingFangSC";
? color: #ffffff;
? line-height: 36rpx;
? float: left;
? margin: auto 23rpx;
}
.con .prizelist .page_num{
? font-size: 24rpx;
? font-family: "PingFangSC";
? color: #ffffff;
? line-height: 36rpx;
? float: left;
? margin: auto 75rpx;
}

結(jié)語

有一個(gè)可有可無的警告:

Now you can provide attr wx:key for a wx:for to improve performance.

解決辦法:添加wx:key屬性,

①使用循環(huán)的 array 中 item 的某個(gè)property,比如 wx:key=“item.id”
此時(shí)數(shù)組的格式應(yīng)為:

?{id: "1", name: "張三", pic: "../../images/1.png", gift:"小蛋糕"},?

②使用數(shù)組的下標(biāo),即 wx:key=“index”

③ wx:key="*this" 我沒太看懂,是

官方文檔說的有一個(gè)經(jīng)歷過的低級(jí)錯(cuò)誤:
錯(cuò)誤:

onLoad: function () {
? ? setList();
? },

改正:

onLoad: function () {
? ? this.setList();
? },

(我都沒眼看了,馬虎或則腦子不清楚的錯(cuò)誤總是次次能碰到——2021年3月9日)

后續(xù)

1.被指出 “第 X 頁 共 X 頁”的margin固定,當(dāng)頁數(shù)增加到雙位數(shù)后,下一頁被擠到下一行了。
方法1(同事腦力成果,擔(dān)待了):修改class為page_name的margin為百分比。

.con .prizelist .page_num{
? margin: auto 75rpx;
}

改為:

.con .prizelist .page_num{
? margin: auto 10%;
}

方法2(我自己的老辦法):給“上一頁”“共 頁”“下一個(gè)”分別定義class:

<view class="paging">
? ? ? ? <view class="up_page" bindtap="up_page" >{{current_page > 1 ? '上一頁' : ''}}</view>
? ? ? ? <view class="down_page" bindtap="next_page">{{current_page < last_page ? '下一頁' : ''}}</view>
? ? ? ? <view class="page_num">第{{current_page}}頁 共{{last_page}}頁</view>
</view>

樣式:

.con .prizelist .paging{
? width: 100%;
? height: 108rpx;
? font-size: 32rpx;
? font-family: "PingFangSC";
? color: #ffffff;
? line-height: 36rpx;
? text-align: center;
}
.con .prizelist .paging .up_page{
? width: 96rpx;
? height: 32rpx;
? float: left;
? margin-left: 72rpx;
}
.con .prizelist .paging .down_page{
? width: 96rpx;
? height: 32rpx;
? float: right;
? margin-right: 72rpx;
}
.con .prizelist .page_num{
? width: 500rpx;
? font-size: 24rpx;
? font-family: "PingFangSC";
? color: #ffffff;
? line-height: 36rpx;
? margin: auto;
}

(時(shí)間:2021年3月22日)

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 微信小程序-form表單提交代碼實(shí)例

    微信小程序-form表單提交代碼實(shí)例

    這篇文章主要介紹了微信小程序-form表單提交,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • 查找頁面中所有類為test的結(jié)點(diǎn)的方法

    查找頁面中所有類為test的結(jié)點(diǎn)的方法

    這篇文章主要介紹了查找頁面中所有類為test結(jié)點(diǎn)的方法,需要的朋友可以參考下
    2014-03-03
  • 深入理解JavaScript定時(shí)機(jī)制

    深入理解JavaScript定時(shí)機(jī)制

    JavaScript的setTimeout與setInterval是兩個(gè)很容易欺騙別人感情的方法,因?yàn)槲覀冮_始常常以為調(diào)用了就會(huì)按既定的方式執(zhí)行, 我想不少人都深有同感
    2010-10-10
  • JS分頁控件 可用于無刷新分頁

    JS分頁控件 可用于無刷新分頁

    今天無意看到了這個(gè)分頁控件,不過使用方法不是很清楚沒有研究,。大家可以自行研究,里面的函數(shù)寫法倒是不錯(cuò),需要內(nèi)容的結(jié)合
    2013-07-07
  • 前端圖片懶加載(lazyload)的實(shí)現(xiàn)方法(提高用戶體驗(yàn))

    前端圖片懶加載(lazyload)的實(shí)現(xiàn)方法(提高用戶體驗(yàn))

    圖片懶加載又稱圖片延時(shí)加載、惰性加載,即在用戶需要使用圖片的時(shí)候加載,這樣可以減少請(qǐng)求,節(jié)省帶寬,提高頁面加載速度,相對(duì)的,也能減少服務(wù)器壓力,下面通過本文給大家分享圖片懶加載lazyload的實(shí)現(xiàn)方法,感興趣的朋友一起看看吧
    2017-08-08
  • 微信小程序全局文件的使用詳解

    微信小程序全局文件的使用詳解

    在小程序開發(fā)時(shí),每個(gè)頁面都對(duì)應(yīng)一個(gè)目錄,每個(gè)目錄又分別有wxml、wxss、js和json四個(gè)文件。詳細(xì)說明可查看后續(xù)文章介紹,本文主要詳解全局文件
    2022-08-08
  • 微信小程序之左右布局的實(shí)現(xiàn)代碼

    微信小程序之左右布局的實(shí)現(xiàn)代碼

    這篇文章主要介紹了微信小程序之左右布局的實(shí)現(xiàn)代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • 拖動(dòng)table標(biāo)題實(shí)現(xiàn)改變td的大小(css+js代碼)

    拖動(dòng)table標(biāo)題實(shí)現(xiàn)改變td的大小(css+js代碼)

    拖動(dòng)列寬的表格table標(biāo)題同時(shí)改變td的大小,本文將以實(shí)例演示為大家呈現(xiàn),感興趣的朋友可以參考下哈,希望對(duì)你學(xué)習(xí)js或者css有所幫助
    2013-04-04
  • JavaScript算法系列之快速排序(Quicksort)算法實(shí)例詳解

    JavaScript算法系列之快速排序(Quicksort)算法實(shí)例詳解

    這篇文章主要介紹了JavaScript算法系列之快速排序(Quicksort)算法實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下
    2016-09-09
  • JS內(nèi)部事件機(jī)制之單線程原理

    JS內(nèi)部事件機(jī)制之單線程原理

    這篇文章主要介紹了JS內(nèi)部事件機(jī)制之單線程原理,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-07-07

最新評(píng)論

黑龙江省| 山西省| 汨罗市| 保定市| 景谷| 康马县| 民权县| 库伦旗| 达尔| 交城县| 屏南县| 上蔡县| 杨浦区| 靖西县| 喀喇| 乐东| 平顶山市| 达州市| 敦煌市| 新昌县| 丹凤县| 庆安县| 天柱县| 五华县| 福建省| 林州市| 高台县| 诸暨市| 泰顺县| 宁南县| 梁平县| 嵊州市| 綦江县| 萨迦县| 开江县| 荃湾区| 莆田市| 鄂尔多斯市| 清涧县| 友谊县| 西和县|