uniapp滑动页面切换和下拉刷新,触底加载更多(swiper + scroll-view)

因为官方文档乱七八糟的,所以自己来总结下

需求:

常见的上方tag标签切换,下方是页面,上面点击切换,下面页面也切换,下方列表有下拉刷新,触底加载更多
因为这两个组件都是固定高度的,所以没办法用页面的触底,
因为有的页面不是列表,所以没办法用uniapp的下拉页面刷新生命周期
所以用uniapp的swiper轮播图来切换,轮播图固定高度,里面列表用 scroll-view来做下拉刷新和触底加载更多

效果图
效果图2

代码:

开头有用到uviewUI框架的u-navbar头部,不需要的可以自己删了

<template><view class="pastureWater"><u-navbar title="牧场用水管理" bgColor="#4f9a47" :placeholder="true" /><view class="tagList"><view class="item" v-for="(item, index) in tagList" :key="index" :class="{active: tagActive === index}"@click="tagActive = index"><text>{{item}}</text></view></view><view class="swiperBox"><swiper class="swiper" :current="tagActive" @change="swiperChange"><swiper-item class="swiperItem"><view class="search"><view class="formItem"><text>监管类型:</text><text>生活区</text></view><view class="formItem"><text>牛舍:</text><text>1-1</text></view></view><div class="listBox"><scroll-view class="list" scroll-y="true" :lower-threshold="0" :throttle="false":refresher-enabled="true" :refresher-triggered="triggered" refresher-background="#f8f4f3"@refresherrefresh="refresherrefresh" @scrolltolower="scrolltolower"><view class="item" v-for="(item, index) in 2" :key="index"><view class="itemList"><view class="cell"><text>设备编号:232436020043</text></view><view class="cell"><text>设备名称:1号牛舍电表</text></view><view class="cell"><text>当前总电能:8320.4</text></view><view class="cell"><text>时间:2024-01-09 12:12:12</text></view><view class="cell"><text>在线状态:在线</text></view></view></view></scroll-view></div></swiper-item><swiper-item class="swiperItem"><view>数据分析</view></swiper-item><swiper-item class="swiperItem"><view>历史数据</view></swiper-item></swiper></view></view>
</template><script>export default {data() {return {tagList: ['用水设备', '数据分析', '历史数据'],tagActive: 0,triggered: false,deviceList: [],historicalDataList: [],}},onLoad() {},methods: {scroll(item) {console.log(item);},swiperChange(info) {this.tagActive = info.target.current},// 触底加载更多scrolltolower() {console.log('触底加载更多');},// 下拉刷新refresherrefresh() {console.log('下拉刷新');this.triggered = true;setTimeout(() => {this.triggered = false;}, 3000)},}}
</script><style lang="scss" scoped>.pastureWater {height: 100vh;display: flex;flex-direction: column;background-color: #f8f4f3;/deep/ uni-text.u-icon__icon.uicon-arrow-left {color: #fff !important;}/deep/ .u-line-1.u-navbar__content__title {color: #fff;}.tagList {display: flex;height: 80rpx;background-color: #fff;margin-bottom: 16rpx;.item {width: 100%;height: 100%;display: flex;justify-content: center;align-items: center;border-bottom: 4rpx solid transparent;&.active {color: #9dbc67;border-bottom: 4rpx solid #9dbc67;}}}.swiperBox {flex: 1;display: flex;flex-direction: column;.swiper {height: 100%;.swiperItem {height: 100%;display: flex;flex-direction: column;padding: 0 20rpx;.search {display: flex;.formItem {height: 76rpx;width: 50%;display: flex;align-items: center;padding: 0 20rpx;text {display: flex;align-items: center;justify-content: center;padding: 0 10rpx;height: 60rpx;line-height: 1.05;font-size: 28rpx;&:last-child {flex: 1;background-color: #fff;border-radius: 5rpx;}}}}.listBox {height: calc(100% - 76rpx);.list {height: 100%;.item {margin-bottom: 16rpx;border-radius: 10rpx;padding: 20rpx 20rpx 10rpx;background-color: #fff;&:last-child {margin-bottom: 0;}.itemList {display: flex;flex-wrap: wrap;.cell {width: 50%;font-size: 24rpx;color: #000;margin-bottom: 10rpx;}}}}}}}}}
</style>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/618840.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

6.2 声音编辑工具GoldWave5简介(6)

3&#xff0e;选择【选项】|【控制器属性】命名或单击“控制器”面板上的“设置控制器属性”按钮&#xff0c;打开“控制器属性”对话框&#xff0c;将“音量”选项卡中的“麦克风”选项打上勾&#xff0c;使GoldWave只能录制来自麦克风的声音。如果要录制电脑内部的声音&#…

聊天机器人之接收实时信息实现(二)

准备工作 如果没有准备好环境的请看 前期环境准备 这里默认已经注入成功并且已经登录好了账号。 具体实现 实现原理 通过本地搭建一个web服务&#xff0c;来接收一个POST请求&#xff0c;这个请求中就会涵盖实时的数据&#xff0c;包括昵称、消息内容、消息类型之类的。 p…

Head First Design Patterns -工厂模式

什么是工厂模式 工厂方法模式定义了一个创建对象的接口&#xff0c;但由子类来决定要实例化那个类。工厂方法让类把实例化推迟到了子类。 为什么要有工厂模式 书中以pizza店制作pizza为例子&#xff0c;假设不用工厂模式&#xff0c;在制作pizza阶段我们需要这样去实例化类&am…

回声状态网络(Echo State Networks,ESN)详细原理讲解及Python代码实现

回声状态网络&#xff08;Echo State Networks,ESN&#xff09;详细讲解及Python代码实现 1 基本概念 回声状态网络是一种循环神经网络。ESN 训练方式与传统 RNN 不同。网络结构如下图&#xff1a; &#xff08;1&#xff09;储层&#xff08;Reservoir&#xff09;&#x…

vue中使用js-doc

安装依赖 安装vue-template-compiler npm install ​vue-template-compiler​npm install ​vue-template-compiler​ 安装minami npm install minami 安装js-doc npm install js-doc 根目录下创建 .jsdoc.conf.json 内容&#xff1a; {"tags": {"all…

在Linux中创建文件的多种方法

目录 前言1 使用重定向符号 ">"2 使用文本编辑器 vi/vim3 使用 nano4 使用 echo5 使用 touch6 使用 printf7 使用 head8 使用 cat9 使用 tail10 使用 truncate结语 前言 在Linux系统中&#xff0c;文件的创建是日常操作中不可避免的一部分。无论是创建空文件、编…

解决MPICH的GPU初始化失败:一次深入探索

今天来分享“MPICH&#xff1a;MPII_Init_thread(222): gpu_init failed”这个问题的解决方式 文章目录 前言问题原因解决方案 前言 如果在安装MPICH的时候没有注意要一些选项&#xff0c;那么当使用mpicxx mpi_send.cpp -o send && mpirun -n 2 ./send进行编译输出的…

图片特效/增强GUI程序

程序下载地址&#xff1a;mendianyu/pictureConvert: 图片特效/增强GUI程序&#xff0c;借助百度接口实现人像动漫化&#xff0c;模糊图片变清晰等等功能 (github.com) 图片特效/增强GUI程序 借助百度接口实现人像动漫化&#xff0c;模糊图片变清晰等等功能 程序介绍 运行Ima…

LIS系统:样本采集、检验、分析、查看报告

检验科LIS系统是实验室信息管理系统&#xff0c;主要用于实验室检验工作流程管理、病人信息管理、检验结果查询、统计和报表打印等功能。它采用智能辅助功能&#xff0c;自动接收检验数据、打印检验报告&#xff0c;并保存检验信息的工具。同时&#xff0c;可根据实验室需要实现…

opencv(C++)基础用法

文章目录 前言一、opencv (C)图片基本操作1.1 读取图片并显示1.2 颜色转换1.3 图像filtering1.4 形状调整1.5 绘制 二、读取视频文件并显示三、RTSP 视频流四. 人脸检测总结 前言 学习笔记 一、opencv (C)图片基本操作 1.1 读取图片并显示 #include "opencv2/opencv.hp…

二、Java中SpringBoot组件集成接入【MySQL和MybatisPlus】

二、Java中SpringBoot组件集成接入【MySQL和MybatisPlus】 1.MySQL和MybatisPlus简介2.maven依赖3.配置1.在application.yaml配置中加入mysql配置2.新增Mybatis-Plus配置类 4.参考文章 1.MySQL和MybatisPlus简介 MySQL是一种开源的关系型数据库管理系统&#xff0c;被广泛应用…

Python——猜猜心里的数字(1)

首先呢&#xff0c;我们自定义一个数字&#xff0c;然后让对方猜一猜是否能猜中&#xff0c;接下来我们以10为例&#xff0c;给对方三次机会。 num10 if int(input("请猜一个数字:"))num:print("恭喜第一次就猜对了") elif int(input("猜错了&#x…

每日一题——LeetCode1128.等价多米诺骨牌对的数量

先尝试暴力解法&#xff1a; var numEquivDominoPairs function(dominoes) {var count0for(let i0;i<dominoes.length-1;i){for(let ji1;j<dominoes.length;j){if((dominoes[i][0]dominoes[j][0] && dominoes[i][1]dominoes[j][1]) || (dominoes[i][0]dominoes…

Mac下载Navicat premium提示文件损坏的解决方案

引用&#xff1a;https://blog.csdn.net/weixin_44898291/article/details/120879508 sudo xattr -r -d com.apple.quarantine

js:使用canvas画一个半圆

背景 需求需要画一个半圆&#xff0c;或者多半圆&#xff0c;其实一下子就能想到 canvas 中的圆弧&#xff0c;核心使用 context.arc context.arc(x,y,r,sAngle,eAngle,counterclockwise)接下来我们看看示例 例一 <!DOCTYPE html> <html lang"en"> &…

【野火i.MX6NULL开发板】GCC 和 Hello World

0、前言 参考资料&#xff1a; 《野火 Linux 基础与应用开发实战指南基于 i.MX6ULL 系列》PDF 第23章 1、教程

2024美赛数学建模思路 - 复盘:校园消费行为分析

文章目录 0 赛题思路1 赛题背景2 分析目标3 数据说明4 数据预处理5 数据分析5.1 食堂就餐行为分析5.2 学生消费行为分析 建模资料 0 赛题思路 &#xff08;赛题出来以后第一时间在CSDN分享&#xff09; https://blog.csdn.net/dc_sinor?typeblog 1 赛题背景 校园一卡通是集…

Linux学习记录——사십이 高级IO(3)--- Poll型服务器

文章目录 1、认识poll接口2、实现3、特点 1、认识poll接口 #include <poll.h> int poll(struct pollfd *fds, nfds_t nfds, int timeout);// pollfd结构 struct pollfd {int fd; /* file descriptor */short events; /* requested events */short revents; /* returned…

BitMap源码解析

文章目录 前言数据结构添加与删除操作 JDK中BitSet源码解析重要成员属性初始化添加数据清除数据获取数据size和length方法集合操作&#xff1a;与、或、异或优缺点 前言 为什么称为bitmap&#xff1f; bitmap不仅仅存储介质以及数据结构不同于hashmap&#xff0c;存储的key和v…

5.3 Verilog 带参数例化

5.3 Verilog 带参数例化 分类 Verilog 教程 关键词&#xff1a; defparam&#xff0c;参数&#xff0c;例化&#xff0c;ram 当一个模块被另一个模块引用例化时&#xff0c;高层模块可以对低层模块的参数值进行改写。这样就允许在编译时将不同的参数传递给多个相同名字的模块…