通过滚动移动 DIV

2024-03-05

我正在创建一个 jQuery 滚动条,它滚动

中的内容。这就像jQuery 滚动窗格 http://jscrollpane.kelvinluck.com/.

我已经到了需要移动滚动按钮的地步。我的问题是:在没有任何 UI 插件的情况下,最好的方法是什么?因此,当用户单击滚动按钮时,可以通过 mousedown 事件在其父容器中垂直移动滚动按钮。我怎么能这么做呢?


这是一个起点,希望这就是您所追求的:

$(function() {
    $('.slider').slider();
});

$.fn.slider = function() {
    return this.each(function() {
        var $el = $(this);
        $el.css('top', 0);
        var dragging = false;
        var startY = 0;
        var startT = 0;
        $el.mousedown(function(ev) {
            dragging = true;
            startY = ev.clientY;
            startT = $el.css('top');
        });
        $(window).mousemove(function(ev) {
            if (dragging) {
                // calculate new top
                var newTop = parseInt(startT) + (ev.clientY - startY);
                
                //stay in parent
                var maxTop =  $el.parent().height()-$el.height();          
                newTop = newTop<0?0:newTop>maxTop?maxTop:newTop;
                $el.css('top', newTop );
            }
        }).mouseup(function() {
            dragging = false;
        });
    });
}
.container{
    position:relative;
    border:1px solid red;
    height:100px;
}
.slider{
    height:20px;
    width:20px;
    background:green; 
    position:absolute;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>
  <div class="container">
    <div class="slider" />
  </div>
</div>
<br/>
<div class="container">
  <div class="slider" />
</div>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

通过滚动移动 DIV 的相关文章

随机推荐

  • Laravel 5 路由前缀

    我想要一条以国家 地区为前缀的路线 像这样 us shop ca shop fr shop 我的想法是这样做
  • 排列未排序

    我知道一种算法 可以在网上找到 对排列进行排名 即给定一个排列 将整数索引返回到按字典顺序排序的排列列表中 但我不知道unrank执行相反操作的算法 给定索引 i 返回按字典顺序排列的第 i 个排列 由于我找不到任何内容 有人可以透露一些信
  • IIS Web.Config 301 重定向查询字符串参数 (?)

  • javafx-TableView 作为组合框弹出窗口(尝试并能够部分实现。需要进一步帮助)

    我需要的 需要一个可编辑的组合框 它可以在键入时过滤弹出窗口上的数据 并且第一个匹配的项目应突出显示 并应在按 Enter 键时设置为组合中的文本 弹出窗口应该是一个包含 2 或 3 列的表格视图 附有屏幕截图 在图像中 它是一个文本字段
  • 使 高度适合页面

    考虑一个包含三行且高度分别为 10 10 的表格 我希望中间的单元格足够高以垂直适应页面 不幸的是 height 100 在 table tr 或 td 级别不起作用 可能是由于标准的原因 即使它恰好有效 我也不想要 100 我想要 100
  • Google Protocol Buffers:根据我的请求设置日期值时,c.toArray 不是函数

    我正在尝试构建一个创建请求grpc web 我已经生成了协议缓冲区 并且可以成功获取信息 但在创建请求时遇到问题 Eg const request new PricingMethodRequest request setCurrencyId
  • 我的 Windows 窗体应用程序大小在不同笔记本上发生变化

    我的项目编码进展顺利 但今天我注意到一个问题 我的主笔记本电脑具有全高清 1920x1080 分辨率 我正在此处编写我的项目 当我将主笔记本电脑的分辨率更改为 1280x1024 1280x800 或 1024x768 时 没有问题 我的应
  • git - 服务器主机密钥未缓存

    我尝试将更改从本地存储库推送到远程存储库 当我输入 git push origin 我收到以下错误 The server s host key is not cached in the registry You have no guaran
  • Django - 没有名为 app 的模块

    我一直在尝试让 django 编写的应用程序正常工作 但它根本不工作 我也已经工作了一段时间 它在开发服务器上完美运行 但我无法放入生产环境 apahce 我的项目名称是 apstat 应用程序名称是 basic 我尝试按以下方式访问它 块
  • Python 多处理:同步类文件对象

    我正在尝试创建一个类似对象的文件 该对象在测试期间分配给 sys stdout sys stderr 以提供确定性输出 它并不意味着快速 只是可靠 到目前为止我所拥有的almost有效 但我需要一些帮助来消除最后几个边缘情况错误 这是我当前
  • HQL 意外的 AST 节点::

    我的代码无法注入以下存储库 根据堆栈跟踪 我的 HQL 语法似乎无效 但我不确定我做错了什么 Repository public interface JobSetRepository extends JpaRepository
  • 命令“npm install fs”出现问题

    我不习惯使用 Linux 所以也许这是一个愚蠢的问题 在我正在进行的实验室中 系统要求我运行命令 npm install fs 来读取 写入文件 但这是我遇到的错误 我不知道如何解决它 我也找不到类似的问题 PS 我正在 Ubuntu 17
  • 帮助在 Node.js 中需要 npm 模块

    我觉得我在这里缺少一些非常基本的东西 所以我安装了一个 npm 库npm install somelib 根据我读过的内容 我应该能够简单地做一个 var somelib require somelib 但它找不到任何东西 我确实有一个no
  • Chrome 中的 ScriptManager.RegisterHiddenField

    我正在处理一些利用 ScriptManager RegisterHiddenField 来跟踪数据模型修改的代码 它在 IE 和 FF 中运行良好 但在 Chrome 中遇到问题 如果您添加以下内容 就会出现该问题的一个简单示例 prote
  • 如何获取 ClickOnce 应用程序的文件夹路径

    我需要在控制台 ClickOnce 所在的同一文件夹中写入一个文件 application 可执行文件 驻留 它从中启动的文件夹 我尝试使用Application StartupPath Path GetDirectoryName Asse
  • 在C中缩小文件

    如何用 C 语言缩小文件 例如 如果我打开一个 2mb 的文件 做了一些工作并决定只有 1mb 的文件仍然存在 这是如何完成的 我知道如何使用 write fd 写入文件 但是如果我想在文件中间切出某些部分或截断它怎么办 您可能正在寻找tr
  • 组合多个控件的控件子类

    我正在尝试扩展 TextBox 以在其左侧添加一个标签并将其视为一个控件 这样我就不必跟踪它们的大小 位置等 我创建了一个扩展 Control 并具有 TextBox 和 Label 字段的 TextBoxWithLabel 类 但我不太确
  • BASH_REMATCH 不捕获

    我正在尝试捕获 bash 中路径的一部分 Input Users foo virtualenvs venv test server Code bin zsh regex venv if VIRTUAL ENV regex then echo
  • 将图像插入 MySQL 数据库或从 MySQL 数据库查看图像

    我在数据库中插入图像时遇到问题 该表具有以下结构 id gt INT 3 gt 自动增量 名称 gt VARCHAR 30 扩展名 gt VARCHAR 10 可能太短 img gt 中型BLOB 插入图像的PHP代码是 if FILES
  • 通过滚动移动 DIV

    我正在创建一个 jQuery 滚动条 它滚动 中的内容 这就像jQuery 滚动窗格 http jscrollpane kelvinluck com 我已经到了需要移动滚动按钮的地步 我的问题是 在没有任何 UI 插件的情况下 最好的方法是