Vue.js组件开发-实现全屏焦点图片带图标导航按钮控制图片滑动切换

server/2025/2/5 5:43:57/

使用 Vue 实现全屏焦点图片带图标导航按钮控制图片滑动切换

步骤

  1. 创建 Vue 项目:可以使用 Vue CLI 快速创建一个新的 Vue 项目。
  2. 设计组件结构:创建一个包含图片展示区域和导航按钮的组件。
  3. 实现图片滑动切换逻辑:通过点击导航按钮切换图片。
  4. 样式设计:设置全屏布局和样式。

代码实现

1. 创建 Vue 项目

首先,确保已经安装了 Vue CLI。如果没有安装,可以使用以下命令进行安装:

npm install -g @vue/cli

然后创建一个新的 Vue 项目:

vue create fullscreen-slider
cd fullscreen-slider
2. 编写组件代码

src/components 目录下创建一个 FullscreenSlider.vue 文件,代码如下:

<template><div class="fullscreen-slider"><!-- 图片展示区域 --><div class="slider-container"><!-- 遍历图片列表,显示当前图片 --><img:src="images[currentIndex]"alt="Slider Image"class="slider-image":key="currentIndex"/></div><!-- 导航按钮区域 --><div class="navigation-buttons"><!-- 上一张按钮 --><button @click="prevImage" class="nav-button"><i class="fas fa-chevron-left"></i></button><!-- 下一张按钮 --><button @click="nextImage" class="nav-button"><i class="fas fa-chevron-right"></i></button></div></div>
</template><script>
export default {name: 'FullscreenSlider',data() {return {// 图片列表,可根据需要添加更多图片链接images: ['https://via.placeholder.com/1920x1080?text=Image+1','https://via.placeholder.com/1920x1080?text=Image+2','https://via.placeholder.com/1920x1080?text=Image+3'],// 当前显示的图片索引currentIndex: 0};},methods: {// 切换到上一张图片prevImage() {// 如果当前索引大于 0,则将索引减 1if (this.currentIndex > 0) {this.currentIndex--;} else {// 如果当前索引为 0,则切换到最后一张图片this.currentIndex = this.images.length - 1;}},// 切换到下一张图片nextImage() {// 如果当前索引小于图片列表长度减 1,则将索引加 1if (this.currentIndex < this.images.length - 1) {this.currentIndex++;} else {// 如果当前索引为最后一张图片的索引,则切换到第一张图片this.currentIndex = 0;}}}
};
</script><style scoped>
/* 全屏滑块容器 */
.fullscreen-slider {position: relative;width: 100vw;height: 100vh;overflow: hidden;
}/* 图片容器 */
.slider-container {width: 100%;height: 100%;
}/* 图片样式 */
.slider-image {width: 100%;height: 100%;object-fit: cover;
}/* 导航按钮容器 */
.navigation-buttons {position: absolute;top: 50%;left: 0;right: 0;transform: translateY(-50%);display: flex;justify-content: space-between;padding: 0 20px;
}/* 导航按钮样式 */
.nav-button {background: rgba(0, 0, 0, 0.5);border: none;color: white;font-size: 24px;padding: 10px;cursor: pointer;border-radius: 5px;
}/* 导航按钮悬停效果 */
.nav-button:hover {background: rgba(0, 0, 0, 0.8);
}
</style>
3. 在 App.vue 中使用组件

打开 src/App.vue 文件,将代码替换为以下内容:

<template><div id="app"><!-- 使用 FullscreenSlider 组件 --><FullscreenSlider /></div>
</template><script>
// 引入 FullscreenSlider 组件
import FullscreenSlider from './components/FullscreenSlider.vue';export default {name: 'App',components: {FullscreenSlider}
};
</script><style>
#app {font-family: Avenir, Helvetica, Arial, sans-serif;-webkit-font-smoothing: antialiased;-moz-osx-font-smoothing: grayscale;text-align: center;color: #2c3e50;margin-top: 60px;
}
</style>

代码注释说明

  • HTML 部分

    • <img> 标签用于显示当前图片,通过 :src 绑定图片链接。
    • <button> 标签用于创建导航按钮,通过 @click 绑定点击事件。
  • JavaScript 部分

    • data 函数返回一个对象,包含图片列表和当前图片索引。
    • prevImage 方法用于切换到上一张图片。
    • nextImage 方法用于切换到下一张图片。
  • CSS 部分

    • .fullscreen-slider 设置全屏布局和溢出隐藏。
    • .slider-image 设置图片填充整个容器。
    • .navigation-buttons 设置导航按钮的位置和样式。

使用说明

  1. 运行项目:在项目根目录下运行以下命令启动开发服务器:
npm run serve
  1. 修改图片:在 FullscreenSlider.vue 文件的 data 函数中,修改 images 数组,添加或替换图片链接。
  2. 样式调整:根据需要修改 FullscreenSlider.vue 文件中的 CSS 样式,调整布局和外观。

注意事项

  • 确保已经安装了 Font Awesome 图标库,用于显示导航按钮的图标。可以在 public/index.html 文件中添加以下代码引入:
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta3/css/all.min.css">

http://www.ppmy.cn/server/165077.html

相关文章

深入核心:一步步手撕Tomcat搭建自己的Web服务器

介绍&#xff1a; servlet&#xff1a;处理 http 请求 tomcat&#xff1a;服务器 Servlet servlet 接口&#xff1a; 定义 Servlet 声明周期初始化&#xff1a;init服务&#xff1a;service销毁&#xff1a;destory 继承链&#xff1a; Tomcat Tomcat 和 servlet 原理&#x…

简单的SQL语句的快速复习

语法的执行顺序 select 4 字段列表 from 1 表名列表 where 2 条件列表 group by 3 分组前过滤 having 分组后过滤 order by 5 排序字段列表 limit 6 分页参数 聚合函数 count 统计数量 max 最大值 min 最小值 avg 平均 sum 总和 分组查询使…

AJAX笔记原理篇

黑马程序员视频地址&#xff1a; AJAX-Day03-01.XMLHttpRequest_基本使用https://www.bilibili.com/video/BV1MN411y7pw?vd_source0a2d366696f87e241adc64419bf12cab&spm_id_from333.788.videopod.episodes&p33https://www.bilibili.com/video/BV1MN411y7pw?vd_sour…

3D图形学与可视化大屏:什么是材质属性,有什么作用?

一、颜色属性 漫反射颜色 漫反射颜色决定了物体表面对入射光进行漫反射后的颜色。当光线照射到物体表面时&#xff0c;一部分光被均匀地向各个方向散射&#xff0c;形成漫反射。漫反射颜色的选择会直接影响物体在光照下的外观。例如&#xff0c;一个红色的漫反射颜色会使物体在…

Linux+Docer 容器化部署之 Shell 语法入门篇 【Shell 循环类型】

文章目录 一、Shell 循环类型二、Shell while 循环三、Shell for 循环四、Shell until 循环五、Shell select 循环六、总结 一、Shell 循环类型 循环是一个强大的编程工具&#xff0c;使您能够重复执行一组命令。在本教程中&#xff0c;您将学习以下类型的循环 Shell 程序&…

【LeetCode 刷题】贪心算法(1)-基础

此博客为《代码随想录》二叉树章节的学习笔记&#xff0c;主要内容为贪心算法基础的相关题目解析。 文章目录 455.分发饼干1005.K次取反后最大化的数组和860.柠檬水找零 455.分发饼干 题目链接 class Solution:def findContentChildren(self, g: List[int], s: List[int]) -…

PostgreSQL 数据库模式基础操作

查看数据库或者使用pgAdmin或者QGIS查看PG数据库时&#xff0c;可以看到数据库名下面有一个Public&#xff0c;然后才是具体的表&#xff0c;搜索了一下&#xff0c;按照PG官网&#xff1a;https://www.postgresql.org/docs/current/ddl-schemas.html 的说明&#xff0c;这个Pu…

python属性修饰器

在 Python 中&#xff0c;属性装饰器&#xff08;property&#xff09; 是一种用于管理类属性访问的高级工具&#xff0c;它可以让你在访问或修改属性时添加自定义逻辑&#xff08;如数据验证、计算属性等&#xff09;。 1. 基础用法&#xff1a;将方法伪装成属性 property 允…