利用css变量实现按钮悬浮效果

本文介绍了一种使用CSS和JavaScript创建动态按钮悬停效果的方法。通过CSS伪元素和变量实现按钮背景的动态变化,JavaScript则用于获取鼠标位置,使效果更具交互性。

转自 www.zcfy.cc/article/stu…

css


<style>
        .button{
            position: relative;
            appearance: none;
            background: #f72359;
            padding: 1em 2em;
            border: none;
            color: white;
            font-size: 1.2em;
            cursor: pointer;
            outline: none;
            overflow: hidden;
            border-radius: 100px;
        }
        .button > span {
            position: relative;
        }

        .button::before {
             --size: 0;

             content: '';
             position: absolute;
             left: var(--x);
             top: var(--y);
             width: var(--size);
             height: var(--size);
             background: radial-gradient(circle closest-side, #4405f7, transparent);
             transform: translate(-50%, -50%);
             transition: width .2s ease, height .2s ease;
         }

        .button:hover::before {
             --size: 400px;
         }
    </style>
复制代码

HTML

<button class="button"><span>hover on me</span></button>
复制代码

javascript


<script>
    document.querySelector('.button').addEventListener('mousemove', function (e) {
        var x = e.pageX - e.target.offsetLeft
        var y = e.pageY - e.target.offsetTop
        e.target.style.setProperty('--x', `${ x }px`)
        e.target.style.setProperty('--y', `${ y }px`)
    })
</script>

复制代码

效果 codepen.io/lilong7676/…

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值