vue使用glide.js实现轮播图(可直接复制使用)

news2024/11/26 21:17:50

效果图

可以实现自动轮播,3种切换方式:直接滑动图片、点击两侧按钮、点击底部按钮

体验链接:http://website.livequeen.top

实现

一、引入依赖

1、控制台引入依赖

npm install @glidejs/glide 

2、在css中引用

<style scoped>
@import '@glidejs/glide/dist/css/glide.core.min.css';
......
</style>

 3、在js代码中引用

import Glide from '@glidejs/glide';

二、页面布局

<template>
  <body>
    <!-- glide轮播图 -->
    <div class="glide">
      
      <div class="glide__track" data-glide-el="track">
        <!-- 轮播图集合 -->
        <div class="glide__slides">
          <!-- 轮播图item -->
          <div class="glide__slide" v-for="(item, index) in glideList">
            <!-- 中心动态展示文字及按钮 -->
            <div class="slide-caption">
              <h1>{{item.h1}}</h1>
              <h3>{{item.h3}}</h3>
              <button class="explore-btn">探索更多</button>
            </div>
            <!-- 虚化背景 -->
            <div class="backdrop"></div>
            <!-- 图片 -->
            <img :src="item.src" alt="" />
          </div>
        </div>
      </div>
      
      <!-- 左右切换控件 -->
      <div class="glide__arrows" data-glide-el="controls">
        <button class="glide__arrow glide__arrow--left" data-glide-dir="<"><</button>
        <button class="glide__arrow glide__arrow--right" data-glide-dir=">">></button>
      </div>
      
      <!-- 底部切换控件 -->
      <div class="glide__bullets" data-glide-el="controls[nav]">
        <button class="glide__bullet" :class="{active: nowActive === index}" :data-glide-dir="'=' + index" v-for="(item, index) in glideList"></button>
      </div>
    </div>
  </body>
</template>
<style scoped>
@import '@glidejs/glide/dist/css/glide.core.min.css';

/* 轮播图样式 */
.glide {
  position: relative;
  z-index: 50;
}

.glide__slide {
  display: flex;
  align-items: center;
  justify-content: center;
}

.glide__slide img {
  width: 100vw;
  max-width:100%;
  height: 100vh;
  object-fit: cover; /* 等比例缩放 */
}

/* 轮播图背景虚化遮罩 */
.backdrop {
  background: rgba(42, 42, 42, 0.69);
  z-index: 60;
  position: absolute;
  height: 100%;
  width: 100%;
  left: 0;
  top: 0;
  opacity: 0.3;
}

.glide__arrows {
  position: absolute;
  top: 50%;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;

  z-index: 40;
}

.glide__arrow {
  width: 40px;
  height: 40px;
  margin: 0px 20px;
  background: rgba(255,255,255,0.3);
  border: 1px white;
  border-radius: 5px;
  color: white;
  font-size: 18px;
  cursor: pointer;
}

.glide__arrow:hover{
  background: rgba(255,255,255,0.5);
}

.glide__arrow:active{
  background: rgba(255,255,255,0.7);
}

.glide__bullets {
  position: absolute;
  bottom: 15px;
  width: 100%;

  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 40;
}

.glide__bullet {
  width: 35px;
  height: 5px;
  margin: 0 5px;

  border: none;
}

.glide__bullet.active {
  background-color: darkorange;
}


/* 这部分是内部其他组件的样式 */
.slide-caption {
  position: absolute;
  z-index: 70;
  color: #e7e9ec;
  text-align: center;
  max-width: 60vw;

  pointer-events: auto;
}

.slide-caption > * {
  opacity: 0;
}

.slide-caption h1 {
  font-size: 54px;
  font-weight: 600;
}

.slide-caption h3 {
  font-size: 24px;
  margin: 48px 0;
}

.explore-btn {
  padding:  14px 32px;
  background-color: #FB6354;
  border: 0;
  border-radius: 4px;
  color: #e7e9ec;
  font-size: 18px;
  cursor: pointer;
  outline: none;
}

</style>

 三、glide参数配置

<script>
import Glide from '@glidejs/glide';

import glide1 from '../src/assets/img/glide1.jpg';
import glide2 from '../src/assets/img/glide2.jpg';
import glide3 from '../src/assets/img/glide3.jpg';


