1.效果
2.代码实现
<template><div class="container"><div class="Box"><div class="box" style="background-color: red;"></div><div class="box" style="background-color: orange;"></div><div class="box" style="background-color: yellow;"></div><div class="box" style="background-color: green;"></div><div class="box" style="background-color: skyblue;"></div><div class="box" style="background-color: blue;"></div></div></div>
</template>
<script>export default {mounted () {this.setActions()},methods: {setActions () {const arr = document.querySelectorAll('.box')arr.forEach(e => {e.addEventListener('mouseenter', () => {e.classList.add('boxMoveTwoStep')if (e.previousElementSibling) {e.previousElementSibling.classList.add('boxMoveOneStep')}if (e.nextElementSibling) {e.nextElementSibling.classList.add('boxMoveOneStep')}})e.addEventListener('mouseleave', () => {e.classList.remove('boxMoveTwoStep')if (e.previousElementSibling) {e.previousElementSibling.classList.remove('boxMoveOneStep')}if (e.nextElementSibling) {e.nextElementSibling.classList.remove('boxMoveOneStep')}})})}}
}
</script>
<style lang='scss' scoped>
.container {width: 100%;height: 100%;overflow-y: hidden;position: relative;.Box {position: absolute;bottom: -50px;width: 100%;height: 100px;}.box {width: 50px;height: 100px;display: inline-block;background-color: pink;transition: 0.3s;}
}.boxMoveOneStep {transform: translate(0px, -30px);
}.boxMoveTwoStep {transform: translate(0px, -50px);
}
</style>