Logo

Logo

在 DIV 中实现拖动滚动功能

Pastore Antonio
Pastore Antonio 2025年07月28日
76 阅读 0 评论 约 2543 字 阅读约 6 分钟

场景描述
假设你有一个带有滚动条的div容器,你希望用户可以通过拖动鼠标来滚动内容,而不是直接滚动滚动条。这种功能特别适合流程图、地图或其他需要精细控制滚动的场景。

实现步骤

  • 创建 HTML 结构
    在你的 WordPress 页面或文章中,插入一个带有滚动条的div容器。例如:
   <div id="scrollableDiv" class="scrollable-container">
       <div class="content">
           <!-- 这里放置你的内容 -->
           <p>这里是滚动内容的一部分。</p>
           <p>更多内容...</p>
       </div>
   </div>

插入这段代码。

  • 添加 CSS 样式
    在你的主题的style.css文件中,或者通过 WordPress 的自定义 CSS 功能,添加以下样式:
   .scrollable-container {
       width: 400px;
       height: 300px;
       border: 1px solid #ccc;
       overflow: auto;
       position: relative;
       cursor: grab;
   }
   .content {
       width: 800px;
       height: 600px;
       background: linear-gradient(to right, red, blue);
   }

这些样式定义了容器的大小、边框和滚动条的显示。

  • 添加 JavaScript 代码
    在你的主题的functions.php文件中,或者通过 WordPress 的自定义脚本功能,添加以下 JavaScript 代码:
   <script>
       document.addEventListener('DOMContentLoaded', function () {
           const scrollableDiv = document.getElementById('scrollableDiv');

           let isDragging = false;
           let startX, startY, startScrollLeft, startScrollTop;

           // 鼠标按下事件
           scrollableDiv.addEventListener('mousedown', function (e) {
               if (e.button === 0) { // 鼠标左键
                   isDragging = true;
                   startX = e.clientX;
                   startY = e.clientY;
                   startScrollLeft = scrollableDiv.scrollLeft;
                   startScrollTop = scrollableDiv.scrollTop;
                   scrollableDiv.style.cursor = 'grabbing'; // 改变光标样式
               }
           });

           // 鼠标移动事件
           document.addEventListener('mousemove', function (e) {
               if (isDragging) {
                   const deltaX = startX - e.clientX;
                   const deltaY = startY - e.clientY;
                   scrollableDiv.scrollLeft = startScrollLeft + deltaX;
                   scrollableDiv.scrollTop = startScrollTop + deltaY;
               }
           });

           // 鼠标释放事件
           document.addEventListener('mouseup', function () {
               if (isDragging) {
                   isDragging = false;
                   scrollableDiv.style.cursor = 'grab'; // 恢复光标样式
               }
           });
       });
   </script>

这段代码通过监听鼠标事件来实现拖动滚动功能。

  • 测试功能
    将上述代码添加到你的网页后,保存并查看效果。你可以通过拖动鼠标来滚动内容,而无需直接操作滚动条。

注意事项

  • 确保你的主题支持自定义 CSS 和 JavaScript。
  • 如果你的页面中有多个滚动容器,可以通过类名选择器来区分它们。
  • 如果你需要更复杂的功能,比如平滑滚动或限制滚动范围,可以通过进一步扩展 JavaScript 代码来实现。

查看完整代码

橙子主题打折出售

其实我不卖,主要是这里是放广告的,所以就放了一个
毕竟主题都没做完,卖了也是坑.

购买它
部分文章可能存在转载,如果涉及到侵权,请联系删除文章。

留言板

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

5 - 3 = ?

探索AIGC相关的精彩内容,共 15 篇文章

Azure AI 服务之语音识别

简介 Azure AI 服务中的语音识别 API 是微软提供的一项先进技术,旨在帮助开发者轻松实现语 ... 在 DIV 中实现拖动滚动功能

2026-02-17 · Xzavier Aaron
MCP | 一文详解什么是 MCP以及 MCP 可以做什么

一、什么是 MCP MCP(Model Context Protocol)是一个专为大型语言模型(L ... 在 DIV 中实现拖动滚动功能

2026-02-14 · Shen, Luke
你的工作流程,值得一个“全自动数字分身”:录制、截图、成文,一气呵成

一、一句话认识 TestFlow Recorder 在数字化工作环境中,如何准确记录操作步骤并生成清 ... 在 DIV 中实现拖动滚动功能

2026-02-14 · Xzavier Aaron
Flowise 前端框架配置指南

用户需求 问题:有没有适合配置 Flowise 的前端框架? 目标:寻找类似 Open WebUI ... 在 DIV 中实现拖动滚动功能

2026-02-14 · Xzavier Aaron