javascript - 滚动带有 overflow hidden 的 div 时粘性标题

标签 javascript html css scroll

我一直在拼命寻找一个纯 JavaScript 解决方案,允许滚动 div 的内容(固定高度的 div,带有溢出:滚动)..

我已经看过很多带有 window.scroll 的 jquery 示例,但我真的一直在努力让它作为纯 css 在 div 元素上工作。

任何与我想做的类似的例子都是,

$('div.scrollingDiv').scroll(function () {
var active = null;
$('.scrollingDiv h4').each(function (idx, val) {
    var topOffset = $(val).offset().top;
    if (topOffset < 20) // elem is 20 px from top
    {
        // Element nearest the top
        active = $(val);
    }

    $('.stickyTop').html("Funky Menu : " + active.text());
});
});

..但显然没有jquery:)

非常感谢帮助...!

最佳答案

将基于 JQuery 的代码转换为纯 Javascript 的语法将是:

<script>
window.onload = function(e) { 
  document.querySelector('.scrollingDiv').onscroll = function(ev) {
    var title = "Funky Menu: ";
    var titleElem = document.querySelector('.stickyTop');
    var h4 = this.querySelectorAll('h4');
    var active = null;
    for (var i = 0; i < h4.length; i++) {
      if (h4[i].offsetTop - this.scrollTop < 30) {
        active = h4[i];
      } // elem is visible and close to top
    }
    if (active) {
      title += active.innerHTML;
    }
    titleElem.innerHTML = title;
  };
};
</script>

关于javascript - 滚动带有 overflow hidden 的 div 时粘性标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42191453/

相关文章:

javascript - 是否可以禁用 jquery 中的单个单选按钮?

html - iframe 滚动条在 Mac 上的 Chrome 中消失

html - 背景图像上的文字移除了它的悬停状态

html - 如何避免在 Chrome 的表单中自动填充用户名/密码?

html - 防止 CSS 星尘效果在窄屏上变形

html - CSS:填充/边距问题。是什么导致了这种惊人的变化?

javascript - 单击进入 ace 编辑器时防止模态窗口向上滚动

javascript - IE 无法使用 Javascript 和 Raphael 加载页面

Javascript:与正则表达式或其他方式进行比较

javascript - 如何在点击时向元素添加 CSS 类 - React