export default {
  data() {
    return {
      // vue组件实例对象
      glide: '',
      // 当前glide轮播图序号
      nowActive: 0,
      // glide配置参数
      glideConfig: {
        startAt: 0,         // 一开始显示哪一张幻灯片
        autoplay: 4000,     // 自动播放时间间隔
        hoverpause: false,   // 鼠标停留幻灯片上时,停止自动播放
      },
      // glide-数据列表
      glideList: [
        {
          h1: '科技推动人类进步,研发引领实业发展。',
          h3: '自力更生是中华民族自立于世界民族之林的奋斗基点,自主创新是我们攀登世界科技高峰的必由之路。',
          src: glide1,
          type: 'img'
        },
        {
          h1: '科技推动人类进步,研发引领实业发展。',
          h3: '自力更生是中华民族自立于世界民族之林的奋斗基点,自主创新是我们攀登世界科技高峰的必由之路。',
          src: glide2,
          type: 'img'
        },
        {
          h1: '科技推动人类进步,研发引领实业发展。',
          h3: '自力更生是中华民族自立于世界民族之林的奋斗基点,自主创新是我们攀登世界科技高峰的必由之路。',
          src: glide3,
          type: 'img'
        }
      ]
    };
  },
  mounted () {
    this.init()
  },
  methods: {

    /**
     * 初始化
     */
    init () {
      this.initGlide();
    },

    /**
     * 初始化glide
     */
    initGlide () {
      this.glide = new Glide('.glide', this.glideConfig);

      // 及时更新底部bullet的选中状态
      this.glide.on('move', () => {
        this.nowActive = this.glide.index;
      });

      this.glide.mount();
    }
  }
};
</script>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1875612.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

#HDC2024 心得分享#主题演讲学习-加入鸿蒙生态正当时

一、主题演讲学习心得 通过本次主题演讲的聆听与学习&#xff0c;我们在猜出中和不太确定的相关内容纷纷呈现。比如鸿蒙内核与HarmonyOS Next获得行业内最高等级的安全认证&#xff1b;盘古大模型、小艺智能体、意图理解与分发框架等构筑的AI、AIGC能力对HarmonyOS Next及原生…

新手做ASO优化必须要了解的8大指标

在进行 ASO 优化时&#xff0c;以下这些指标通常应优先考虑&#xff1a; 1. 关键词排名 - 这是衡量 ASO 效果的关键指标之一。了解您的应用在特定关键词搜索结果中的位置&#xff0c;有助于评估优化策略的有效性。 2. APP下载量 - 直接反映了应用的受欢迎程度和ASO工作对吸…

单片机使用printf在串口输出字符串

把字符串使用printf输出的本质 实际上调用了putchar和串口字符输出函数&#xff0c;参考 以51单片机中的程序为例 在主函数中使用printf函数向串口发送字符串&#xff0c;当然保证已经定义好串口的波特率等参数 while(1){//uart0SendString("start....\n");prin…

第1章_搭建开发环境

文章目录 第1章 搭建开发环境1.1开发套件硬件接口资源介绍1.2资料下载1.3安装Keil MDK1.3.1**软件下载**1.3.2**软件安装**1.3.3 PACK 安装 1.4 安装 STM32CubeMX1.5 安装 STM32CubeProgrammer1.6 安装 ST-Link 驱动1.7 安装 CH340 驱动 第1章 搭建开发环境 1.1开发套件硬件接…

SpringBoot 3.3.1 + Minio 实现极速上传和预览模式

统一版本管理 <properties><minio.version>8.5.10</minio.version><aws.version>1.12.737</aws.version><hutool.version>5.8.28</hutool.version> </properties><!--minio --> <dependency><groupId>io.m…

谷歌如何进行失效链接建设?

失效链接建设是一种高效的外链建设策略&#xff0c;通过发现并利用失效链接来提升自己网站的SEO。以下是详细的步骤&#xff1a; 寻找失效页面&#xff1a;你需要使用SEO工具&#xff0c;如Ahrefs&#xff0c;来查找与你的网站内容相关的失效页面。这些页面可能是竞争对手的失…

【进阶篇-Day6:JAVA中Arrays工具类、排序算法、正则表达式的介绍】

目录 1、Arrays工具类2、排序算法2.1 冒泡排序2.2 选择排序2.3 二分查找&#xff08;折半查找&#xff09;&#xff08;1&#xff09;概念&#xff1a;&#xff08;2&#xff09;步骤&#xff1a; 3、正则表达式3.1 正则表达式的概念&#xff1a;3.2 正则表达式的格式&#xff…

CST--如何在PCB三维模型中自由创建离散端口

在使用CST电磁仿真软件进行PCB的三维建模时&#xff0c;经常会遇到不能自动创建离散端口的问题&#xff0c;原因有很多&#xff0c;比如&#xff1a;缺少元器件封装、开路端口、多端子模型等等&#xff0c;这个时候&#xff0c;很多人会选择手动进行端口创建&#xff0c;但是&a…

【C语言】--操作符详解

