超链接聚光灯效果

超链接聚光灯效果,点击查看效果

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>超链接聚光灯效果</title>
    <style>
        :root {
            font-size: 15px;
            --lighting-size: 100px;
            --lighting-color: #7158e2;
            --lighting-highlight-color: #FFF;
            --x: 0px;
            --y: 0px;
        }
        body {
            font-size: 1.5rem;
            font-family: Arial, Helvetica, sans-serif;
            background-color: #020617;
            color: #94a3b8;
        }
        div {
            padding: 40px;
        }
        a {
            display: inline-block;
            text-decoration: none;

            background-image: radial-gradient(var(--lighting-highlight-color), var(--lighting-color), var(--lighting-color));
            background-size: var(--lighting-size) var(--lighting-size);
            background-repeat: no-repeat;
            background-position-x: calc(var(--x) - var(--positionX) - calc(var(--lighting-size) / 2));
            background-position-y: calc(var(--y) - var(--positionY) - calc(var(--lighting-size) / 2));
            background-color: var(--lighting-color);

            color: transparent;
            -webkit-background-clip: text;
            background-clip: text;
        }
    </style>
</head>
<body>
    <div>
        Lorem ipsum, dolor sit amet consectetur adipisicing elit. <a href="#">Lorem ipsum dolor</a>Itaque magni sit doloribus saepe ipsam facere architecto vel fugiat facilis excepturi ipsa quaerat nesciunt, nemo sunt expedita et ullam iste. Nisi.

        <p><a href="#">Lorem ipsum dolor, sit amet consectetur adipisicing elit. Itaque magni sit doloribus saepe ipsam facere architecto vel fugiat facilis excepturi ipsa quaerat nesciunt,</a></p>

        Lorem ipsum, dolor sit amet consectetur adipisicing elit. Itaque magni sit doloribus saepe ipsam facere architecto vel fugiat facilis excepturi ipsa quaerat nesciunt, <a href="#">Lorem ipsum dolor</a>, nemo sunt expedita et ullam iste. Nisi.

        <p><a href="#">Lorem ipsum dolor, sit amet consectetur adipisicing elit. </a></p>
    </div>

    <script>
        document.querySelector('body').addEventListener('mousemove', (e) => {
            e.currentTarget.style.setProperty('--x', `${e.clientX}px`);
            e.currentTarget.style.setProperty('--y', `${e.clientY}px`);
        })

        function setLinksPosistions() {
            document.querySelectorAll('a').forEach(a => {
                const bounding = a.getBoundingClientRect();

                a.style.setProperty('--positionX', `${bounding.x}px`);
                a.style.setProperty('--positionY', `${bounding.y}px`);
            })
        }

        window.addEventListener('load', setLinksPosistions);
        window.addEventListener('resize', setLinksPosistions);
    </script>
</body>
</html>
赞(0) 打赏

评论 抢沙发

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续提供更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫

微信扫一扫