轮播图 鼠标移入放大,移出还原

 

<template>
	<swiper :slides-per-view="1" pagination navigation class="banner" :modules="modules">
		<swiper-slide v-for="(slide, index) in slides" :key="index">
			<img
				:src="slide.image"
				:alt="slide.alt"
				style="width: 300px; height: 300px; overflow: hidden"
				class="banner-image"
				@mouseenter="mouseOver(index)"
				@mouseleave="mouseLeave(index)" />
		</swiper-slide>
	</swiper>
</template>
<script setup>
import { Swiper, SwiperSlide } from 'swiper/vue'
import { Navigation, Pagination, Scrollbar, A11y } from 'swiper/modules'
import 'swiper/swiper-bundle.css'
import { ref } from 'vue'
const slides = ref([
	{
		image:
			'https://img2.baidu.com/it/u=3064513872,3876540107&fm=253&app=138&size=w931&n=0&f=JPEG&fmt=auto?sec=1737046800&t=51e0dfc9aa60912f87bfd942a53cd787',
		alt: 'Slide 1'
	},
	{
		image:
			'https://img2.baidu.com/it/u=4006946835,4011191580&fm=253&app=138&size=w931&n=0&f=JPEG&fmt=auto?sec=1737046800&t=f457ba015a9c767db1b6a3a7111432ed',
		alt: 'Slide 2'
	},
	{
		image:
			'https://img2.baidu.com/it/u=2028106603,533103107&fm=253&app=138&size=w931&n=0&f=JPEG&fmt=auto?sec=1737046800&t=2c85f60716f88bf7eb1efaff9f16dbbe',
		alt: 'Slide 3'
	}
])
const modules = ref([Navigation, Pagination, Scrollbar, A11y])
const mouseOver = (index) => {
	let imgsrc = document.getElementsByClassName('banner-image')
	imgsrc[index].style.position = 'absolute'
	imgsrc[index].style.top = '50%'
	imgsrc[index].style.left = '50%'
	imgsrc[index].style.animation = 'expand 1s ease-out forwards'
}
const mouseLeave = (index) => {
	let imgsrc = document.getElementsByClassName('banner-image')
	imgsrc[index].style.position = 'absolute'
	imgsrc[index].style.top = '50%'
	imgsrc[index].style.left = '50%'
	imgsrc[index].style.animation = 'leave 1s ease-out forwards'
}
</script>
<style>
.banner {
	width: 300px;
	height: 300px;
	cursor: pointer;
}
.banner-image {
	width: 400px;
	height: 400px;
}
@keyframes expand {
	0% {
		transform: translate(-50%, -50%) scale(1);
	}
	100% {
		transform: translate(-50%, -50%) scale(1.2);
	}
}

@keyframes leave {
	0% {
		transform: translate(-50%, -50%) scale(1.2);
	}
	100% {
		transform: translate(-50%, -50%) scale(1);
	}
}
</style>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值