vue.js - 在 vue 中创建轮播指示器
问题描述
我想通过使用滚动在两张幻灯片之间切换,并且我希望有一个指示器来显示正在显示的两张幻灯片中的哪一张。
构建滚动部分并不是很困难,并且已经完成。
我的问题是:
如何从 for 循环中提取 idx 值以了解正在显示的幻灯片中的哪一张?
这样我就可以用指标展示我在哪张幻灯片上。
滚动
这是用于在两个图像之间滚动的代码。
HTML
<div class="container_large">
<div v-for="(i,idx) in this.slider_header " class="scroll" :key="idx" >
<div :style="{height:'82px', width:'100%'}" v-if="idx==0" >
Slide 1
</div>
<div v-if="idx==1" :style="{height:'92px', width:'100%'}" >
Slide 2
</div>
</div>
</div>
CSS
.container_large{
width: 100%;
/* width: 90%; */
display: flex;
overflow-x: scroll;
margin-left: 0%;
height: 99px;
position: absolute;
margin-top: 27%;
z-index: 2;
}
.scroll{
min-width:388px;
position: relative;
margin-top: 0%;
border-radius: 8px;
display: flex;
height: 92px;
z-index: 1;
margin-left: 2%;
object-fit: cover;
}
指示器
此代码用于指示器显示当前正在显示的两个图像中的哪一个。
<div :style="{height:'15px', position:'absolute',marginTop:'51%',borderRadius:'8px',zIndex:'3', width:'30px',marginLeft:'43%',backgroundColor:'grey'}">
<div id="slide1" :style="{borderRadius:'50%',height:'13px',marginLeft:'8%',marginTop:'1.5%', width:'13px', zIndex:'4',backgroundColor:'white'}">
</div>
<div id="slide2" :style="{borderRadius:'50%',height:'13px',marginLeft:'51%',marginTop:'1.5%', width:'13px', zIndex:'4',backgroundColor:'white'}">
</div>
</div>
我想分别添加和v-if="idx==0"
来v-if="idx==1"
显示正在看到的其中一个,但是由于它们不在 for 循环中,所以这是行不通的。id="slide1"
id="slide2"
问题
如何捕获 idx 值或以其他方式解决此问题以呈现我所在的幻灯片?
解决方案
好的,所以我认为您v-if
的v-for
.
无需创建所有幻灯片,然后只需使用一系列条件渲染其中一个。
你有没有考虑过这样的事情?
<div class="container_large">
<div
class="slide"
:style="slides[activeSlide].style">
{{slides[activeSlide].text}}
</div>
</div>
推荐阅读
- android - 当 React 本机应用程序启动时,如何在设备上保存/缓存所有数据以便在后台快速加载和更新?
- c++ - 没有名为“stoi”的成员
- spring-boot - SpringBoot项目中的CORS配置错误
- amazon-web-services - AWS中的BaseUrl映射不一致
- sql - 如何在sql server中将连续的序列号顺序排列为两列或多列?
- flutter - 添加 Firestore 文档时出现 PlatformException 错误(java.lang.IllegalArgumentException:无效数据。不支持嵌套数组)
- html - CSS 弹性布局
- c - 自由函数的动态内存问题。应用程序在堆缓冲区结束后写入内存
- python - Python:通过基于搜索的索引页面进行抓取
- sql - 过滤自联接并仅包含与嵌套联接不匹配的行