jQuery菜单栏左右滑动是一种常见的网页交互效果,通常用于实现导航菜单的动态展示。通过监听用户的滑动操作,菜单栏可以在水平方向上进行滑动切换,从而展示不同的菜单项。
以下是一个简单的jQuery实现水平滑动菜单的示例代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>jQuery 滑动菜单</title>
<style>
#menu {
overflow: hidden;
width: 100%;
white-space: nowrap;
}
.menu-item {
display: inline-block;
padding: 10px;
border: 1px solid #ccc;
margin-right: 5px;
}
</style>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
</head>
<body>
<div id="menu">
<div class="menu-item">菜单1</div>
<div class="menu-item">菜单2</div>
<div class="menu-item">菜单3</div>
<div class="menu-item">菜单4</div>
<div class="menu-item">菜单5</div>
</div>
<script>
$(document).ready(function() {
let startX, scrollLeft;
$('#menu').on('mousedown', function(e) {
startX = e.pageX - this.offsetLeft;
scrollLeft = this.scrollLeft;
$(this).css('cursor', 'grabbing');
});
$('#menu').on('mouseup', function() {
$(this).css('cursor', 'grab');
});
$('#menu').on('mouseleave', function() {
$(this).css('cursor', 'grab');
});
$('#menu').on('mousemove', function(e) {
if (!startX) return;
e.preventDefault();
const x = e.pageX - this.offsetLeft;
const walk = (x - startX) * 2; // 滑动速度
this.scrollLeft = scrollLeft - walk;
});
});
</script>
</body>
</html>
transition
和transform
属性来提高性能。通过以上方法,可以有效地实现和优化jQuery菜单栏的左右滑动效果。
领取专属 10元无门槛券
手把手带您无忧上云