侧边栏壁纸
博主头像
YOUZI

我依旧在追寻自由的路上

  • 累计撰写 85 篇文章
  • 累计创建 10 个分类
  • 累计创建 27 个标签

目 录CONTENT

文章目录

透视效果

柚子
原创 / 2024-08-09 / 0 评论 / 0 点赞 / 35 阅读 / 0 字
温馨提示:
本文最后更新于35天前,若内容或图片失效,请留言反馈。 部分素材来自网络,若不小心影响您的利益,请联系 站长 删除。

思路

在wallpaper上面制作了一张X射线效果的壁纸,突发奇想CSS+JS能否实现这一效果。

代码

<style>
    body {
        margin: 0;
        overflow: hidden;
    }
    .container {
        position: relative;
        height: 40vh;
    }
    .image1, .image2 {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background-size: cover;
        background-position: center;
    }
    .image1 {
        background-image: url('');
        z-index: 2;
    }
    .image2 {
        background-image: url('');
        z-index: 1;
    }
</style>



<div class="container">
    <div class="image1" id="image1"></div>
    <div class="image2"></div>
</div>

<script>
    const image1 = document.getElementById('image1');

    // 在容器上监听鼠标移动事件
    document.querySelector('.container').addEventListener('mousemove', (e) => {
        const rect = e.target.getBoundingClientRect();
        const x = e.clientX - rect.left;
        const y = e.clientY - rect.top;

        // 使用clip-path在鼠标位置创建一个圆形的可见区域
        image1.style.clipPath = `circle(100px at ${x}px ${y}px)`;
    });

    // 当鼠标离开容器时恢复初始状态
    document.querySelector('.container').addEventListener('mouseleave', () => {
        image1.style.clipPath = 'circle(0 at 0 0)';
    });
</script>

预览

跳转

2024-08-09-a4H1.webp

0

评论区