使用uniapp.pageScrollTo方法进行页面滚动
先看看是不是你想要的:

需求:
有个填写数据的单子在提交的时候,会对必填项做校验,如果必填项没有数据的话,必填项校验生效给出提示,并且页面滚动到第一个需要填写数据的地方。
开发:
因为这个需求是后续增加的,那也不可能改变样式结构,那就在原来的基础上去写吧!
首先想到是用uniapp的内置方法pageScrollTo,这个方法可以让页面滚动到指定的位置,比较合适。
开始上手:
使用的vue3+js写法:


uni.pageScrollTo的参数:

selector使用子元素选择器:(在第二个view标签增加scrlloClass、第三个view标签增加scrollClass1类名)
-
子元素选择器:
.the-parent > .the-child
上代码:
const submit = () => {
// form表单绑定的是ref="form",因此使用使用form.value.validate方法对表单进行校验form.value.validate().then(res => {// 成功后的执行方法,即必填项都已经填写了}).catch(err => {// 失败后的方法,即有必填项没有填写// 输出的是必填项未填写的数据信息console.log('err', err);// 上图中的form表单是有三个view标签,每个view标签中有多个uv-form-item标签,list数组是将第二个和第三个view标签的必填项(每个form-item标签上prop的字段)列举下来let list = ["a", 'b', "c", "d", "e", "f", "g", "h"]// 设置标签滚动位置let scrollNum = undefined// scrollObj是uni.pageScrollTo方法的参数,本文一共涉及到下面三个选项let scrollObj = {// scrollTop: 0, // 指定滚动到离顶部的距离// duration: 500, // 滚动动画的时长// selector: `.scrollClass > .uv-form-item:nth-child(${scrollNum})` // 指定滚动的元素duration: 500,}// 先判断未填写的必填项中是否有name字段,没有的话接着走if (err[0].field !== 'name') {try { // 使用try catch中断forEach循环list.forEach((e, i) => {console.log('中断forEach');if (e === err[0].field) {scrollNum = i + 1 // 指定标签元素(nth-child是从1开始)throw e // 抛给catch}})} catch (e) {scrollObj.selector = `.scrollClass > .uv-form-item:nth-child(${scrollNum})`if (e === 'name') {// 上图中的form表单是有三个view标签,给第三个form-item标签增加一个scrollClass1类名scrollObj.selector = `.scrollClass1 > .uv-form-item:nth-child(1)`}}console.log('scrollNum', scrollNum);} else {// 有name字段的话,将scrollTop设置为0,及滚动到页面顶部(第一个view标签,见gif动图的第一块区域)scrollObj.scrollTop = 0}uni.pageScrollTo(scrollObj);})}
问题解决无非就是获取必填项未填写的数组(下文称为arr),及validate方法的catch方法中的err,将必填项的字段标识放到一个新数组里面,拿到arr的第一项的field(第一个必填项的字段的标识),循环新数组,如果新数组每一项和arr的第一项的field相等的话,拿到该项索引,索引加1,用于确定滚动到该标签。
相关文章:
使用uniapp.pageScrollTo方法进行页面滚动
先看看是不是你想要的: 需求: 有个填写数据的单子在提交的时候,会对必填项做校验,如果必填项没有数据的话,必填项校验生效给出提示,并且页面滚动到第一个需要填写数据的地方。 开发: 因为这个…...
寒武纪实现高维向量的softmax进阶优化和库函数对比
关于寒武纪编程可以参考本人之前的文章添加链接描述,添加链接描述,添加链接描述 实验证明,axis=0和axis=-1的时候,手写softmax速度可以和库函数媲美,甚至于更甚一筹。 src/softmax.mlu #include <bang.h> #include...
我的世界服务器-高版本服务器-MC服务器-生存服务器-RPG服务器-幻世星辰
生存为主,RPG乐趣为辅,重视每位玩家的建议,一起打造心目中的服务器,与小伙伴一起探险我的世界! 服务器版本: 1.18.2 ~ 1.20.4 Q群: 338238381 服务器官网: 星辰毛毛雨-Minecraft高版本生存服务器我的世界…...
倒装COB显示屏与传统SMD显示屏安装方式有哪些不同?
COB显示屏与传统SMD显示屏是商业显示领域中非常重要的两种载体,在前面的文章当中我们为大家阐述了倒装COB显示屏的技术特点,今天跟随COB显示屏厂家深圳市中品瑞科技一起来看看,COB显示屏的安装与传统LED显示屏的安装有哪些不同? 一…...
elasticsearch重置密码
0 案例背景 Elasticsearch三台集群环境,对外端口为6200,忘记elasticsearch密码,进行重置操作 注:若无特殊说明,三台服务器均需进行处理操作 1 停止es /rpa/bin/elasticsearch.sh stop 检查状态 ps -ef|grep elast…...
微信小程序写一个可以滚动虚拟列表(瀑布流),减少dom渲染的优化,解决内存问题。
为什么要写这个? 因为在写小程序的时候首页功能比较多,造成渲染的dom有很多,一直setdata跳转到其他页面或者一直滑动就会卡顿,白屏。官方文档上那个不适用于瀑布流。官方文档 理解 刚开始在写这个的时候,就在想微信…...
人工与智能系统之间的交互方式
人工与智能系统之间的交互方式 #mermaid-svg-xSsFZWak2bsyV0un {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-xSsFZWak2bsyV0un .error-icon{fill:#552222;}#mermaid-svg-xSsFZWak2bsyV0un .error-text{fill:#5522…...
【运维】如何在Ubuntu中设置一个内存守护进程来确保内存不会溢出
文章目录 前言增加守护进程1. 编写监控脚本2. 创建 systemd 服务文件3. 启动并启用服务4. 验证服务是否运行注意事项 如何修改守护进程1. 修改监控脚本2. 重新加载并重启服务3. 验证服务是否运行总结 如何设置一个日志文件来查看信息1. 修改监控脚本以记录日志方法一࿱…...
调用基类的纯虚函数,如何知道纯虚函数会调用哪个派生类(子类)中的实现。
在 C 中,调用基类的纯虚函数实际上是通过运行时多态性来决定调用哪一个派生类的实现。这种机制是通过虚函数表(vtable)和虚函数指针(vptr)实现的。下面我们来详细探讨一下这个过程。 虚函数表和虚函数指针 虚函数表&a…...
塑造卓越企业家IP:多维度视角下的策略解析
在构建和塑造企业家IP的过程中,我们需要从多个维度进行考量,以确保个人品牌能够全面、立体地展现企业家的独特魅力和价值。以下是从不同角度探讨如何做好一个企业家IP的策略。 一、从个人特质出发 深入了解自我:企业家需要清晰地认识到自己的…...
Rust 跨平台-Android 和鸿蒙 OS
1. 安装 rustup rustup 是 Rust 的安装和版本管理工具 $ curl --proto https --tlsv1.2 https://sh.rustup.rs -sSf | sh 该命令会安装 rusup 和最新的稳定版本的 Rust;包括: rustc Rust 编译器,用于将 Rust 代码编译成可执行文件或库。 ca…...
Typora导出为Word
文章目录 一、场景二、安装1、网址2、解压并验证 三、配置四、重启Typora 一、场景 在使用Typora软件编辑文档时,我们可能需要将其导出为Word格式文件 当然我们可以直接在菜单里进行导出操作 文件-> 导出-> Word(.docx) 如果是第一次导出word文件࿰…...
数据库被后台爆破如何解决?
在数字化时代,数据库安全成为企业与组织不容忽视的关键环节。其中,“后台爆破”攻击,即通过自动化工具尝试大量的用户名和密码组合,以非法获取数据库访问权限,是常见的安全威胁之一。本文将详细介绍如何识别、防御并解…...
php7.4源码安装dbase7.1.1扩展
安装PHP开发工具 首先,你需要安装PHP开发工具,包括php-devel(或php7.4-devel,取决于你的PHP版本)和其他编译工具。 bash sudo yum install php7.4-devel gcc make 注意:如果你使用的是不同的PHP版本&#…...
OkHttp的源码解读1
介绍 OkHttp 是 Square 公司开源的一款高效的 HTTP 客户端,用于与服务器进行 HTTP 请求和响应。它具有高效的连接池、透明的 GZIP 压缩和响应缓存等功能,是 Android 开发中广泛使用的网络库。 本文将详细解读 OkHttp 的源码,包括其主要组件…...
08:结构体
结构体 1、为什么需要结构体2、如何定义结构体3、怎么使用结构体变量3.1、赋值和初始化3.2、结构体变量的输出 1、为什么需要结构体 为了表示一些复杂的事物,而普通的基本类型无法满足实际要求。什么叫结构体 把一些基本类型数据组合在一起形成的一个新的数据类型&…...
喜讯!安全狗荣获“2023年网络安全技术支撑优秀单位”称号
6月6日,由中共厦门市委网络安全和信息化委员会办公室(以下简称“厦门市委网信办”)主办的2023年网络安全技术支撑优秀单位颁奖仪式在厦门成功举行。 作为国内云原生安全领导厂商,安全狗受邀出席此次活动。 会上,安全狗…...
android里面json操作
1.读取assets下面xzhd/aikit/pck.json String json = null; try { InputStream is = activity.getAssets().open(aikitPathInData+"xzhd/aikit/pck.json"); int size = is.available(); byte[] buffer = new byte…...
MATLAB的.m文件与Python的.py文件:比较与互参
simulink MATLAB的.m文件与Python的.py文件:比较与互参相似之处**1. 基本结构****2. 执行逻辑****3. 可读性和维护性** 差异性**1. 语法特性****2. 性能和应用****3. 开发环境** 互相学习的可能性结论 MATLAB的.m文件与Python的.py文件:比较与互参 在编…...
武汉星起航:自运营团队精准把握亚马逊红利,引领跨境电商新潮流
在全球化的浪潮下,跨境电商行业蓬勃发展,为众多企业带来了前所未有的机遇。武汉星起航电子商务有限公司便是其中的佼佼者,其自运营团队凭借对亚马逊平台的深入了解和丰富的运营经验,成功抓住了亚马逊的流量红利,为公司…...
Vue中实现动态标签页的切换优化与状态管理
1. 动态标签页的核心需求与实现思路 在后台管理系统这类多页面应用中,动态标签页几乎是标配功能。想象一下你正在使用某电商后台,同时开着商品管理、订单处理和用户分析三个页面,这时候标签页的流畅切换和状态保持就显得尤为重要。 我经历过一…...
告别手动调参!模糊PID如何让直流电机在负载突变时稳如泰山?
模糊PID控制:让直流电机在负载突变时稳如泰山的实战指南 引言:工业自动化中的电机控制痛点 在自动化产线上,直流电机突然遭遇负载变化时,你是否也经历过这样的场景?——机械臂正在精准抓取工件,突然因为物料…...
nli-distilroberta-baseAI应用:心理健康聊天机器人对话逻辑连贯性监测
NLI DistilRoBERTa Base AI应用:心理健康聊天机器人对话逻辑连贯性监测 1. 项目概述 心理健康聊天机器人正成为越来越多人寻求心理支持的重要工具。然而,这类对话系统面临一个关键挑战:如何确保对话内容的逻辑连贯性?这正是nli-…...
3个关键步骤掌握BetaFlight黑匣子日志分析:从新手到专家
3个关键步骤掌握BetaFlight黑匣子日志分析:从新手到专家 【免费下载链接】blackbox-log-viewer Interactive log viewer for flight logs recorded with blackbox 项目地址: https://gitcode.com/gh_mirrors/bl/blackbox-log-viewer BetaFlight Blackbox Log…...
基于人工电场搜索智能优化算法的水库发电和供水优化调度
基于人工电场搜索智能优化算法的水库发电和供水优化调度; 代码为MATLAB编写,可直接运行; 含有实例数据,点击即可运行,替换成自己数据点击即可出结果,如图。在水库管理中,实现发电和供水的优化调…...
终极Windows音频路由指南:如何实现多设备音频分离的专业方案
终极Windows音频路由指南:如何实现多设备音频分离的专业方案 【免费下载链接】audio-router Routes audio from programs to different audio devices. 项目地址: https://gitcode.com/gh_mirrors/au/audio-router 你是否曾经遇到过这样的困扰:想…...
5步构建智能医疗预约系统:91160-cli全流程实战指南
5步构建智能医疗预约系统:91160-cli全流程实战指南 【免费下载链接】91160-cli 健康160全自动挂号脚本 项目地址: https://gitcode.com/gh_mirrors/91/91160-cli 医疗资源紧张导致的挂号难题,让无数患者在凌晨守候却依然一号难求。如何突破人工抢…...
快速体验Qwen3-ASR-0.6B:上传音频秒出文字,支持52种语言
快速体验Qwen3-ASR-0.6B:上传音频秒出文字,支持52种语言 1. 模型简介 Qwen3-ASR-0.6B是阿里云通义千问团队推出的开源语音识别模型,专为高效准确的语音转文字任务设计。这个0.6B参数的轻量级模型在精度和效率之间取得了出色平衡,…...
从‘它好慢’到‘真香’:Vite + Vue 3项目实战中那些让你开发效率翻倍的配置技巧
从‘它好慢’到‘真香’:Vite Vue 3项目实战中那些让你开发效率翻倍的配置技巧 如果你正在使用Vite和Vue 3进行开发,却总觉得构建速度不够快、开发体验不够流畅,或者在某些特定功能配置上卡壳,那么这篇文章就是为你准备的。我们将…...
告别臃肿OS!手把手教你将Zephyr蓝牙协议栈移植到资源受限MCU(基于Polling轮询架构)
从零构建极简蓝牙协议栈:Zephyr Polling架构在资源受限MCU的实战指南 当智能手环的PCB面积被压缩到硬币大小,当电子价签需要依靠纽扣电池运行三年,传统蓝牙协议栈的"豪华配置"突然成了奢侈品。在深圳华强北的某个研发实验室里&…...
