需求

Taro框架中 ImageVideo 组件预览图片/视频时 添加明显的关闭按钮 以关闭全屏观看,避免用户直接操作返回后导致页面空白(原有消息记录消失 - 重新进入项目首页)
【补充】

  1. 全屏预览图片使用的 API Taro.previewImage({}) ,全屏查看图片时,点击图片任意位置即可退出
  2. 全屏预览视频使用的 Video 组件上自带的放大视频按钮,全屏查看时可点击右下角缩小视频按钮退出全屏

实现

app.scss文件

$closeFullBtnColor: #fdfdfd;
// 视频/图片全屏预览添加右上角关闭按钮
.mediaFullClose {position: absolute;top: 50px;right: 50px;width: 60px;height: 60px;// background-color: red;// background: url(./images/close.png) no-repeat;// background-size: contain;// pointer-events: all; // 可以触发事件z-index: 99;border: 3px solid $closeFullBtnColor;border-radius: 70px;&::before,&::after {content: '';position: absolute;width: 40px;height: 5px;background-color: $closeFullBtnColor;top: 50%;left: 10px;}&::before {transform: rotateZ(45deg) translateY(-30%);}&::after {transform: rotateZ(-45deg) translateY(-30%);}
}

视频添加关闭按钮

标签结构图示

解释说明:点击关闭按钮,其实就是手动触发了一下视频底部的缩小视频控件。

// 当视频 进入/退出 全屏时触发【主要代码】
videoEnlarge() {const fullVideo = document.querySelector('.taro-video-container.taro-video-type-fullscreen')if (!fullVideo) return // 退出全屏时 returnconst closeBtnDom = document.createElement('div')closeBtnDom.className = 'mediaFullClose'setTimeout(() => {const closeFull = document.querySelector('.taro-video-fullscreen.taro-video-type-fullscreen')fullVideo.appendChild(closeBtnDom)closeBtnDom.addEventListener('click', () => {closeFull.click()})}, 100)
}
<Videosrc={item}controls={true}autoplayinitialTime='0'loop={false}muted={false}enablePlayGesturevslideGestureInFullscreenonFullscreenChange={this.videoEnlarge.bind(this)}
/>

图片大图预览添加关闭按钮

标签结构图示

imgEnlarge(e) {//查看图片var imgList = []imgList.push(e)Taro.previewImage({current: e, //当前图片urls: imgList, //图片列表success: () => {/**** 图片大图预览添加关闭按钮 start ****/const fullImage = document.querySelector('.wx-image-viewer .viewer-image-container')const closeBtnDom = document.createElement('div')closeBtnDom.className = 'mediaFullClose'fullImage.appendChild(closeBtnDom)/**** 图片大图预览添加关闭按钮 end ****/},})
}

【注】由于点击图片就会关闭大图预览,添加的关闭按钮正好在点击图片的区域内,所以此处不需要添加点击事件。

<Imagesrc={item}onClick={this.imgEnlarge.bind(this, item)}
></Image>

