当前位置: 首页 > news >正文

uniapp left right 的左右模态框

标题


这是组件

<template><div class="content-wrapper"><divv-for="(vla, i) in products":key="i":class="['content-page', getPageClass(i)]"><slot :data="vla"><!-- 用户自定义的内容 --></slot></div></div></template><script>export default {props: {products: {type: Array,required: true},selectedIndex: {type: Number,default: 0}},methods: {getPageClass(index) {if (index === this.selectedIndex) {return 'active';} else if (index < this.selectedIndex) {return 'left';} else {return 'right';}}}};</script><style scoped>.content-wrapper {position: relative;overflow: hidden;height: 300px; /* 根据需要调整高度 */}.content-page {position: absolute;width: 100%;height: 100%;top: 0;left: 0;transition: all 0.3s ease;opacity: 0;transform: translateX(100%);display: flex;}.content-page.active {opacity: 1;transform: translateX(0);}.content-page.left {transform: translateX(-100%);}.content-page.right {transform: translateX(100%);}</style>

demo  组件调用模拟
 

<template><div><ProductSlider :products="products" :selectedIndex="selectedIndex"><template v-slot:default="{ data }"><div class="product-item"><h3>{{ data.name }}</h3><p>{{ data.description }}</p></div></template></ProductSlider><button @click="prev">Previous</button><button @click="next">Next</button></div></template><script>import ProductSlider from './components/content-wrapper.vue'; // 假设组件名为 ProductSliderexport default {components: {ProductSlider},data() {return {products: [{ name: 'Product 1', description: 'Description 1' },{ name: 'Product 2', description: 'Description 2' },{ name: 'Product 3', description: 'Description 3' }],selectedIndex: 0};},methods: {prev() {if (this.selectedIndex > 0) {this.selectedIndex--;}},next() {if (this.selectedIndex < this.products.length - 1) {this.selectedIndex++;}}}};</script><style scoped>.product-item {padding: 20px;background: #f0f0f0;border: 1px solid #ddd;border-radius: 4px;}</style>

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • webrtc ns 降噪之粉红噪声参数推导
  • 微软Edge浏览器
  • 2024数据泄露事件增涨迅猛,我们决不能坐以待毙!
  • day37-https实战
  • 【python数据分析11】——Pandas统计分析(分组聚合进行组内计算)
  • Nuxt3【路由中间件】middleware
  • 2024年新SCI顶刊算法信息获取优化算法IAO优化Transformer-GRU模型的多变量时间序列预测
  • 组合模式 详解
  • iPhone如何全选删除照片:一步到位的清理指南
  • 看书标记【数据科学:R语言实战 8】
  • VS Code安装与vue项目新建
  • 百数教学——企业互联,让业务合作跨越距离与障碍
  • java Arrays.fill方法介绍
  • SQL基础——函数与约束
  • MySQL:从入门到放弃
  • (ckeditor+ckfinder用法)Jquery,js获取ckeditor值
  • [译] 理解数组在 PHP 内部的实现(给PHP开发者的PHP源码-第四部分)
  • C++11: atomic 头文件
  • css选择器
  • Fundebug计费标准解释:事件数是如何定义的?
  • Java 11 发布计划来了,已确定 3个 新特性!!
  • LeetCode541. Reverse String II -- 按步长反转字符串
  • Linux学习笔记6-使用fdisk进行磁盘管理
  • mysql 数据库四种事务隔离级别
  • Nginx 通过 Lua + Redis 实现动态封禁 IP
  • PhantomJS 安装
  • RedisSerializer之JdkSerializationRedisSerializer分析
  • session共享问题解决方案
  • WePY 在小程序性能调优上做出的探究
  • 半理解系列--Promise的进化史
  • 分布式事物理论与实践
  • 紧急通知:《观止-微软》请在经管柜购买!
  • 前端临床手札——文件上传
  • 设计模式走一遍---观察者模式
  • 微服务核心架构梳理
  • 移动互联网+智能运营体系搭建=你家有金矿啊!
  • 原生JS动态加载JS、CSS文件及代码脚本
  • 责任链模式的两种实现
  • 怎么把视频里的音乐提取出来
  • No resource identifier found for attribute,RxJava之zip操作符
  • PostgreSQL 快速给指定表每个字段创建索引 - 1
  • scrapy中间件源码分析及常用中间件大全
  • 大数据全解:定义、价值及挑战
  • ​flutter 代码混淆
  • ​io --- 处理流的核心工具​
  • ​猴子吃桃问题:每天都吃了前一天剩下的一半多一个。
  • ​一文看懂数据清洗:缺失值、异常值和重复值的处理
  • # Swust 12th acm 邀请赛# [ K ] 三角形判定 [题解]
  • #APPINVENTOR学习记录
  • #Linux(make工具和makefile文件以及makefile语法)
  • #pragma 指令
  • #我与Java虚拟机的故事#连载11: JVM学习之路
  • (4.10~4.16)
  • (C#)获取字符编码的类
  • (SpringBoot)第二章:Spring创建和使用