在培训考试小程序页面弹出半屏的弹窗交互实践

news2024/10/11 17:53:54

如果在页面内进行复杂的界面设计(如在页面内弹出半屏的弹窗、在页面内加载一个全屏的子页面等),用户进行返回操作会直接离开当前页面,不符合用户预期,预期应为关闭当前弹出的组件。

为此提供“假页”容器组件page-container,效果类似于 popup 弹出层,页面内存在该容器时,当用户进行返回操作,关闭该容器不关闭页面。返回操作包括三种情形,右滑手势、安卓物理返回键和调用 navigateBack 接口。

我在搭建培训考试小程序的首页里面使用page-container组件,当需要切换题库的时候,让题库列表组件从这个页面的底部划出来然后再取消,或者是完成切换题库的时候调用close方法将半屏的假页面进行关掉。

完成以后,这个页面效果大概是像这样。这样的交互设计,大大地提升了答题应用程序的用户体验。

图片

那么,如何使用页面容器组件?

这个页面容器组件page-container,它是一个标准组件,它不需要引入就可以使用了。

这个是组件的wxml代码,其中里面有一个position属性它是控制面板从底部划出的。它的show属性控制面板是否显示。

这个节点的tap事件绑定到了这个close方法之上,无论是单击到哪一个地方close方法都是会被调用的,它是用于关闭我们当前的题库列表面板了。

<page-container   show="{{show}}"  round="{{round}}"  overlay="{{overlay}}"  duration="{{duration}}"  position="{{position}}"  close-on-slide-down="{{false}}"  bindafterenter="onAfterEnter"  bindafterleave="onAfterLeave"  bindclickoverlay="onClickOverlay"  custom-style="{{customStyle}}"  overlay-style="{{overlayStyle}}">  <view class="detail-page">    <button type="primary" bindtap="close">推出</button>  </view></page-container>

这个是组件的JS代码,在这个方法close里边先尝试使用了wx.navigateBack然后进行退出。

如果当前小程序页面栈里面它有页面调用会成功,反之如果是当前这个页面它是启动页或者是当前这个页面前面它没有页面了则会调用失败。

在调用失败的时候也没有关系,可以再尝试使用setData改变数据属性visible,然后以此来关闭我们的一个面板。

​​​​​​​​​​​​​​

