纯JS实现按钮抖动效果

纯JS代码实现按钮左右抖动效果代码,基本不会存在与jquery脚本可能冲突的情况。

效果如下:

JS实现按钮抖动效果

HTML代码:

<button class="btn" id="btn">Just a button</button>

CSS代码:

body {
    min-height: 100vh;
    font-family: Roboto,Arial;
    display: flex;
    justify-content: center;
    align-items: center;
    background: #1499f7;
}

.btn {
    -webkit-appearance: none;
    border: 0;
    position: relative;
    height: 63px;
    width: 240px;
    padding: 0;
    cursor: pointer;
    border-radius: 32px;
    overflow: hidden;
    -webkit-mask-image: -webkit-radial-gradient(white,black);
}

JS代码:

document.getElementById('btn').addEventListener('click', function(e) {
    Shaking(e.target)
})

function Shaking(el) {
    const maxDistance = 5 // 抖动偏移距离
    const interval = 12 // 抖动快慢,数字越小越快,太小DOM反应不过来,看不出动画
    const quarterCycle = 8 // 一次完整来回抖动的四分之一周期
    let curDistance = 0
    let direction = 1
    const timer = setInterval(function() {
        if (direction > 0) {
            curDistance++
            if (curDistance === maxDistance) {
                direction = -1
            }
        } else {
            curDistance--
            if (curDistance === -maxDistance) {
                direction = 1
            }
        }
        el.style.left = curDistance + 'px';
    }, interval)
    setTimeout(function() {
        clearInterval(timer)
        el.style.left = '0 px';
    }, maxDistance * interval * quarterCycle);
}
1. 本站所有免费资源来源于用户上传和网络,因此不包含技术服务请大家谅解!如有侵权请邮件联系客服!
2. 本站不保证所提供下载的免费资源的准确性、安全性和完整性,免费资源仅供下载学习之用!如有链接无法下载、失效,请联系客服处理!
3. 您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容资源!如用于商业或者非法用途,与本站无关,一切后果请用户自负!
4. 如果您也有好的资源或技术教程,您可以投稿发布,成功分享后有站币奖励和额外收入!
5. 加入前端开发QQ群:565733884,我们大家一起来交流技术!
码云笔记 » 纯JS实现按钮抖动效果

发表评论

前端开发相关广告投放 更专业 更精准

立即查看 联系我们