走马灯
效果
代码
vue
<template>
<div class="contentall">
<Vue3Marquee
:direction="configdata.direction"
:duration="configdata.duration"
:delay="configdata.delay"
:loop="configdata.loop"
:gradient="configdata.gradient"
:gradientColor="configdata.gradientColor"
:gradientLength="configdata.gradientLength"
:pause="configdata.pause"
:pauseOnHover="configdata.pauseOnHover"
:pauseOnClick="configdata.pauseOnClick"
:clone="configdata.clone"
:vertical="configdata.vertical"
:animateOnOverflowOnly="configdata.animateOnOverflowOnly"
@Complete="onComplete"
@onLoopComplete="onLoopComplete"
@onPause="onPause"
@onResume="onResume"
@onOverflowDetected="onOverflowDetected"
@onOverflowCleared="onOverflowCleared"
>
<!-- <img :src="content.img" alt="" v-for="(content, index) in listdata" :key="index" class="item" /> -->
<div class="item" v-for="(content, index) in listdata" :key="index">
<img :src="content.img" alt="" />
</div>
<!-- 更多图片元素 -->
</Vue3Marquee>
</div>
</template>
<script setup lang="ts">
import { ref } from "vue";
const configdata = ref({
// 内容移动的方向
direction: "normal",
// 内容移动整个容器宽度所需的时间 单位秒
duration: 40,
// 动画开始前的延迟时间 单位秒
delay: 1,
// 跑马灯动画循环次数(0表示无限次循环)
loop: 0,
// 是否显示渐变遮罩
gradient: false,
// 渐变色RGB值
gradientColor: [255, 255, 25],
// 渐变覆盖容器边缘的长度
gradientLength: "200px",
// 控制是否暂停跑马灯
pause: false,
// 鼠标悬停的时候是否暂停跑马灯
pauseOnHover: true,
// 右键点击是否暂停跑马灯
pauseOnClick: true,
// 是否克隆内容以避免动画的空白
clone: false,
// 是否设置跑马灯为垂直方向
vertical: false,
// 只当内容溢出容器时才动画化
animateOnOverflowOnly: false,
});
const listdata = ref([
{
img: "https://file.jsopy.com/IMAGES/avatar.jpg",
},
{
img: "https://file.jsopy.com/IMAGES/commonavater.jpg",
},
{
img: "https://file.jsopy.com/IMAGES/avatar.jpg",
},
{
img: "https://file.jsopy.com/IMAGES/commonavater.jpg",
},
{
img: "https://file.jsopy.com/IMAGES/avatar.jpg",
},
{
img: "https://file.jsopy.com/IMAGES/commonavater.jpg",
},
{
img: "https://file.jsopy.com/IMAGES/avatar.jpg",
},
{
img: "https://file.jsopy.com/IMAGES/commonavater.jpg",
},
]);
// 当有限循次数的跑马灯完成所有循环的时候触发
const onComplete = () => {
console.log("onComplete");
};
// 每一次跑完循环的时候触发
const onLoopComplete = () => {
console.log("onLoopComplete");
};
// 当跑马灯暂停的时候触发
const onPause = () => {
console.log("onPause");
};
// 当跑马灯恢复的时候触发
const onResume = () => {
console.log("onResume");
};
// 若设置了animateOnOverflowOnly,内容超出容器边界时触发。
const onOverflowDetected = () => {
console.log("onOverflowDetected");
};
// 若设置了animateOnOverflowOnly,内容超出容器边界时触发。
const onOverflowCleared = () => {
console.log("onOverflowCleared");
};
</script>
<style scoped lang="scss">
.contentall {
width: 600px;
height: 200px;
margin: 0 auto;
margin-top: 300px;
.item {
width: 200px;
height: 200px;
overflow: hidden;
img {
width: 100%;
height: 100%;
}
}
}
</style>