创意实现!在uni-app小程序商品详情页轮播中嵌入视频播放功能

news2024/11/20 15:36:10

背景介绍

通过uni-app框架实现商城小程序商品详情页的视频与图片轮播功能,以提升用户体验和增加商品吸引力。通过展示商品视频和图片,用户可以更全面地了解商品细节,从而提高购买决策的便利性和满意度。这种功能适用于各类商品,如服装、家具、电子产品等。通过本文的步骤,您将学会如何在商城小程序中利用uni-app框架实现商品详情页的视频与图片轮播功能。

代码组件

新建文件:productConSwiper.vue

<template>
	<view class='product-bg'>
		<swiper :indicator-dots="indicatorDots" indicator-active-color="#E93323" :autoplay="autoplay"
			:circular="circular" :interval="interval" :duration="duration" @change="change">

			<swiper-item v-if="videoline">
				<view class="item">
					<view v-if="!controls" style="width:100%;height:100% ">
						<video id="myVideo" :src='videoline' objectFit="cover" controls style="width:100%;height:100% "
							show-center-play-btn show-mute-btn="true" auto-pause-if-navigate :custom-cache="false"
							:enable-progress-gesture="false" :poster="imgUrls[0]" @pause="videoPause"></video>
					</view>
					<view class="poster" v-if="controls">
						<image class="image" :src="imgUrls[0]"></image>
					</view>
					<view class="stop" v-if="controls" @tap="bindPause">
						<image class="image" src="../../static/images/stop.png"></image>
					</view>
				</view>
			</swiper-item>

			<block v-for="(item,index) in imgUrls" :key='index'>
				<swiper-item>
					<image :src="item" class="slide-image" />
				</swiper-item>
			</block>
		</swiper>
	</view>
</template>

<script>
	export default {
		props: {
			imgUrls: {
				type: Array,
				default: function() {
					return [];
				}
			},
			videoline: {
				type: String,
				value: ""
			}
		},
		data() {
			return {
				indicatorDots: true,
				circular: true,
				autoplay: true,
				interval: 3000,
				duration: 500,
				currents: "1",
				controls: true,
				isPlay: true,
				videoContext: null
			};
		},
		mounted() {
			if (this.videoline) {
				this.imgUrls.shift()
				this.videoContext = uni.createVideoContext('myVideo', this); // 创建videoContext
			}
		},
		methods: {
			videoPause(e) {},
			bindPause: function() { 
				if (this.videoContext) {
					this.videoContext.play(); // 调用play方法
					this.$set(this, 'controls', false);
					this.autoplay = false;
				}
			},
			change: function(e) {
				this.$set(this, 'currents', e.detail.current + 1);
			}
		}
	}
</script>

<style scoped lang="scss">
	.product-bg {
		width: 100%;
		height: 750rpx;
		position: relative;
	}

	.product-bg swiper {
		width: 100%;
		height: 100%;
		position: relative;
	}

	.product-bg .slide-image {
		width: 100%;
		height: 100%;
	}

	.product-bg .pages {
		position: absolute;
		background-color: #fff;
		height: 34rpx;
		padding: 0 10rpx;
		border-radius: 3rpx;
		right: 30rpx;
		bottom: 30rpx;
		line-height: 34rpx;
		font-size: 24rpx;
		color: #050505;
	}

	#myVideo {
		width: 100%;
		height: 100%
	}

	.product-bg .item {
		position: relative;
		width: 100%;
		height: 100%;
	}

	.product-bg .item .poster {
		position: absolute;
		top: 0;
		left: 0;
		height: 750rpx;
		width: 100%;
		z-index: 9;
	}

	.product-bg .item .poster .image {
		width: 100%;
		height: 100%;
	}

	.product-bg .item .stop {
		position: absolute;
		top: 50%;
		left: 50%;
		width: 136rpx;
		height: 136rpx;
		margin-top: -68rpx;
		margin-left: -68rpx;
		z-index: 9;
	}

	.product-bg .item .stop .image {
		width: 100%;
		height: 100%;
	}
