vue实现轮播图

使用vuejs实现轮播图

一、原理

1.点击左右按钮切换图片
首先,图片src是动态变化的,需要使用v-bind动态绑定,缩写为“:”。
然后,为左右按钮点击事件(click)添加事件监听,v-on,缩写为“@”。
再次,将点击事件绑定方法(methods),通过index–和index++实现图片下标的变化。
2.首页和末页按钮的显示问题
给a标签添加v-show条件语句。当下标index不为0时,左按钮显示;当下表小于图片数组长度时,右按钮显示。

二、效果图

1.第一页 只有右侧按钮显示,可点击。
第一张 只能点击右按钮
2.中间页 左右两侧按钮都显示,且可点击。

中间页 两侧按钮都显示
3.末页 只有左侧按钮显示,可点击。

在这里插入图片描述

三、代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>轮播图</title>
    <style>
        *{
            margin: 0;
            padding: 0;
        }
        #app{
            position: absolute;
            margin:auto;
            top: 50%;
            left: 50%;
            transform:translate(-50%,-50%);
            border: 1px solid black;
        }
        .theImg{
            width: 300px;
            float: left;
        }
        #app a:hover{
            background-color: rgba(0,0,0,0.7);
        }
        .arrow{
            position: absolute;
            top:120px;
            z-index: 999;
            font-size: 40px;
            color: #fff;
            background-color: rgba(0,0,0,0.3);
            width: 40px;
            text-align: center;
            border-radius: 10%;
        }
        .pre{
            left:0px;
        }
        .next{

            right: 0px;

        }
    </style>
</head>
<body>
    <div id="app">
        <a href="#" @click="prev" v-show="index!=0" class="pre arrow">&lt;</a>
        <img :src="imgArr[index]" class="theImg">
        <a href="#" @click="next" v-show="index<imgArr.length-1" class="next arrow">&gt;</a>
    </div>
    <script src="javascript/vue.js"></script>
    <script>
        const app = new Vue({
            el: '#app',
            data: {
                imgArr:[
                    "img/1.jpg",
                    "img/2.jpg",
                    "img/3.jpg",
                    "img/4.jpg",
                    "img/5.jpg",
                    "img/6.jpg",

                ],
                index:0,
            },
            methods:{
                prev:function(){
                    this.index--;
                },
                next:function(){
                    this.index++;
                }
            }
        })
    </script>


</body>
</html>

注:vue.js文件需要自行引入,图片文件也需要自行引入。

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值