vue3制作轮播图+vue轮播图的图片引入方式

对应的<teemplate> 

<template>
	<div class="box">
	  <ul class="ul1" ref="ul1">
		<li v-for="(img, idx) in images" :key="idx" :style="{ zIndex: img.zIndex }">
		  <img :src="img.src" :width="img.width" :height="img.height">
		</li>
	  </ul>
	  <div class="left-botton indexs" id="left-botton" @click="moveLeft">&lt;</div>
	  <div class="right-botton indexs" id="right-botton" @click="moveRight">&gt;</div>
	  <ul class="ul2 indexs" ref="ul2">
		<li v-for="(button, idx) in buttons" :key="idx"
		  :style="{ backgroundColor: button.backgroundColor, color: button.color }"
		  @click="jumpTo(idx)">
		  <img :src="button.imgSrc" :alt="button.alt">
		</li>
	  </ul>
	</div>
  </template>

轮播图引入方式,我查阅资料,试了很多种方法,包括require引入等等,都发现不行,于是自己试出一种方法 

<script>
  import img86 from '../image/img86.jpg';/*先定义一个变量再将变量引入*/
  import img87 from '../image/img87.jpg';
  import img88 from '../image/img88.jpg';
  import img89 from '../image/img89.jpg';
  import img92 from '../image/img92.png';
  export default {
	data() {
	  return {
		images: [
		{ src: img86, width: 1520, height: 800, zIndex: 0 },
		{ src: img87, width: 1520, height: 800, zIndex: 0 },
		{ src: img88, width: 1520, height: 800, zIndex: 0 },
		{ src: img89, width: 1520, height: 800, zIndex: 100 }

		],
		buttons: [
		  { backgroundColor: '#fff', color: '#000', imgSrc: img92, alt: '祥云' },
		  { backgroundColor: '#fff', color: '#000', imgSrc: img92, alt: '祥云' },
		  { backgroundColor: '#fff', color: '#000', imgSrc: img92, alt: '祥云' },
		  { backgroundColor: 'red', color: '#fff', imgSrc: img92, alt: '祥云' }
		],
		index: 0,
		timer: null
	  };
	},
	mounted() {
	  this.startInterval();
	},
	methods: {
	  startInterval() {
		this.timer = setInterval(() => {
		  this.index = (this.index + 1) % this.images.length;
		  this.updateSlide(this.index);
		}, 2000);
	  },
	  moveLeft() {
		clearInterval(this.timer);
		this.index = (this.index - 1 + this.images.length) % this.images.length;
		this.updateSlide(this.index);
		this.startInterval();
	  },
	  moveRight() {
		clearInterval(this.timer);
		this.index = (this.index + 1) % this.images.length;
		this.updateSlide(this.index);
		this.startInterval();
	  },
	  jumpTo(idx) {
		clearInterval(this.timer);
		this.index = idx;
		this.updateSlide(this.index);
		this.startInterval();
	  },
	  updateSlide(index) {
		this.images.forEach((img, idx) => {
		  img.zIndex = idx === index ? 100 : 0;
		});
		this.buttons.forEach((button, idx) => {
		  button.backgroundColor = idx === index ? 'red' : '#fff';
		  button.color = idx === index ? '#fff' : '#000';
		});
	  }
	}
  };
  </script>

对应的css

<style scoped>
*{
	font-size: 12px;
}
ul{
	margin: 0;
	padding: 0;
	list-style: none;
}
      .box{
            width: 1520px;
		  height: 800px;
		  position: relative;
		  border: 1px red solid;
      }
.ul1{
	width: 100%;
	height: 100%;
}
.ul1>li{
	position: absolute;
}
.left-botton{
	position: absolute;
	width: 35px;
	height: 70px;
	background-color: #00000050;
	color: #ccc;
	top:195px;
    border-radius:0 5px 5px 0;
	text-align: center;
	line-height: 70px;
	font-size: 27px;
}

.left-botton:hover{
	background-color: #00000050;
	color: #fff;
	
}  
.right-botton{
	position: absolute;
	width: 35px;
	height: 70px;
	background-color: #00000050;
	color: #ccc;
	top:195px;
    border-radius:0 5px 5px 0;
	text-align: center;
	line-height: 70px;
	font-size: 27px;
	right: 0;
}

.right-botton:hover{
	background-color: #00000050;
	color: #fff;
	
}
.ul2{
	position: absolute;
	bottom: 20px;
	right: 100px;
}

