uniapp中video层级太高(或者在页面中不跟随页面滚动)解决方案

news/2024/7/5 2:34:54

我觉得这个问题有必要记录一下。最近项目中遇到的问题:项目是uniapp开发,有一个商品详情的页面和一个视频竖向轮播的页面。

问题描述

1、商品详情页上面是图片轮播(包含视频),下面是商品详情,当页面上下滑动时,如果当前轮播是视频,那么视频就会停留在原位置 不会跟随页面滚动,小程序端是正常的,app端会出现这个问题。
2、视频竖向轮播的页面 (类似抖音) 上下滑动切换视频,视频上面有一些内容(返回按钮、视频标题、视频介绍等等),但是在app端 视频会把这些内容都覆盖掉,显示不出来。小程序端是正常的。

问题原因

是因为 video 在app端为原生组件,原生组件层级太高 其他的组件盖不住它 用z-index也不管用!

官方解决方案

uni官方文档给了三种方法,一般网上查的也是这三种方法:
1、使用 cover-view 组件
2、新建 nvue 页面
在这里插入图片描述
3、使用 使用subNvue子窗体。
在这里插入图片描述
但是并不适用我目前的场景。

解决方案

把 video 组件 做成富文本内容解析出来。mp-html 富文本组件,插件市场可以下载。

// html 部分
 <mp-html ref="article" id="_root" :content="videoHtml(videoItem.contentMainImg, videoItem.videoPoster)" />
// js 部分
 videoHtml(videoUrl, poster) {
     return `<video class="video" poster="${poster}" src="${videoUrl}" :loop="${true}" :autoplay="${true}" object-fit="fill" style="width:100%;height:100%"></video>`;
 },

注意:video 富文本内容 需要加上封面参数,要不可能会出现 视频黑屏 加载不出来等问题。

总结

这个方法能适用一部分场景,但是也有不足:添加了封面参数的话,就会添加上视频的默认控件;不好监听视频的播放与暂停。。。

补充

如果用这种方法处理了,然后需求中又有需要操作视频(比如点击视频 暂停/播放 等) , 把 video 组件做成富文本内容了,然后uni的video方法好像就不能用了。这时候可以尝试选择直接操作 dom 元素,直接操作dom的话,使用 uni.createSelectorQuery() 可以选择到 富文本 video, 但是使用不了video的方法。但是uni又没有 document 对象,这时候可以尝试使用renderjs来选择和操作dom,在 renderjs 中 可以使用 document 对象。


http://lihuaxi.xjx100.cn/news/439655.html

相关文章

Linux下/dev和/sys/class初探

文章目录引言1. devfs2. sysfssysfs 和 /dev的关系3. procATTR 与 file_operations参考链接&#xff1a;扩展知识引言 在用户空间操控设备可以通过/dev下的设备文件&#xff0c;也可以通过/sys/class下的设备文件。两者到底有什么区别&#xff1f;学习过程中&#xff0c;对于内…

高阶数据结构--图

本篇主要是介绍&#xff1a;图的一些常用的算法。 文章目录 一、图的基本概念二、图的存储结构 1、邻接矩阵2、邻接表三、图的遍历 1、广度优先遍历2、深度优先遍历四、最小生成树 1、Kruskal算法2、Prim算法五、最短路径 1、单源最短路径--Dijkstra算法2、单源最短路径--Bellm…

携程Apollo配置中心架构介绍

俗话说”麻雀虽小&#xff0c;五脏俱全“&#xff0c;有人说想看开源源码却不知道什么好&#xff0c;事实上&#xff0c;那些流行多年&#xff0c;广受好评的开源工程都是很值得一读的。今天我们介绍Apollo配置中心的基本情况&#xff0c;之所以介绍这个&#xff0c;主要是因为…

计算机操作系统笔记总结:Part2 进程与线程

文章目录1 进程1.1 进程的概念、组成与特征1.2 进程的状态与转换1.3 进程的组织1.4 进程控制1.5 进程通信2 线程与多线程模型2.1 线程的概念2.2 线程的实现方式2.3 多线程模型2.4 线程的状态与转换3 处理机调度3.1 调度的三个层次3.2 进程的挂起态与七状态模型3.3 进程调度3.3.…

Transformers学习笔记1. 一些基本概念和编码器、字典

Transformers学习笔记1. 一些基本概念和编码器、字典一、基本概念1. Hugging Face简介2. Transformers&#xff08;1&#xff09;简介&#xff08;1&#xff09;预定义模型&#xff08;2&#xff09;使用方法3. Datasets查看有哪些公开数据集方法1&#xff1a; 使用datasets包的…

【华为OD机试真题2023 JAVA】整理扑克牌

华为OD机试真题,2023年度机试题库全覆盖,刷题指南点这里 整理扑克牌 知识点贪心排序 时间限制:1s 空间限制:256MB 限定语言:不限 题目描述: 给定一组数字,表示扑克牌的牌面数字,忽略扑克牌的花色,请按如下规则对这一组扑克牌进行整理: 步骤1、对扑克牌进行分组,形成…

[附源码]Nodejs计算机毕业设计健身房预约平台Express(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程。欢迎交流 项目运行 环境配置&#xff1a; Node.js Vscode Mysql5.7 HBuilderXNavicat11VueExpress。 项目技术&#xff1a; Express框架 Node.js Vue 等等组成&#xff0c;B/S模式 Vscode管理前后端分…

使用c++部署tensorrt加速yolov7

先放上一张我运行成功的截图,只要跟着我的教程一步一步按操作,下载好匹配的软件是一定可以成功的! 我相信想要在C++平台使用tensorrt加速的朋友们也是有很强的计算机基础的,那么简单的部分我们就跳过,重点是和大家介绍模型转换的部分以及环境的搭建。 一. 环境 我的cudn…