Javascript 当鼠标光标移出滚动条线时,滚动条将自动转到顶部

Javascript 当鼠标光标移出滚动条线时,滚动条将自动转到顶部,javascript,jquery,html,css,leaflet,Javascript,Jquery,Html,Css,Leaflet,我正在尝试根据传单图层控制代码的属性创建传单菜单。 如果该菜单大于菜单顶部和地图底部之间的剩余空间,则该菜单将自动滚动 Javascript: var acceptableHeight = this._map._size.y - (this._container.offsetTop + 60); if (this._form.clientHeight > acceptableHeight) { this._form.style.height = accep

我正在尝试根据传单图层控制代码的属性创建传单菜单。 如果该菜单大于菜单顶部和地图底部之间的剩余空间,则该菜单将自动滚动

Javascript:

    var acceptableHeight = this._map._size.y - (this._container.offsetTop + 60);

    if (this._form.clientHeight > acceptableHeight) {
        this._form.style.height = acceptableHeight + 'px';
        L.DomUtil.addClass(this._form, 'menu-scrollbar');
    }
    else {
        L.DomUtil.removeClass(this._form, 'menu-scrollbar');
    }
    .menu-scrollbar {
        overflow-y: auto;
        padding-right: 10px;
    }
CSS:

    var acceptableHeight = this._map._size.y - (this._container.offsetTop + 60);

    if (this._form.clientHeight > acceptableHeight) {
        this._form.style.height = acceptableHeight + 'px';
        L.DomUtil.addClass(this._form, 'menu-scrollbar');
    }
    else {
        L.DomUtil.removeClass(this._form, 'menu-scrollbar');
    }
    .menu-scrollbar {
        overflow-y: auto;
        padding-right: 10px;
    }
滚动条的创建完全取决于表单的大小,但当鼠标光标离开滚动条区域(即滚动条所跟随的行)时,滚动条始终会移动到顶部。同样奇怪的是,只有当鼠标快速更改光标类型时(例如,当鼠标位于HTML输入区域时),该条才会停留在同一位置

图像可能比冗长的解释更好:

我一直在寻找滚动条的类似问题:

  • 但答案与同一问题并不完全相关,我希望使用纯JavaScript,而不是将其与jQuery混合使用。可行的解决方案之一是获取滚动条位置()并手动设置()

    但我确信这个问题来自于其他我不明白的东西。 有人能帮我吗

    小提琴示例:


    提前谢谢。

    我想你必须提供一份书面答复。我只能猜测这是某个地方的比赛条件,但如果不看到代码失败,就不可能知道。你好,伊万,谢谢你的回答!实际上,HTML表单的所有内部结构都是从提供的JSON对象动态创建的JS。所以很难给出一个完整的、可以理解的例子。你可以在这里查看它的架构:我猜其中一个CSS属性与另一个相冲突,正如你所说的,可能是竞争条件。如果你说“很难给出一个完整的例子”,那么我可以回答“很难知道到底出了什么问题”。我鼓励你隔离这个问题。是的,我完全理解,更确切地说,你可以在图片上看到,当鼠标位于紫色区域(我已将填充设置为100px)时,我可以毫无问题地滚动。一旦光标移动到浅蓝色区域,滚动条就会自动移到顶部,如文章中所述。@IvanSanchez请在小提琴中找到这个最小的例子来评估这个问题:问题是滚动条会自动移到控制元素的顶部(左上),我想你必须提供一个。我只能猜测这是某个地方的比赛条件,但如果不看到代码失败,就不可能知道。你好,伊万,谢谢你的回答!实际上,HTML表单的所有内部结构都是从提供的JSON对象动态创建的JS。所以很难给出一个完整的、可以理解的例子。你可以在这里查看它的架构:我猜其中一个CSS属性与另一个相冲突,正如你所说的,可能是竞争条件。如果你说“很难给出一个完整的例子”,那么我可以回答“很难知道到底出了什么问题”。我鼓励你隔离这个问题。是的,我完全理解,更确切地说,你可以在图片上看到,当鼠标位于紫色区域(我已将填充设置为100px)时,我可以毫无问题地滚动。光标一移动到浅蓝色区域,滚动条就会自动移到顶部,如文章中所述。@IvanSanchez请在小提琴中找到这个最小的例子来评估问题:问题是滚动条会自动移到控制元素的顶部(左上)