当前位置: 首页 > news >正文

Vue.js组件开发-实现全屏平滑移动、自适应图片全屏滑动切换

使用Vue实现全屏平滑移动、自适应图片全屏滑动切换的功能。使用Vue 3和Vue Router,并结合一些CSS样式来完成这个效果。

步骤

  1. 创建Vue项目:使用Vue CLI创建一个新的Vue项目。
  2. 准备图片:将需要展示的图片放在项目的public目录下。
  3. 创建组件:创建一个FullscreenImageSlider组件来实现图片滑动切换功能。
  4. 路由配置:在router/index.js中配置路由,将FullscreenImageSlider组件添加到路由中。
  5. 样式设计:使用CSS样式实现全屏显示和图片自适应。
  6. 实现滑动切换逻辑:使用JavaScript实现图片的平滑滑动切换。

详细代码及注释

1. 创建Vue项目

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

npm install -g @vue/cli

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

vue create fullscreen-image-slider
cd fullscreen-image-slider
2. 准备图片

将需要展示的图片放在public目录下,例如public/images目录。

3. 创建组件

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

<template><div class="fullscreen-slider"><!-- 图片容器 --><div class="slider-container" :style="{ transform: `translateX(-${currentIndex * 100}%)` }"><!-- 遍历图片数组,渲染每个图片 --><imgv-for="(image, index) in images":key="index":src="`/images/${image}`"alt="Fullscreen Image"class="slider-image"/></div><!-- 上一张按钮 --><button class="slider-button prev" @click="prevImage"><i class="fas fa-chevron-left"></i></button><!-- 下一张按钮 --><button class="slider-button next" @click="nextImage"><i class="fas fa-chevron-right"></i></button></div>
</template><script setup>
import { ref } from 'vue';// 定义图片数组,这里假设图片名称为image1.jpg, image2.jpg, image3.jpg
const images = ref(['image1.jpg', 'image2.jpg', 'image3.jpg']);
// 当前显示的图片索引
const currentIndex = ref(0);// 上一张图片的方法
const prevImage = () => {// 如果当前索引大于0,则将索引减1if (currentIndex.value > 0) {currentIndex.value--;} else {// 否则将索引设置为最后一张图片的索引currentIndex.value = images.value.length - 1;}
};// 下一张图片的方法
const nextImage = () => {// 如果当前索引小于图片数组的长度减1,则将索引加1if (currentIndex.value < images.value.length - 1) {currentIndex.value++;} else {// 否则将索引设置为0currentIndex.value = 0;}
};
</script><style scoped>
.fullscreen-slider {position: relative;width: 100vw;height: 100vh;overflow: hidden;
}.slider-container {display: flex;width: 300%; /* 根据图片数量调整宽度 */height: 100%;transition: transform 0.5s ease; /* 平滑过渡效果 */
}.slider-image {width: 100vw;height: 100vh;object-fit: cover; /* 图片自适应 */
}.slider-button {position: absolute;top: 50%;transform: translateY(-50%);background-color: rgba(0, 0, 0, 0.5);color: white;border: none;padding: 10px;cursor: pointer;z-index: 10;
}.prev {left: 10px;
}.next {right: 10px;
}
</style>
4. 路由配置

src/router/index.js中配置路由,将FullscreenImageSlider组件添加到路由中:

import { createRouter, createWebHistory } from 'vue-router';
import FullscreenImageSlider from '../components/FullscreenImageSlider.vue';const routes = [{path: '/',name: 'FullscreenImageSlider',component: FullscreenImageSlider,},
];const router = createRouter({history: createWebHistory(import.meta.env.BASE_URL),routes,
});export default router;
5. 修改App.vue

src/App.vue中引入路由:

<template><div id="app"><router-view></router-view></div>
</template><script setup>
</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>

使用说明

  1. 运行项目:在项目根目录下运行以下命令启动开发服务器:
npm run dev
  1. 添加图片:将需要展示的图片放在public/images目录下,并在FullscreenImageSlider.vue组件的images数组中添加图片名称。
  2. 浏览效果:打开浏览器,访问http://localhost:5173,即可看到全屏图片滑动切换的效果。点击左右箭头按钮可以切换图片。

注意事项

  • 确保图片名称和路径正确,否则图片将无法显示。
  • 可以根据需要调整图片数组的内容和样式,以满足不同的需求。
http://www.lryc.cn/news/529002.html

相关文章:

  • 水果实体店品牌数字化:RWA + 智能体落地方案
  • DeepSeek模型:开启人工智能的新篇章
  • Kubernetes 环境中的自动化运维实战指南
  • 深入解析 C++17 中的 std::not_fn
  • unity实现回旋镖函数
  • 想品客老师的第九天:原型和继承
  • 力扣【416. 分割等和子集】详细Java题解(背包问题)
  • 2025年AI手机集中上市,三星Galaxy S25系列上市
  • 为AI聊天工具添加一个知识系统 之79 详细设计之20 正则表达式 之7
  • 理解PLT表和GOT表
  • 6 年没回老家过年了
  • 【原创改进】SCI级改进算法,一种多策略改进Alpha进化算法(IAE)
  • 如何把一个python文件打包成一步一步安装的可执行程序
  • 防火墙安全策略部署
  • c++ map/multimap容器 学习笔记
  • 【解决方案】MuMu模拟器移植系统进度条卡住98%无法打开
  • 日志收集Day007
  • 虚拟机里网络设置-桥接与NAT
  • 人工智能 - 1
  • 小程序-基础加强-自定义组件
  • Kafka 压缩算法详细介绍
  • 单词翻转(信息学奥赛一本通1144)
  • DeepSeek 模型全览:探索不同类别的模型
  • 我的2024年年度总结
  • DeepSeek回答人不会干出超出视角之外的事
  • 前端知识速记—JS篇:null 与 undefined
  • Hive:静态分区(分区语法,多级分区,分区的查看修改增加删除)
  • 升级到Mac15.1后pod install报错
  • 智慧园区管理系统为企业提供高效运作与风险控制的智能化解决方案
  • JxBrowser 8.2.2 版本发布啦!