close() {    this.setData({show: false})    // wx.navigateBack()}

属性说明如下:

图片

当然,由于题库列表较长,超出了可视区域,所以我还在组件page-container中结合使用scroll-view实现了滚动。

刚开始遇到一个小插曲,在page-container内部实现垂直滚动,一直不成功。

图片

后来经排查,原来,可滚动视图区域,使用竖向滚动时,需要给scroll-view一个固定高度,通过 WXSS 设置 height,或者直接在scroll-view加一个max-height。

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

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

相关文章

python爬虫 - 深入正则表达式

&#x1f308;个人主页&#xff1a;https://blog.csdn.net/2401_86688088?typeblog &#x1f525; 系列专栏&#xff1a;https://blog.csdn.net/2401_86688088/category_12797772.html 目录 前言 一、匹配多个字符 &#xff08;一&#xff09;匹配任意多个字符 &#xff0…

Java学习-JVM

目录 1. 基本常识 1.1 JVM是什么 1.2 JVM架构图 1.3 Java技术体系 1.4 Java与JVM的关系 2. 类加载系统 2.1 类加载器种类 2.2 执行顺序 2.3 类加载四个时机 2.4 生命周期 2.5 类加载途径 2.6 双亲委派模型 3. 运行时数据区 3.1 运行时数据区构成 3.2 堆 3.3 栈…

adaptor lora基础

https://www.zhihu.com/question/508658141/answer/3340979311 adaptor和PEFT的区别&#xff1a;前者在模型子层后加一个小型的dense&#xff1b;后者直接稀疏化模型本身&#xff1b; Loading Pre-Trained Adapters — AdapterHub documentation CVPR 2024 | SD-DiT&#xff…

五分钟带你零基础入门跨境电商独立站,干货速递!

对于跨境电商卖家来说&#xff0c;多平台、多站点的布局是非常重要的战略。这样做可以规避”鸡蛋放在同一个篮子里”的风险也能够追求更高的销售额和利润。同时&#xff0c;市场的变化也带来了新的发展机会&#xff0c;因此很多出海企业都希望抓住独立站的新机遇&#xff0c;抢…

什么因素能冲击实时现货黄金价格?

实时现货黄金价格怎样走&#xff0c;投资者关键要看全球通胀、经济增长、美联储货币政策和全球央行需求这些基本面的因素。在全球货币体系“去美元化”趋势越来越明晰的当下&#xff0c;黄金在国际储备中的地位将逐步上升——在尚未出现可取代美元的货币之前&#xff0c;黄金独…

电机是怎么转起来的?

世界上功率消耗量的近一半是由电机消耗&#xff0c;因此在解决世界能源问题上&#xff0c;电机的高效率化被称为是最有效的措施。 电机种类 一般情况下指将磁场内电流流通产生的力转变为旋转动作&#xff0c;在广义范围内还包括直线动作。 按电机驱动的电源种类&#xff0c;…

QD1-P17 HTML常用标签:下拉框

本节学习 HTML 常用标签&#xff1a;select和option ‍ 本节视频 www.bilibili.com/video/BV1n64y1U7oj?p17 ‍ 知识点1&#xff1a;select标签用法 演示 ​​ HTML <select name"city"><option>北京</option><option>上海</opti…

【计网】从零开始学习http协议 ---深入理解cookie和session

我的天空里没有太阳&#xff0c; 总是黑夜&#xff0c; 但并不暗&#xff0c; 因为有东西代替了太阳。 --- 东野圭吾 --- 从零开始学习http协议 1 理解cookie1.1 什么是cookie1.2 验证cookie1.3 cookie的属性 2 理解session2.1 什么是session2.2 验证session 1 理解cooki…

考研笔试/上机经典编程题集合(持续更新并完善解题思路)

目录 一、程序设计经典编程题(C语言实现)1.1 判断一个字符串是否由另一个字符串旋转得到1.2 字符串左旋1.3 求最大公约数以及最小公倍数1.4 二、力扣2.1 面试题 17.04. 消失的数字 三、牛客网3.1 OR62 倒置字符串3.2 BC84 计算y的值 一、程序设计经典编程题(C语言实现) 1.1 判…

Java生成csv格式文件样例_快速详细

Java高效Excel处理工具EasyExcel&#xff1a;解决大文件读写难题 EasyExcel是一个基于Java的高效、简洁的Excel处理工具&#xff0c;专为解决大文件内存溢出问题而设计。它能够在不牺牲性能的前提下快速完成Excel文件的读写操作。相比于传统的Apache POI等框架&#xff0c;Eas…

Unity修改鼠标图片【超简单】

1.向Unity导入需要修改的鼠标图片&#xff0c;在Unity内设置图片的Texture Type为Cursor。 2.编写代码 [SerializeField] Texture2D mouseTex;//放图片 void Start() {Cursor.SetCursor(mouseTex, Vector2.zero, CursorMode.Auto); }3.代码挂载在某物体&#xff08;或者随便哪…

net ASp.net Core 文件上传 IFormFile IFormFileCollection

IFormFile 接口是 ASP.NET Core 中处理上传文件的标准方式。当客户端通过表单上传文件时&#xff0c;ASP.NET Core 会自动将上传的文件封装成一个 IFormFile 对象&#xff0c;然后你可以在服务器端通过这个对象来访问和处理文件。 IFormFile接口的使用场景包括但不限于&…

java:找不到符号符号: 变量 log解决方案

最近有个项目频繁的遇到这个问题.经常启动不起来,但是提代码正常. 这个问题是由于lombok插件未加载导致的Slf4j的日志异常. 解决思路: 1.插件里面写在lombok再重新安装.无效 2.重新加载项目.无效 3.重新构建项目.无效 4.删除代码重下代码.无效 5.检查该配置是否打开,已打开 6.…

离散数学-逻辑与证明基础1.3(命题等价)

介绍 定义 1 一个复合命题&#xff0c;如果无论其中命题变量的真值如何&#xff0c;它总是为真&#xff0c;则称为重言式&#xff08;tautology&#xff09;。一个复合命题&#xff0c;如果它总是为假&#xff0c;则称为矛盾式&#xff08;contradiction&#xff09;。一个既不…

JDK11~JDK17值得关注的更新整理

新增特性&#xff1a; 1、instanceof的模式匹配 (JDK 16) 这个特性增强了instanceof运算符&#xff0c;允许在检查一个对象的类型时直接进行模式匹配&#xff0c;这使得代码更加简洁和易于理解。 通常我们使用instanceof时&#xff0c;一般发生在需要对一个变量的类型进行判…

QT C++ 软键盘/悬浮键盘/触摸屏键盘的制作

目录 1、前言 2、界面设计 3、英文、数字的输入 4、符号的输入 5、中文的输入 6、中文拼音库的选择 7、其他 8、结语 1、前言 使用QT C在带显示器的Linux系统 开发板上&#xff08;树莓派等&#xff09;编写操作UI界面时&#xff0c;很多时候都需要一个软键盘来输入文字…

施工进度可视化:提升项目管理透明度

图扑施工可视化通过直观的数据展示&#xff0c;使项目各方能够实时了解进度和资源分配&#xff0c;识别潜在问题&#xff0c;提高沟通效率&#xff0c;优化决策流程&#xff0c;确保项目按时、高效、安全地推进。

22个IT运维领域黄金证书 每一个都含金量极高!

**1、阿里云认证&#xff1a;**阿里云提供多个层次的认证&#xff0c;包括ACA&#xff08;助理工程师&#xff09;、ACP&#xff08;专业工程师&#xff09;和ACE&#xff08;专家工程师&#xff09;&#xff0c;涵盖了云计算、大数据、云安全、人工智能等多个领域。 **2、ITS…

【text2sql】基于上下文文学习的MCS-SQL框架在Spider和BIRD取得了新SOTA

论文标题 “MCS-SQL: Leveraging Multiple Prompts and Multiple-Choice Selection For Text-to-SQL Generation” &#xff0c;发表于2024.5的arXiv。 1.摘要解读 研究背景&#xff1a;大型语言模型&#xff08;LLMs&#xff09;在文本到SQL&#xff08;Text-to-SQL&#xf…

Python中的help()函数引发错误:追踪错误并提供解决方案

Python 中的 help() 函数通常用于交互式帮助&#xff0c;它可以显示关于模块、类、函数、方法、关键字等的文档说明。一般情况下&#xff0c;help() 函数不会引发错误&#xff0c;但如果你在使用时遇到问题&#xff0c;可能与以下几种常见情况有关。 1、问题背景 在使用 Pytho…