要实现一个可重用的、带有颤动效果的下拉菜单,我们可以使用HTML、CSS和JavaScript来完成。以下是一个简单的实现示例:
<div class="dropdown">
<button class="dropdown-btn">Dropdown</button>
<div class="dropdown-content">
<a href="#">Link 1</a>
<a href="#">Link 2</a>
<a href="#">Link 3</a>
</div>
</div>
.dropdown {
position: relative;
display: inline-block;
}
.dropdown-content {
display: none;
position: absolute;
background-color: #f9f9f9;
min-width: 160px;
box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
z-index: 1;
}
.dropdown-content a {
color: black;
padding: 12px 16px;
text-decoration: none;
display: block;
}
.dropdown-content a:hover {background-color: #f1f1f1}
.dropdown:hover .dropdown-content {
display: block;
}
function addShakeEffect(element) {
let times = 3;
let distance = 5;
let originalX = element.offsetLeft;
let originalY = element.offsetTop;
function shake() {
if (times > 0) {
element.style.left = `${originalX + distance}px`;
element.style.top = `${originalY + distance}px`;
times--;
setTimeout(() => {
element.style.left = `${originalX - distance}px`;
element.style.top = `${originalY - distance}px`;
times--;
setTimeout(shake, 100);
}, 100);
} else {
element.style.left = `${originalX}px`;
element.style.top = `${originalY}px`;
}
}
shake();
}
document.querySelectorAll('.dropdown-btn').forEach(btn => {
btn.addEventListener('click', () => {
const dropdownContent = btn.nextElementSibling;
addShakeEffect(dropdownContent);
});
});
addShakeEffect
实现颤动效果。该函数会在点击按钮时触发,使下拉内容区域产生左右轻微移动的效果。这种颤动效果的下拉菜单可以用于吸引用户注意,特别是在用户交互频繁的网站或应用中,如导航菜单、设置选项等。
通过这种方式,你可以创建一个既美观又实用的可重用下拉菜单。
企业创新在线学堂
DB TALK 技术分享会
DB・洞见
云原生正发声
企业创新在线学堂
企业创新在线学堂
T-Day
Elastic 实战工作坊
领取专属 10元无门槛券
手把手带您无忧上云