微信小程序scroll-view吸顶css样式化表格的表头及iOS上下滑动表头的颜色覆盖、z-index应用及性能分析

微信小程序scroll-view吸顶css样式化表格的表头及iOS上下滑动表头的颜色覆盖、z-index应用及性能分析

目录

微信小程序scroll-view吸顶css样式化表格的表头及iOS上下滑动表头的颜色覆盖、z-index应用及性能分析

       1、iOS在scroll-view内部上下滑动吸顶的现象

        正常的上下滑动吸顶覆盖:

        iOS及iPad默认不正常的上下滑动吸顶覆盖:

      2、原因

      3、解决方法

       3.1、选中每行子组件提取字段、边界矩形

       3.2、直接根据scroll-view在滚动事件中相对其顶部的滚动高度换算行次

       3.3、根除的办法z-index的应用

      4、总结


        在微信小程序组件scroll-view内部,z-index无任何实际意义,因为该组件内部的slot插槽默认就未去实现支持z-index的分层,它总是默认H5的规则,后插入的子组件覆盖前置子组件的z-index。

       因此,当插入posotion定位为sticky粘滞元素,特别是在元素吸顶时,scroll-view上滑滚动覆盖吸顶元素时,需要注意操作系统【平台】的差异性,否则文字颜色或其它前景色,会在此吸顶位置出现怪异。

       1、iOS在scroll-view内部上下滑动吸顶的现象

        正常的上下滑动吸顶覆盖:

        iOS及iPad默认不正常的上下滑动吸顶覆盖:

      2、原因

       iOS及iPad平台,scroll-view组件默认尚未真正完整实现吸顶部分的后代组件覆盖。

      3、解决方法

       3.1、选中每行子组件提取字段、边界矩形

