简单的图片自动切换(类似百叶窗的效果)

下面是我用其他方法做出来的一个图片简单自动切换的功能

HTML 代码:

先设置一个具有宽高的盒子,在给盒子里放3张图片

on 这个类是为了让后面给图片做一个切换的效果,类似如高量切换的作用一样

CSS 代码:

给图片一个定位,让他根据box进行定位。这样后三张图片就会重叠在一起。这样我们就可以调整z-index让图片显示。

注:z-index是配合定位使用的,z-index大的最先显示。

 

JS部分:

 

JS的原理很简单。

因为上面我们给on这个类设置了z-index=99,也就是说on这个类在那张图片上面,那张图片就显示。

 

一开始先用for循环遍历所有图片,然后把带有on这个类的元素全部清除

然后在把on附加在要显示的图片身上,这样子那张图片就会显示

 

这样只能做到一次性的切换

那就用一个间隔性计时器切换的方法,这样就可以让一次的方法变成循环的

 

你要是觉得切换没有什么动画效果,你也可以添加

如:

你可以使用Vue的绑定语法 `:style` 和 `@click`,来实现点击盒子切换背景图片效果。具体方法如下: 1. 在Vue组件的data中定义一个变量`bgIndex`,用于记录当前显示的背景图片的索引。并定义一组背景图片的数组`bgList`,用于存储不同的背景图片路径。 ``` data() { return { bgIndex: 0, bgList: [ 'images/bg1.jpg', 'images/bg2.jpg', 'images/bg3.jpg' ] } } ``` 2. 在Vue组件的模板中,使用`div`元素作为盒子,并绑定`style`属性,将背景图片路径设置为当前`bgIndex`所指向的图片。同时,给`div`元素绑定`@click`事件,当点击盒子时,执行`changeBg()`方法,切换背景图片。 ``` <template> <div class="box" :style="{ backgroundImage: 'url(' + bgList[bgIndex] + ')' }" @click="changeBg"></div> </template> ``` 3. 在Vue组件的方法中,定义`changeBg()`方法,用于切换背景图片。在该方法中,将`bgIndex`加1,如果`bgIndex`的值大于等于背景图片数组的长度,就将`bgIndex`重置为0,从而实现循环切换背景图片效果。 ``` methods: { changeBg() { this.bgIndex++; if (this.bgIndex >= this.bgList.length) { this.bgIndex = 0; } } } ``` 完整的Vue组件代码如下所示: ``` <template> <div class="box" :style="{ backgroundImage: 'url(' + bgList[bgIndex] + ')' }" @click="changeBg"></div> </template> <script> export default { data() { return { bgIndex: 0, bgList: [ 'images/bg1.jpg', 'images/bg2.jpg', 'images/bg3.jpg' ] } }, methods: { changeBg() { this.bgIndex++; if (this.bgIndex >= this.bgList.length) { this.bgIndex = 0; } } } } </script> <style scoped> .box { width: 500px; height: 300px; cursor: pointer; transition: background-image 0.5s ease-in-out; } </style> ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值