Vue实现类似Spring官网图片滑动效果

先来看一下Spring官网首页的一个图片滑动显示效果
图片描述

可以看到, 随着鼠标的滑动,绿色图片和灰色图片可以无缝的在鼠标俩两边切换显示。

显示这样的效果其实很简单,利用固定定位保证两张图片在同一位置下, 我们可以将灰色图片当做背景层图片,然后根据获取到的实时X轴坐标, 动态改变绿色图片的宽度, 隐藏超出X轴坐标的部分, 就可以达到这样的效果, 简单来说, 这效果就是动态改变上层图片的宽度。

实现效果:
图片描述

我这边选择了两张同样大小的KDA卡莎的图片, 将金色图作为背景图,暗黑图作为左侧图, 用了Vue的mousemove来获取X轴坐标值, 并通过监听坐标轴变化来实时改变左侧图片的宽度。

鼠标部分, 简化了Spring官网上鼠标位置出轴承的显示, 采用了cursor: ew-resize样式, 使得鼠标看起来可以左右滑动。

代码粘贴

<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>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值