使用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文件:比较与互参 在编…...
武汉星起航:自运营团队精准把握亚马逊红利,引领跨境电商新潮流
在全球化的浪潮下,跨境电商行业蓬勃发展,为众多企业带来了前所未有的机遇。武汉星起航电子商务有限公司便是其中的佼佼者,其自运营团队凭借对亚马逊平台的深入了解和丰富的运营经验,成功抓住了亚马逊的流量红利,为公司…...
Android Wi-Fi 连接失败日志分析
1. Android wifi 关键日志总结 (1) Wi-Fi 断开 (CTRL-EVENT-DISCONNECTED reason3) 日志相关部分: 06-05 10:48:40.987 943 943 I wpa_supplicant: wlan0: CTRL-EVENT-DISCONNECTED bssid44:9b:c1:57:a8:90 reason3 locally_generated1解析: CTR…...
大话软工笔记—需求分析概述
需求分析,就是要对需求调研收集到的资料信息逐个地进行拆分、研究,从大量的不确定“需求”中确定出哪些需求最终要转换为确定的“功能需求”。 需求分析的作用非常重要,后续设计的依据主要来自于需求分析的成果,包括: 项目的目的…...
1.3 VSCode安装与环境配置
进入网址Visual Studio Code - Code Editing. Redefined下载.deb文件,然后打开终端,进入下载文件夹,键入命令 sudo dpkg -i code_1.100.3-1748872405_amd64.deb 在终端键入命令code即启动vscode 需要安装插件列表 1.Chinese简化 2.ros …...
镜像里切换为普通用户
如果你登录远程虚拟机默认就是 root 用户,但你不希望用 root 权限运行 ns-3(这是对的,ns3 工具会拒绝 root),你可以按以下方法创建一个 非 root 用户账号 并切换到它运行 ns-3。 一次性解决方案:创建非 roo…...
Java-41 深入浅出 Spring - 声明式事务的支持 事务配置 XML模式 XML+注解模式
点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) 目前2025年06月05日更新到: AI炼丹日志-28 - Aud…...
12.找到字符串中所有字母异位词
🧠 题目解析 题目描述: 给定两个字符串 s 和 p,找出 s 中所有 p 的字母异位词的起始索引。 返回的答案以数组形式表示。 字母异位词定义: 若两个字符串包含的字符种类和出现次数完全相同,顺序无所谓,则互为…...
HTML前端开发:JavaScript 常用事件详解
作为前端开发的核心,JavaScript 事件是用户与网页交互的基础。以下是常见事件的详细说明和用法示例: 1. onclick - 点击事件 当元素被单击时触发(左键点击) button.onclick function() {alert("按钮被点击了!&…...
今日科技热点速览
🔥 今日科技热点速览 🎮 任天堂Switch 2 正式发售 任天堂新一代游戏主机 Switch 2 今日正式上线发售,主打更强图形性能与沉浸式体验,支持多模态交互,受到全球玩家热捧 。 🤖 人工智能持续突破 DeepSeek-R1&…...
佰力博科技与您探讨热释电测量的几种方法
热释电的测量主要涉及热释电系数的测定,这是表征热释电材料性能的重要参数。热释电系数的测量方法主要包括静态法、动态法和积分电荷法。其中,积分电荷法最为常用,其原理是通过测量在电容器上积累的热释电电荷,从而确定热释电系数…...
Python基于历史模拟方法实现投资组合风险管理的VaR与ES模型项目实战
说明:这是一个机器学习实战项目(附带数据代码文档),如需数据代码文档可以直接到文章最后关注获取。 1.项目背景 在金融市场日益复杂和波动加剧的背景下,风险管理成为金融机构和个人投资者关注的核心议题之一。VaR&…...