.ul2>li {
  width: 20px;
  height: 20px;
  background-color: #fff;
  text-align: center;
  line-height: 20px;
  border-radius: 100%;
  float: left;
  margin-right: 10px;
  padding: 5px; /* 调整祥云图案与背景之间的间距 */
}

.ul2>li img {
  width: 100%; /* 设置祥云图案的宽度为父元素的100% */
  height: 100%; /* 设置祥云图案的高度为父元素的100% */
}

.ul2>li:hover{
	background-color: #00000050;
	color: #fff;		
}
.ul2>li:nth-child(1){
	background-color: #00000050;
	color: #fff;		
}
.ul2>li:nth-child(1){
	z-index: 100;
}
.indexs{
	z-index: 1000;
}
</scoped>

等我后续再补充实现思路和讲解 

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

使用大漠插件进行京东联盟转链

由于之前开发了一套使用api转链的接口在前面几个月失效了。因为京东联盟系统升级&#xff0c;导致之前可以转的链接现在必须要升级权限才可以。但是升级条件对于我们这些自己买东西转链想省点钱的人来说基本上达不到。 所以&#xff0c;基于这种情况。我之前研究过大漠插件&am…

数据库的学习(4)

一、题目 1、创建数据表qrade: CREATE TABLE grade(id INT NOT NULL,sex CHAR(1),firstname VARCHAR(20)NOT NULL,lastname VARCHAR(20)NOT NULL,english FLOAT,math FLOAT,chinese FLOAT ); 2、向数据表grade中插入几条数据: (3,mAllenwiiliam,88.0,92.0 95.0), (4,m,George&…

第七篇——攻谋篇:兵法第一原则——兵力原则,以多胜少

目录 一、背景介绍二、思路&方案三、过程1.思维导图2.文章中经典的句子理解3.学习之后对于投资市场的理解4.通过这篇文章结合我知道的东西我能想到什么&#xff1f; 四、总结五、升华 一、背景介绍 微观层面上&#xff0c;也有很多值得深度思考的问题 二、思路&方案 …

用ThreadLocal解决线程隔离问题

存在的以下代码所示的线程隔离问题&#xff1a; package study.用ThreadLocal解决线程隔离问题;/*线程隔离 - 在多线程并发场景下&#xff0c;每个线程的变量都应该是相互独立的线程A&#xff1a;设置&#xff08;变量1&#xff09; 获取&#xff08;变量1&#xff09;线程B&a…

瑞芯微rk356x TF卡烧写选择指定的屏幕打印烧写的过程

rk356x中TF卡烧写屏幕选择 1、开发环境2、问题描述3、解决办法4、总结5、 图片展示1、开发环境 系统:linux系统 芯片:356x 显示:多屏显示(HDMI, MIPI, LVDS, EDP) 2、问题描述 由于在多屏显示的情况下,HDMI屏在LVDS、MIPI或者EDP协同下,默认情况下,在TF卡烧录过程中…

论文润色最强最实用ChatGPT提示词指令

大家好&#xff0c;感谢关注。我是七哥&#xff0c;一个在高校里不务正业&#xff0c;折腾学术科研AI实操的学术人。关于使用ChatGPT等AI学术科研的相关问题可以和作者七哥&#xff08;yida985&#xff09;交流&#xff0c;多多交流&#xff0c;相互成就&#xff0c;共同进步&a…

C++语言相关的常见面试题目(二)

1.vector底层实现原理 以下是 std::vector 的一般底层实现原理&#xff1a; 内存分配&#xff1a;当创建一个 std::vector 对象时&#xff0c;会分配一块初始大小的连续内存空间来存储元素。这个大小通常会随着 push_back() 操作而动态增加。 容量和大小&#xff1a;std::vec…

【Linux】进程间的通信----管道

&#x1f490; &#x1f338; &#x1f337; &#x1f340; &#x1f339; &#x1f33b; &#x1f33a; &#x1f341; &#x1f343; &#x1f342; &#x1f33f; &#x1f344;&#x1f35d; &#x1f35b; &#x1f364; &#x1f4c3;个人主页 &#xff1a;阿然成长日记 …

妈妈带女儿美在心里

在这个充满温情与惊喜的午后&#xff0c;阳光温柔地洒落在每一个角落&#xff0c;仿佛连空气弥漫着幸福的味道。就在这样一个平凡的时刻&#xff0c;一段关于爱与成长的温馨画面&#xff0c;悄然在网络上绽放&#xff0c;引爆了无数人的心弦——#奚梦瑶2岁女儿身高#&#xff0c…

在 VS Code 中自动化 Xcode 项目编译和调试

在 VS Code 中自动化 Xcode 项目编译和调试 在日常的开发工作中&#xff0c;Xcode 是 macOS、iOS、watchOS 和 tvOS 应用程序开发的主要工具。为了提高工作效率&#xff0c;许多开发者选择在 Visual Studio Code (VS Code) 中编辑代码&#xff0c;并希望能够直接从 VS Code 启…

【vue组件库搭建06】组件库构建及npm发包

一、格式化目录结构 根据以下图片搭建组件库目录 index.js作为入口文件&#xff0c;将所有组件引入&#xff0c;并注册组件名称 import { EButton } from "./Button"; export * from "./Button"; import { ECard } from "./Card"; export * fr…

网络通信总体框架

目录 网络通信 一、网络通信的定义与基本原理 二、网络通信的组成要素 三、网络通信的应用与发展 网络体系结构 一、网络体系结构的定义与功能 二、OSI七层参考模型 三、网络体系结构的重要性 网络核心与边缘 一、网络核心 1. 定义与功能 2. 组成部分 3. 技术特点 …

昇思25天学习打卡营第19天|LSTM+CRF序列标注

概述 序列标注指给定输入序列&#xff0c;给序列中每个Token进行标注标签的过程。序列标注问题通常用于从文本中进行信息抽取&#xff0c;包括分词(Word Segmentation)、词性标注(Position Tagging)、命名实体识别(Named Entity Recognition, NER)等。 条件随机场&#xff08…

01:spring

文章目录 一&#xff1a;常见面试题1&#xff1a;什么是Spring框架&#xff1f;1.1&#xff1a;spring官网中文1.2&#xff1a;spring官网英文 2&#xff1a;谈谈自己对于Spring IOC和AOP的理解2.1&#xff1a;IOCSpring Bean 的生命周期主要包括以下步骤&#xff1a; 2.2&…

国产化新标杆:TiDB 助力广发银行新一代总账系统投产上线

随着全球金融市场的快速发展和数字化转型的深入推进&#xff0c;金融科技已成为推动银行业创新的核心力量。特别是在当前复杂多变的经济环境下&#xff0c;银行业务的高效运作和风险管理能力显得尤为重要。总账系统作为银行会计信息系统的核心&#xff0c;承载着记录、处理和汇…

MySQL-行级锁(行锁、间隙锁、临键锁)

文章目录 1、介绍2、查看意向锁及行锁的加锁情况3、行锁的演示3.1、普通的select语句&#xff0c;执行时&#xff0c;不会加锁3.2、select * from stu where id 1 lock in share mode;3.3、共享锁与共享锁之间兼容。3.4、共享锁与排他锁之间互斥。3.5、排它锁与排他锁之间互斥3…

离线开发(VSCode、Chrome、Element)

一、VSCode 扩展 使用能联网的电脑 A&#xff0c;在VSCode官网下载安装包 使用能联网的电脑 A&#xff0c;从扩展下载vsix扩展文件 将VSCode安装包和vsix扩展文件通过手段&#xff08;u盘&#xff0c;刻盘 等&#xff09;导入到不能联网的离线电脑 B 中 在离线电脑 B 中安装…

计算机网络之无线局域网

1.无线局域网工作方式 工作方式&#xff1a;每台PC机上有一个无线收发机&#xff08;无线网卡&#xff09;&#xff0c; 它能够向网络上的其他PC机发送和接受无线电信号。 与有线以太网相似&#xff0c;无线局域网也是打包方式发送数据的。每块网卡都有一个永久的、唯一的ID号…

springboot配置扫描生效顺序

文章目录 举例分析项目结构如下noddles-user-backend 两个配置文件noddles-user-job 配置文件noddles-user-server 配置文件问题:server和Job启动时对应加载的数据库配置为哪一个&#xff1f; 总结 在微服务架构中&#xff0c;backend模块会定义一个基础的配置文件&#xff0c;…

java集合(2)

目录 一. Map接口下的实现类 1. HashMap 1.1 HashMap常用方法 2. TreeMap 2.1 TreeMap常用方法 3. Hashtable 3.1 Hashtable常用方法 4.Map集合的遍历 4.1 根据键找值 4.2 利用map中的entrySet()方法 二.Collections类 1.Collections类中的常用方法 三. 泛型 1. 为什…