横向滚动
有些网站滚动鼠标的时候网页是横向滚动,我们来实现一下。
实现思路
首先,让容器出现横向滚动条,监听滚动容器的 wheel
事件,阻止滚动的默认行为,当鼠标滚动的时候,修改容器的 scrollLeft
值,值为鼠标滚动的偏移量。
实现代码
<template>
<div class="wrapper" ref="el" @wheel.prevent="handleWheel">
<div class="item" v-for="n in 6" :key="n" />
</div>
</template>
<script setup>
import { ref } from 'vue';
const el = ref(null);
const handleWheel = (e) => {
if (el.value) {
el.value.scrollLeft += e.deltaY;
}
};
</script>
<style lang="scss" scoped>
$colors: #00adb5, seagreen, bisque, azure, burlywood, chartreuse;
.wrapper {
display: flex;
width: 600px;
overflow-x: auto;
background-color: #aa00ff;
$base-color: #036;
.item {
width: 600px;
height: 400px;
flex: none;
@for $i from 1 through length($colors) {
&:nth-child(#{$i}) {
background-color: nth($colors, $i);
}
}
}
}
</style>