this.createSelectorQuery().select(`#scrollData_{{index}}`).boundingClientRect(res=>res.top)
.exec();

       然后据此top数值,计算scroll-view的内部view-port视口的布局视口、可视视口及其显隐部分,计算哪些行次在上下滑动的滚动过程中覆盖了表头:

       但这样做:

       一是计算量大,且伴随scroll-view内部视口的上滑,头几行早就滚出屏幕的可视范围以外;

       这一点,可以从获取的top绝对位置数据,可以看到:

       二是将在上下滑滚动的过程中,多行同时命中,会因性能的考虑,需要额外计算并控制scroll-view内部的在屏行数,然后在做选中,否则数组行数过多,会带来性能问题。

       3.2、直接根据scroll-view在滚动事件中相对其顶部的滚动高度换算行次

       由于在上下滑滚动的过程中,各行次的view均在scroll-view组件内部产生相对位置的变化,它们并不会使得scroll-view组件的布局视口发生改变,也不会使得scroll-view组件的可视视口发生改变,故而,页面整体不会发生【重排】,scroll-view组件的可视视口也未发生【重排】,因此,不会产生页面的【重新渲染】,仅仅会在scroll-view组件的可视视口内部,【局部渲染】,这种方法不会带来性能上的负面影响。

  onScrollView_scroll(e) {if (e.currentTarget.id==='mystickycontainer') {onScroll_scrollTop = e.detail.scrollTop;//滚动到顶部===0___注意不要用其this.setData({})__逻辑层向视图层高频次传输数据__超级影响性能if (this.data.platform==='ios'||this.data.platform==='ipad'||this.data.platform==='devtools') {tableRowsColor_scrolled = tableRowsColor.map((element,index) => {if ( onScroll_scrollTop>=((index+1)*mytableHeaderHeight)-((mytableHeaderHeight-rootFontSize)/2)  && onScroll_scrollTop<=((index+2)*mytableHeaderHeight)-((mytableHeaderHeight-rootFontSize)/2)  ) {//滚动到和表头重叠区域__就让其颜色透明__从而显示表头的颜色和背景return `#00000000`;} else {return `#000000FF`;//iOS下black即#000000带透明度默认值#000000FF 带透明度#000000FF};});if ([...tableRowsColor_scrolled]!==[...this.data.tableRowsColor]) {this.setData({tableRowsColor: tableRowsColor_scrolled});};};};},

       3.3、根除的办法z-index的应用

       虽然:在微信小程序组件scroll-view内部,z-index无任何实际意义,因为该组件内部的slot插槽默认就未去实现支持z-index的分层,它总是默认H5的规则,后插入的子组件覆盖前置子组件的z-index。

       但:经测试发现,z-index对iOS和iPad平台来说,在scroll-view内部slot子组件,z-index是有效的,它允许覆盖上述规则。

       由于在微信小程序的scroll-view组件内部,仍旧可以设置多个不同slot插槽,每级插入子组件的z-index的order整数值,可能会影响到滚动数据经过吸顶表头的表现,这主要时针对iOS和iPad。

       默认未设置z-index的滚动slot子组件,默认在scroll-view组件内部的z-index===0。

       可将scroll-view内除默认“refresher”下拉刷新以外最高层级的吸顶封装子组件的z-index设置高一些比如2000,这样即便不设置【3.2】中所述的颜色透明度,也能更好的解决问题。

      4、总结

       3.2、所述,其实不正常的吸顶覆盖,主要是计算滑过吸顶部分的行次对应的view-port组件,其前景色的透明度所致。在iOS和iPad环境解决掉,就好。其它所有平台均不存在该问题。

       3.3、所述,这是真正终极的解决iOS和iPad在scroll-view内【滚动吸顶颜色覆盖】的最好办法。

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

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

相关文章

免费好用又好看且多端自动同步第三方终端工具Termius你值得拥有

使用目的&#xff1a; 本地终端功能一样&#xff0c;都是为了登录服务器查看日志等操作。 本地终端 优点&#xff1a;方便简单&#xff0c;无需额外下载安装、免费。 缺点&#xff1a;每次都需要重新登陆输入命令&#xff0c;步骤繁琐无法简化&#xff1b;不能跨端同步。 第…

Unity引擎材质球残留贴图引用的处理

大家好&#xff0c;我是阿赵。   这次来分享一下Unity引擎材质球残留贴图引用的处理 一、 问题 在使用Unity调整美术效果的时候&#xff0c;我们很经常会有这样的操作&#xff0c;比如&#xff1a; 1、 同一个材质球切换不同的Shader、 比如我现在有2个Shader&#xff0c;…

【electron+vue3】使用JustAuth实现第三方登录(前后端完整版)

实现过程 去第三方平台拿到client-id和client-secret&#xff0c;并配置一个能够外网访问回调地址redirect-uri供第三方服务回调搭建后端服务&#xff0c;引入justauth-spring-boot-starter直接在配置文件中定义好第一步的三个参数&#xff0c;并提供获取登录页面的接口和回调…

Jetson OrinNX平台CSI相机导致cpu load average升高问题调试

1. 前言 硬件: Orin NX JP: 5.1.2, R35.4.1 用v4l2-ctl --stream-mmap -d0 命令去获取相机数据时, 用top查看cpu使用情况, CPU占用率很低,但load average在1左右, 无任何程序运行时,load average 为0 用ps -aux 查看当前进程情况,发现有两个系统进程vi-output, …

第六十三周周报 GGNN

文章目录 week63 GGNN摘要Abstract一、文献阅读1. 题目2. abstract3. 网络架构3.1 数据处理部分3.2 门控图神经网络3.3 掩码操作 4. 文献解读4.1 Introduction4.2 创新点4.3 实验过程4.3.1 传感器设置策略4.3.2 数据集4.3.3 实验设置4.3.4 模型参数设置4.3.5 实验结果 5. 结论总…

【Linux】从零开始使用多路转接IO --- poll

碌碌无为&#xff0c;则余生太长&#xff1b; 欲有所为&#xff0c;则人生苦短。 --- 中岛敦 《山月记》--- 从零开始使用多路转接IO 1 前言1 poll接口介绍3 代码编写4 总结 1 前言 上一篇文章我们学习了多路转接中的Select&#xff0c;其操作很简单&#xff0c;但有一些缺…

Verilog实现的莫尔斯电码发生器

莫尔斯或者摩尔斯电码(Morse Code)&#xff0c;发明于1837年(另有一说是1836年)&#xff0c;通过不同的排列顺序来表达不同的英文字母、数字和标点符号&#xff0c;在这里作一简单处理&#xff0c;仅产生点(Dit)和划(Dah)&#xff0c;时长在0.25秒之内为点&#xff0c;超过为划…

Maven介绍,IDEA集成方式

概述 什么是Maven&#xff1f; Maven 的正确发音是[ˈmevən],Maven在美国是一个口语化的词语&#xff0c;代表专家、内行的意思。 一个对 Maven 比较正式的定义是这么说的&#xff1a; Maven 是一个项目管理工具&#xff0c;它包含了一个项目对象模型 (POM&#xff1a;Proj…

stl_stack/queue

一.适配器 stack和queue实际上并不能算是一种容器&#xff0c;而是一种容器适配器。而适配器作为stl的6大组件之一&#xff0c;其实是一种设计模式。适配器模式其实就是将一个类的接口&#xff08;该接口无法直接满足客户的需求&#xff09;转换成客户希望的另一个接口&#x…

利用Docker Compose构建微服务架构

&#x1f493; 博客主页&#xff1a;瑕疵的CSDN主页 &#x1f4dd; Gitee主页&#xff1a;瑕疵的gitee主页 ⏩ 文章专栏&#xff1a;《热点资讯》 利用Docker Compose构建微服务架构 引言 Docker Compose 简介 安装 Docker Compose 创建项目结构 编写 Dockerfile 前端 Dockerf…

Redis未授权访问漏洞复现和修复建议

Redis未授权访问漏洞利用&#xff08;总结&#xff09; 一、漏洞介绍及危害1.1 原理1.2 漏洞影响版本1.3 漏洞危害1.4 实战中redis常用命令 二、漏洞复现2.1 环境准备2.1.1 靶机安装redis服务器2.1.2 kali安装Redis客户端&#xff08;Redis-cli&#xff09; 三、漏洞利用3.1 利…

无人机之集群控制方法篇

无人机的集群控制方法涉及多个技术和策略&#xff0c;以确保多架无人机能够协同、高效地执行任务。以下是一些主要的无人机集群控制方法&#xff1a; 一、编队控制方法 领航-跟随法&#xff08;Leader-Follower&#xff09; 通过设定一架无人机作为领航者&#xff08;长机&am…

流水线商品标签如何快速打印?商品标签自定义打印软件操作方法

一、概述 【软件可定制详情点文章最后信息卡片】 流水线商品标签如何快速打印&#xff1f;商品标签自定义打印软件操作方法 ‌定义与用途‌ 商品标签打印软件&#xff0c;即用于打印商品标签的应用软件。标签包含产品上的文字、商品详情等说明信息 如图&#xff0c;可以预先…

不只是任务分配!管理者应具备的核心认知

背景 二十年&#xff0c;中国的互联网行业飞速发展&#xff0c;让无数年轻人有了从技术岗走向管理岗的机会。然而&#xff0c;许多工程师在走上管理岗位时往往是“仓促上任”&#xff0c;没有足够时间适应管理工作和责任。少数悟性高、能力突出的工程师能够迅速胜任&#xff0…

第二十五章 Vue父子通信之sync修饰符

目录 一、概述 二、完整代码 2.1. main.js 2.2. App.vue 2.3. BaseDialog.vue 三、运行效果 一、概述 前面的章节我们讲到&#xff0c;通过v-model我们可以实现父子组件间的通信&#xff0c;但是使用v-model的时候&#xff0c;子组件接收的prop属性名必须固定为valu…

【浪潮商城-注册安全分析报告-无验证方式导致安全隐患】

前言 由于网站注册入口容易被黑客攻击&#xff0c;存在如下安全问题&#xff1a; 1. 暴力破解密码&#xff0c;造成用户信息泄露 2. 短信盗刷的安全问题&#xff0c;影响业务及导致用户投诉 3. 带来经济损失&#xff0c;尤其是后付费客户&#xff0c;风险巨大&#xff0c;造…

轻松成为文本文件管理大师,将每个文件夹中的所有TXT分别合并成一个文本文档,发现办公软件TXT合并功能的无限可能

文本文件如潮水般涌来&#xff0c;管理它们成为了一项令人头疼的任务。但是&#xff0c;别怕&#xff0c;有了首助编辑高手软件&#xff0c;你将成为办公软件达人&#xff0c;轻松驾驭这些文本文件&#xff0c;体验无限魅力&#xff01;想象一下&#xff0c;杂乱无章的文件夹瞬…

安卓13默认连接wifi热点 android13默认连接wifi

总纲 android13 rom 开发总纲说明 文章目录 1.前言2.问题分析3.代码分析4.代码修改5.编译6.彩蛋1.前言 有时候我们需要让固件里面内置好,相关的wifi的ssid和密码,让固件起来就可以连接wifi,不用在手动操作。 2.问题分析 这个功能,使用普通的安卓代码就可以实现了。 3.代…

青春的海洋:海滨学院班级回忆录项目

3系统分析 3.1可行性分析 通过对本海滨学院班级回忆录实行的目的初步调查和分析&#xff0c;提出可行性方案并对其一一进行论证。我们在这里主要从技术可行性、经济可行性、操作可行性等方面进行分析。 3.1.1技术可行性 本海滨学院班级回忆录采用SSM框架&#xff0c;JAVA作为开…

基于matlab的线性卷积演示系统

文章目录 前言1. 卷积的简单介绍1.1 翻褶1.2 移位1.3 相乘1.4相加1.5 整体的运行效果展示 2.App Designer的介绍3.具体的开发步骤3.1 声明成员变量3.2 设计基本布局3.3 编写回调函数 4.运行展示结语 前言 本篇文章按照如下要求&#xff0c;完成线性卷积演示系统 (1)用matlab完…