要实现PC端鼠标拖动<div>元素触发横向滚动条的滚动,同时滚动条不显示,可以使用CSS和JavaScript来实现。以下是一个简单的示例:
HTML<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Drag to Scroll</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<div class="scroll-container">
<div class="scroll-content">
<!-- 这里放置你的内容 -->
<div class="item">Item 1</div>
<div class="item">Item 2</div>
<div class="item">Item 3</div>
<div class="item">Item 4</div>
<div class="item">Item 5</div>
</div>
</div>
<script src="script.js"></script>
</body>
</html> CSS (styles.css) body {
margin: 0;
padding: 0;
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
background-color: #f0f0f0;
}
.scroll-container {
width: 80%;
overflow-x: scroll;
overflow-y: hidden;
white-space: nowrap;
cursor: grab;
-ms-overflow-style: none; /* IE and Edge */
scrollbar-width: none; /* Firefox */
}
.scroll-container::-webkit-scrollbar {
display: none; /* Chrome, Safari and Opera */
}
.scroll-content {
display: inline-block;
}
.item {
display: inline-block;
width: 200px;
height: 200px;
margin: 10px;
background-color: #ccc;
text-align: center;
line-height: 200px;
} JavaScript (script.js) document.addEventListener('DOMContentLoaded', () => {
const scrollContainer = document.querySelector('.scroll-container');
let isDragging = false;
let startX;
let scrollLeft;
scrollContainer.addEventListener('mousedown', (e) => {
isDragging = true;
startX = e.pageX - scrollContainer.offsetLeft;
scrollLeft = scrollContainer.scrollLeft;
scrollContainer.style.cursor = 'grabbing';
});
scrollContainer.addEventListener('mouseleave', () => {
isDragging = false;
scrollContainer.style.cursor = 'grab';
});
scrollContainer.addEventListener('mouseup', () => {
isDragging = false;
scrollContainer.style.cursor = 'grab';
});
scrollContainer.addEventListener('mousemove', (e) => {
if (!isDragging) return;
e.preventDefault();
const x = e.pageX - scrollContainer.offsetLeft;
const walk = (x - startX) * 1.5; // 调整滚动速度
scrollContainer.scrollLeft = scrollLeft - walk;
});
}); 解释HTML: 创建一个包含滚动内容的容器。CSS: 隐藏滚动条:使用 -ms-overflow-style: none; 和 scrollbar-width: none; 隐藏IE、Edge和Firefox的滚动条,使用 ::-webkit-scrollbar 隐藏Chrome、Safari和Opera的滚动条。设置容器的鼠标样式为 grab 和 grabbing,以提供更好的用户体验。JavaScript:监听鼠标按下、移动和释放事件。在鼠标按下时,记录初始位置和滚动位置。在鼠标移动时,计算滚动距离并更新容器的 scrollLeft 属性。在鼠标释放或离开容器时,停止拖动。这样,你就可以实现一个可以通过鼠标拖动来滚动的容器,并且滚动条不会显示。
网友回复


