纯JS实现按钮抖动效果
AI 概述
纯 JS 代码实现按钮左右抖动效果代码,基本不会存在与 jquery 脚本可能冲突的情况。
效果如下:
HTML 代码:
<button class="btn" id="btn">Just a button</button>
CSS 代码:
body {
min-height: 100vh;
font-family: Roboto,Arial;
display: flex;
justify-content: center;
a...
纯 JS 代码实现按钮左右抖动效果代码,基本不会存在与 jquery 脚本可能冲突的情况。
效果如下:

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);
}
以上关于纯JS实现按钮抖动效果的文章就介绍到这了,更多相关内容请搜索码云笔记以前的文章或继续浏览下面的相关文章,希望大家以后多多支持码云笔记。
声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权/违法违规/事实不符,请将相关资料发送至 admin@mybj123.com 进行投诉反馈,一经查实,立即处理!
重要:如软件存在付费、会员、充值等,均属软件开发者或所属公司行为,与本站无关,网友需自行判断
码云笔记 » 纯JS实现按钮抖动效果
如若内容造成侵权/违法违规/事实不符,请将相关资料发送至 admin@mybj123.com 进行投诉反馈,一经查实,立即处理!
重要:如软件存在付费、会员、充值等,均属软件开发者或所属公司行为,与本站无关,网友需自行判断
码云笔记 » 纯JS实现按钮抖动效果
微信
支付宝