电商项目必备技能=>放大镜

电商项目必备技能 ===> 放大镜

放大镜的主要原理就是两个同样大小的盒子,两张图片,大图是小图的两倍,根据鼠标位置的移动来显示遮罩层里面的内容

实现步骤:
1.当鼠标进入,显示遮罩层
2.遮罩层要跟随鼠标
3.显示放大区域

在这里插入图片描述

使用vueuse 工具库中的 useMouseInElement 方法
它可以检测到鼠标距离左上角的距离和当前鼠标是否在元素内,useMouseInElement内有三个属性

isOutside : 检查鼠标是否在元素**外部** 
elementX : 检测鼠标当前位置离元素的X轴的距离
elementY : 检测鼠标当前位置离元素的Y轴的距离

在这里插入图片描述

得到鼠标是否在元素内部,可以通过v-show让遮罩层显示或隐藏

//声明一个自定义计算属性position
const target = ref(null)
const { isOutside, elementX, elementY } = useMouseInElement(target)
const position = computed(() => {
    //遮罩层的大小为200*200,name中心点到边角的中心点就是
    let x = elementX.value - 100  
    let y = elementY.value - 100
    //这早层不能移出盒子,做判断
    if (x < 0) { x = 0 }
    if (x > 200) { x = 200 }
    if (y < 0) { y = 0 }
    if (y > 200) { y = 200 }
    return {
        x,
        y
    }
})
 <div 
 class="layer"
 v-show="!isOutside" //显示或者隐藏遮罩层
:style="{ left: position.x + 'px', top: position.y + 'px' }" //遮罩层跟随鼠标
></div>

利用盒子不动背景图片动,大图是小图两倍的情况下

//在大图中加上
backgroundPosition: `-${position.x*2}px -${position.y*2}px`

就可实现放大镜效果

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值