Vue實現相似Spring官網圖片滑動效果

先來看一下Spring官網首頁的一個圖片滑動顯示效果
圖片描述css

能夠看到, 隨着鼠標的滑動,綠色圖片和灰色圖片能夠無縫的在鼠標倆兩邊切換顯示。this

顯示這樣的效果其實很簡單,利用固定定位保證兩張圖片在同一位置下, 咱們能夠將灰色圖片當作背景層圖片,而後根據獲取到的實時X軸座標, 動態改變綠色圖片的寬度, 隱藏超出X軸座標的部分, 就能夠達到這樣的效果, 簡單來講, 這效果就是動態改變上層圖片的寬度。url

實現效果:
圖片描述spa

我這邊選擇了兩張一樣大小的KDA卡莎的圖片, 將金色圖做爲背景圖,暗黑圖做爲左側圖, 用了Vue的mousemove來獲取X軸座標值, 並經過監聽座標軸變化來實時改變左側圖片的寬度。 code

鼠標部分, 簡化了Spring官網上鼠標位置出軸承的顯示, 採用了cursor: ew-resize樣式, 使得鼠標看起來能夠左右滑動。blog

代碼粘貼圖片

<template>
    <div class="scroll">
        <div class="container" @mousemove="mousemove">
            <div class="base"></div>
            <div class="left" ref="left">
                <img src="../../static/image/kda-karsa.jpg" alt="">
            </div>
        </div>
    </div>
</template>
<script>
export default {
    data() {
        return {
            posX: 0
        }
    },
    methods: {
        mousemove(e) {
            // 獲取x 座標
            this.posX = e.offsetX 
        }
    },
    watch: {
        posX(curX) {
            this.$refs.left.style.width = `${curX}px`
        }   
    }
}
</script>
<style lang="scss" scoped>
.scroll{
    .container{
        width: 960px;
        height: 540px;
        background-color: #cccccc;
        position: relative;
        cursor: ew-resize;
        .base{
            position: absolute;
            width: 960px;
            height: 540px;
            top: 0;
            left: 0;
            background: url('../../static/image/kda-karsa-golden.jpg') no-repeat;
            background-size: 100%;
        }
        .left{
            position: absolute;
            width: 480px;
            height: 540px;
            overflow: hidden;
            top: 0;
            left: 0;
            img{
              width: 960px;
              height: 540px;  
            }
        }
    }
}
</style>
相關文章
相關標籤/搜索