Taro框架中 Image 和 Video 组件预览图片/视频时添加明显的关闭按钮以关闭全屏预览相关推荐

  1. vue3 - 【完整源码】超详细实现网站 / H5 在线预览 pdf 文件功能,支持缩放、旋转、全屏预览、打印、下载、内容检索、主题色定制、侧边缩略图、页码跳转等等(最好用的pdf预览器,注释详细!)

    效果图 在 Vue3.js 项目中,实现了快速高效的 pdf 预览器工具组件,附带详细的使用教程与详细的注释,保证一键复制轻松搞定! 详细的注释很容易二次修改,很多实用功能,你也可以自定义界面上的样式 ...

  2. android 摄像头比例,Android摄像头是全屏预览最简单的方式.doc

    Android摄像头是全屏预览最简单的方式 Android Camera做全屏预览之最简单方法 M厂开发五部:刘 博 一.全屏预览与非全屏预览的区别 对于大多数人来说,我们看电影.玩游戏等都喜欢全屏, ...

  3. android camera 全屏,Android Camera做全屏预览之最简单方法.doc

    Android Camera做全屏预览之最简单方法 M厂开发五部:刘 博 一.全屏预览与非全屏预览的区别 对于大多数人来说,我们看电影.玩游戏等都喜欢全屏,我们之所以喜欢全屏的一个主要原因就是全屏的感 ...

  4. 微信小程序video组件调用腾讯视频的解决方案

    最近在开发中碰到了微信小程序video组件调用腾讯视频的问题,就趁机来总结一下. 对方只给了我一个腾讯视频的网页链接,然后需要放置到小程序里面,大概开发前景是这样的. 对方提供的视频链接: https ...

  5. 微信小程序图片全屏预览组件,并解决svg真机显示黑屏问题

    自己码了个微信小程序图片全屏预览组件,并解决了svg真机显示黑屏问题(即png等格式可以正常显示,但就svg无法显示). /*** 微信小程序图片预览组件* 1.支持预览svg.png.jpeg.jp ...

  6. Vue 单/多图片(可全屏预览)翻页轮播组件

    支持单/多张图翻页轮播 可全屏预览 自定义图片宽高 自定义无图提示语 自带图片加载loading 可将源码根据实际需求改造. 没安装 Element-UI 的可以将图片标签换为原生 效果图 全屏预览 ...

  7. vue3项目使用了element-plus中的el-table表格组件,缩放浏览器网页时,报错如下: ResizeObserver loop limit exceeded at eval (w

    错误描述: vue3项目使用了element-plus中的el-table表格组件,缩放浏览器网页时,报错如下: ResizeObserver loop limit exceeded at eval ...

  8. android从九宫格全屏预览,仿微信朋友圈展示图片的九宫格图片展示控件,支持点击图片全屏预览大图...

    AssNineGridView 仿微信朋友圈展示图片的九宫格图片展示控件,支持点击图片全屏预览大图(可自定义). 写在前面 这是一个九宫格控件,本来是很久之前就写好了,现在才开源出来,也是看了很多优秀 ...

  9. 微信小程序轮播图放大全屏预览(爆料)

    轮播图放大预览效果的实现 前言 一.wx.previewImage接口API 官方介绍: 代码示例: 二.图片全屏预览 1.效果展示 2.编码 img.wxml img.js img.wxss 三.轮 ...

最新文章

  1. nginx的配置和优化(隐藏版本号、gzip、expires、防盗链......等)
  2. Java为什么需要保留基本数据类型
  3. [译]ASP.NET Core 2.0 机密配置项
  4. CMMI之需求管理和股票池管理
  5. Codeforces 1326F Wise Men (容斥原理、状压 DP、子集和变换、划分数)
  6. C语言文件操作(二)对指定txt文件中的N个数排序
  7. 【小程序】微信小程序开发实践
  8. php/eq,thinkphp中eq标签的使用
  9. java 局部内部类
  10. 杭电多校第三次 Problem A. Ascending Rating(单调队列)
  11. ps42k20服务器出现问题_天高客户端访问软件出现“服务器操作系统原因”问题解决方法...
  12. 基于stm32单片机外文文献_关于单片机开发设计有关 的外文文献翻译成品英文英语资料:基于STM32的高性能多功能信号发生器的开发(中英文双语对照).docx...
  13. Hibernate(6)——映射类型
  14. 从零开始前端学习[26]:html5的一些常用标签,header,footer,section,aside,figure,figcaption,nav,artical,
  15. SAS数据导入input要点
  16. KUKA力控软件使用问题介绍
  17. webstorm禁用拼写检查
  18. mysql sql 列变成横向_mysql怎么更改纵向变横向排列
  19. 计算机中系统更新是指,Mac电脑操作系统更新了什么功能
  20. MySQL基础(补充)

热门文章

  1. 09校内网、人人网、千橡公司笔试题
  2. 闲鱼转转源码+后台你懂的App
  3. 哈尔滨工业大学软件构造课程学习笔记第一章第一节
  4. 这些AI产品这么猛,你别说,还真香
  5. IOS证件识别开发包
  6. unity3d职业规划与技能职级体系
  7. MySQL数据库面试题总结(2022最新版)
  8. Win11不能安装SolidWorks怎么办?
  9. Fluent教程—流动进口、出口边界条件
  10. 信息的传递 认识自身5