Vue3中实现轮播图

目录

[1. 轮播图介绍](#1. 轮播图介绍)

[2. 实现轮播图](#2. 实现轮播图)

[2.1 准备工作](#2.1 准备工作)

1、准备至少三张图片,并将图片文件名改为数字123

2、搭好HTML的标签

3、写好按钮和图片标签

​编辑

[2.2 单向绑定图片](#2.2 单向绑定图片)

[2.3 在按钮里使用方法](#2.3 在按钮里使用方法)

[2.4 运行代码](#2.4 运行代码)

[3. 完整代码](#3. 完整代码)


1. 轮播图介绍

首先,什么是轮播图? 轮播图是指提供【上一页】【下一页】进而能切换图片 , 这在前端页面中是十分常见的一个页面显示

那么好 , 接下来我们看看具体的效果图,这是刚运行的效果:

当我们点击下一页时,图片切换到下一张,并且点击上一页时,必须是之前的上一页

2. 实现轮播图

2.1 准备工作

因为图片的切换是由按钮控制的,所以<img src=等于后面的值一定是个变量,这样才能由按钮中的方法控制,所以我们应该把图片名称设置简单而又容易控制的

1、准备至少三张图片,并将图片文件名改为数字123

这些图片尽量与HTML文件放在同一个目录下

2、搭好HTML的标签

3、写好按钮和图片标签

这个时候,其实已经有模有样的了,我们运行一下代码:

2.2 单向绑定图片

我们要把之前的src地址改成

<img src=`${参数名}. 图片的格式**`**

同时:v-bind能绑定src 使得图片能显示到页面 , 即使id发生变化 , 也不会影响图片显示

接着在script标签中定义一个id

2.3 在按钮里使用方法

在button按钮里 , 通过@click ="方法名" 来进行事件控制图片切换

在script 标签中定义方法的同时 , 对id的加减进行一个if语句判断:

2.4 运行代码

当我们在第一页时 依然点击上一页按钮, 页面就会弹窗提示

当这是最后一页的时候 , 继续下一页也会弹窗提示

3. 完整代码

html 复制代码
<!DOCTYPE html>
<html lang="zh-CN">

<head>
    <title>轮播图</title>
</head>
<div id="app">
    <img :src=`${id}.png` style="width: 700px;height: 400px;">
    <br>
    <!-- 在button标签中添加按钮 -->
    <button @click="prevPage">上一页</button>
    <button @click="nextPage">下一页</button>
</div>

<body>
    <script type="module">
        import { createApp, ref } from "./vue.esm-browser.js"
        createApp({
            setup() {
                //定义图片id
                const id = ref(1);
                //定义方法
                //上一页
                const prevPage = () => {
                    if (id.value <= 1) {
                        alert("已经是第一张了");
                    } else {
                        id.value--;
                    }
                }
                //下一页
                const nextPage = () => {
                    if (id.value >= 3) {
                        alert("已经是最后一张了");
                    } else {
                        id.value++;
                    }
                }
                return {
                    id,
                    prevPage,
                    nextPage
                }
            }
        }).mount("#app")
    </script>
</body>

</html>
相关推荐
2601_9628857216 分钟前
quotes 字段全解:涨跌幅、振幅、换手率的口径与单位
java·前端·spring
excel38 分钟前
encodeURI 和 encodeURIComponent 有什么区别?
前端
前端精髓42 分钟前
调用openrouter的免费API模型
java·前端·javascript
赛博守夜人1 小时前
AI安全攻防与治理之十四:AI 安全测试不能脱离传统安全,Web、API、移动端与模型攻击面的组合拳
前端·人工智能·安全
开开心心_Every1 小时前
快速隐藏程序工具自定义快捷键一键切换
java·开发语言·前端·spring·智能手机·word·intellij-idea
chenbingjie_c1 小时前
C++ 多态完全指南:从虚函数重写到虚函数表原理
开发语言·c++
吴卫斌1 小时前
定投ETF实战指南(四):行业/主题ETF——定投的“进攻端“
开发语言·python·股票·量化
networknomad2 小时前
OpenReplay:自己搭的会话回放工具,给前端排错用的
前端·其他
缓慢更新2 小时前
AI 辅助生成单测:从接口定义到用例的流水线
java·服务器·前端·网络·数据库·人工智能
超级架构师3 小时前
PRAXO-CORE 2.5.0:用 conformance 和显式边界构建 Go Agent 框架
开发语言·人工智能·后端·golang·ai编程·智能体框架·praxo-core