</style>

组件使用

import productConSwiper from '@/components/productConSwiper';
components: {
			productConSwiper,
},

sliderImage是一个图片地址数组
在这里插入图片描述

productInfo.video是视频的地址

<productConSwiper :imgUrls="sliderImage" :videoline="productInfo.video">
</productConSwiper>

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

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

相关文章

【SQL】产品分组销售

目录 语法 需求 示例 分析 代码 语法 GROUP_CONCAT(DISTINCT expression1 ORDER BY expression2 SEPARATOR sep&#xff09; GROUP_CONCAT 是 SQL 中的一个聚合函数&#xff0c;主要用于将分组后的多个行的值连接成一个字符串。这个函数在 MySQL 和一些其他数据库管理系统…

VBA技术资料MF203:添加带图标的右键菜单

我给VBA的定义&#xff1a;VBA是个人小型自动化处理的有效工具。利用好了&#xff0c;可以大大提高自己的工作效率&#xff0c;而且可以提高数据的准确度。“VBA语言専攻”提供的教程一共九套&#xff0c;分为初级、中级、高级三大部分&#xff0c;教程是对VBA的系统讲解&#…

ctf.show---->re2

做题笔记。 下载 查壳 32 ida打开。 WSL先运行一下&#xff1a; &#xff1f; 创建呗。 函数如下&#xff1a; 逻辑很清晰&#xff0c;写脚本咯 &#xff1a; #include <stdio.h> #include <string.h> #include <stdlib.h>int main() {char encode[] &qu…

计算机毕业设计 养老院管理系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍&#xff1a;✌从事软件开发10年之余&#xff0c;专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精…

活动策划灵感TOP10分享-华媒舍

活动策划对于推广品牌、提升知名度和增加销量具有重要的作用。在当今竞争激烈的市场中&#xff0c;如何设计出与众不同、令人难以忘怀的活动策划方案是每个市场人员关心的问题。本文将介绍10个非凡的创意灵感&#xff0c;帮助您在活动策划中取得成功。 1. 主题游戏夜 通过组织…

阿里云云效多个ssh密钥对配置

实现功能 windows本地多个ssh密钥对,分别对应不同的阿里云账号的云效 实现办法 1.生成ssh密钥对 ssh-keygen -t rsa -f C:\xxx\id_rsa_customname(我这里C:\Users\admin\.ssh\id_rsa_customname) 2.配置.ssh目录的config文件 # ruiyi Host customnameHostName codeup.al…

IPSec隧道协议学习(一)

前情回顾 前面介绍的GRE隧道协议&#xff0c;可以字LAN之间通过Internet建立隧道&#xff0c;实现网络间资源共享&#xff0c;但是GRE隧道协议不能实现加密功能&#xff0c;传输的数据不受加密保护&#xff0c;为了实现在隧道间传输数据包收到加密保护&#xff0c;需要使用IPS…

贷款并非只看利息低,还有很多你知不道的地方

贷款这事儿&#xff0c;听起来像是天上掉馅饼&#xff0c;只要付点利息钱就能轻松拿到钱花&#xff0c;但实际上&#xff0c;它可是个需要精打细算的大工程。咱们得明白&#xff0c;贷款不只是利息那么简单&#xff0c;本金加利息&#xff0c;一个子儿都不能少还。所以&#xf…

B-树(不是B减树)原理剖析(1)

目录 B树的主要特性&#xff1a; B树的操作&#xff1a; B树的优点&#xff1a; 为什么要发明出B-树&#xff1f; B树的概念和原理剖析 原理图讲解(部分讲解在图中) 初始化结点&#xff1a; 处理数据数量计算(了解) 底层代码实现(加深理解) 前些日子我们学了AVl树&…

等保测评新趋势:企业如何领跑网络安全赛道

在当今数字化转型浪潮中&#xff0c;信息安全等级保护&#xff08;简称“等保”&#xff09;测评作为衡量企业网络安全管理水平的重要标尺&#xff0c;正随着网络环境的复杂度提升和法律法规的不断完善而持续进化。本文旨在深入剖析等保测评的最新趋势&#xff0c;并为企业提供…

【论文阅读】StoryMaker | 更全面的人物一致性开源工作

文章目录 1 Motivation2 背景 相关工作 Related work3 Method 方法4 效果 1 Motivation 背景是 Tuning-free personalized image generation methods无微调的个性化图像生成方式在维持脸部一致性上取得了显著性的成功。这里我不是很了解 然而&#xff0c;在多个场景中缺乏整…

iptables和nftables

什么是 nftables ? 它与 iptables 的区别是什么&#xff1f; 几乎每个 Linux 管理员都使用过 iptables&#xff0c;它是一个 Linux 系统的防火墙。但是你可能还不太熟悉 nftables&#xff0c;这是一个新的防火墙&#xff0c;可为我们提供一些必需的升级&#xff0c;还有可能会…

OJ在线评测系统 前端开发整合开源组件 Monaco Editor 并且开发创建题目页面

前端开发整合Monaco Editor 微软官方的 npm install monaco-editor 下载兼容版本 npm install monaco-editorlatest 代码编辑器 先把编辑器本身安装好monaco-editor 安装插件 npm install monaco-editor-webpack-plugin 这个插件的作用是把我们的代码编译器和webpack打包在…

Jenkins使用git和maven编写流水线

1、写git流水线 初识流水线。从git上拉取代码到虚拟机。 【第一步&#xff1a;创建一个新的流水线】 【第二步&#xff1a;定义名字】 点击下方ok&#xff01; 【第三步&#xff1a;添加代码描述】 【第四步&#xff1a;编写流水线代码&#xff0c;如果忘记了&#xff0c;参…

前端框架对比与选择

&#x1f916; 作者简介&#xff1a;水煮白菜王 &#xff0c;一位资深前端劝退师 &#x1f47b; &#x1f440; 文章专栏&#xff1a; 前端专栏 &#xff0c;记录一下平时在博客写作中&#xff0c;总结出的一些开发技巧✍。 感谢支持&#x1f495;&#x1f495;&#x1f495; 目…

功能测试详解

&#x1f345; 点击文末小卡片&#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 一、测试项目启动与研读需求文档 &#xff08;一&#xff09; 组建测试团队 1、测试团队中的角色 2、测试团队的基本责任 尽早地发现软件程序、系统或产品中所…

HarmonyOS鸿蒙开发实战(5.0)自定义路由栈管理

鸿蒙HarmonyOS NEXT开发实战往期文章必看&#xff08;持续更新......&#xff09; HarmonyOS NEXT应用开发性能实践总结 HarmonyOS NEXT应用开发案例实践总结合集 最新版&#xff01;“非常详细的” 鸿蒙HarmonyOS Next应用开发学习路线&#xff01;&#xff08;从零基础入门…

中伟视界:AI算法如何精准识别井下与传送带上堆料,提升矿山安全生产效率,减少事故风险

传送带堆料分为两种情况&#xff0c;一种是传送带的井下堆料检测AI算法&#xff0c;一种是传送带上面的堆料检测AI算法&#xff0c;传送带井下堆料检测AI算法是在带式输送机的漏煤下方井下安装摄像仪&#xff0c;通过视频分析检测井下堆煤情况&#xff0c;当洒煤堆积到一定程度…

31214324

&#x1f4e2;博客主页&#xff1a;https://blog.csdn.net/2301_779549673 &#x1f4e2;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指正&#xff01; &#x1f4e2;本文由 JohnKi 原创&#xff0c;首发于 CSDN&#x1f649; &#x1f4e2;未来很长&#…

T-Mobile AI客户服务:客户体验的新时代

目录 IntentCX的诞生利用AI的力量多方面的合作Nvidia的贡献客户服务的范式转变超越客户服务电信中AI的未来 T-Mobile宣布与著名的人工智能研究实验室OpenAI建立战略合作伙伴关系&#xff0c;这一开创性的举动旨在通过利用AI的力量来彻底改变公司的客户服务运营。 IntentCX的…