&#x1f32d;个人主页: 起名字真南 &#x1f37f;个人专栏:【数据结构初阶】 【C语言】 目录 1 算术操作符1.1 和 -1.2 *1.3 /1.4 % 2 赋值操作符 &#xff1a;2.1 复合赋值符 3 单目操作符3.1 和- - 4 强制类型转换5 printf 和 scanf5.1 printf5.1.1 基本用法5.1.2 占位符5.…

Processing入门教程

目录&#xff1a; 课程前言认识PROCESSING 关于像素图形代码色彩与填充练习交互关于setup()和draw()第一次进行移动进一步复杂的交互操作代码实现如下&#xff1a;进一步了解PROCESSING 变量使用变量系统内置变量条件语句逻辑运算符循环语句while循环for循环结构化 函数实参对…

信息系统项目管理师(项目整合管理)补充

项目管理信息系统&#xff1a;给项目提供了IT软件工具&#xff0c;例如进度计划软件工具、工作授权系统、配置管理系统、信息收集与发布系统&#xff0c;或其他基于IT技术的工具。以及进入其他在线信息系统&#xff08;如知识库&#xff09;的登录界面&#xff0c;支持自动收集…

如何解决跨国视频会议卡顿问题

在全球化日益加深的今天&#xff0c;跨国视频会议已成为企业沟通协作的重要工具。然而&#xff0c;许多企业在使用跨国视频会议时&#xff0c;经常会遇到卡顿和延迟问题。这不仅影响会议的顺利进行&#xff0c;还可能对企业的业务决策和项目进度造成不良影响。本文将探讨跨国视…

如何正确使用C#短信接口发送招生短信

群发短信对教育机构来讲虽然是个不错的招生工具,但怎么使用决定着生源转化效率,如果是为了单纯的发短信而发短信效率当然不好,那么如何正确使用招生群发短信呢?技巧才是关键! 教育短信发送较多的就是招生群发短信内容,而运营商对教育行业内容审核一般比较严格,需要短信公司特殊…

前端通过ResizeObserver来监听dom大小动态渲染echarts

export const GlobalResizeObserver (function () {const ATTR_NAME global-resizeobserver-keyconst attrValueToCallback {}function antiShake(fn, delay, immediate false) {let timer null//不能用箭头函数return function () {//在时间内重复调用的时候需要清空之前…

独立开发者系列(12)——下单与支付

做业务有个绕不开的业务逻辑&#xff0c;就是支付。这里总结一个基础的支付电商逻辑闭环流程&#xff0c;完成支付基础体系的实现。这里假定我们要实现的是一个独立的电商平台上允许用户在平台充值&#xff0c;其他的类似多多购物或者淘宝购物的流程逻辑。 数据表结构的逻辑设…

ElementUI搭建使用过程

1.ElementUI概述 Element&#xff0c;一套为开发者、设计师和产品经理准备的基于 Vue 2.0 的桌面端组件库&#xff0c;相当于是css的框架 2.安装ElementUI 第一步&#xff1a;创建一个vue-cil项目 &#xff01;&#xff01;&#xff01;&#xff08;上篇文章已详细讲述搭建过…

线性代数知识点搜刮

求你别考太细... 目录 异乘变零定理 行列式转置 值不变 重要关系 中间相等&#xff0c;取两头 特征值公式 向量正交 点积为0 拉普拉斯定理 矩阵的秩 特征值和特征向量 |A|特征值的乘积 & tr(A)特征值的和 要记要背 增广矩阵 异乘变零定理 某行&#xff08;…

智能工业网络,需要何种工业以太网交换机作为支撑?

随着工业企业数字化及信息化的进一步深化升级&#xff0c;工业领域相关控制及信息系统的业务类型不断增加、复杂性不断提升&#xff0c;工业控制网络与工业信息网络也呈现融合趋势&#xff0c;具备支持多业务、多协议、多厂商设备和数据的互联互通、共网承载以及高质量传输能力…

C++ | Leetcode C++题解之第203题移除链表元素

题目&#xff1a; 题解&#xff1a; class Solution { public:ListNode* removeElements(ListNode* head, int val) {struct ListNode* dummyHead new ListNode(0, head);struct ListNode* temp dummyHead;while (temp->next ! NULL) {if (temp->next->val val) {…

p6spy 组件打印完整的 SQL 语句、执行耗时

一、前言 我们来配置一下 Mybatis Plus 打印 SQL 功能&#xff08;包括执行耗时&#xff09;&#xff0c;一方面可以了解到每个操作都具体执行的什么 SQL 语句&#xff0c; 另一方面通过打印执行耗时&#xff0c;也可以提前发现一些慢 SQL&#xff0c;提前做好优化&#xff0c…