javascript - 检测用户是否滚动到 UL 的顶部或底部

标签 javascript jquery html css

我需要检测用户是否已滚动到 HTML 页面中 UL顶部或底部

       <ul id="color-list">
              <li>Red</li>
              <li>Blue</li>
              <li>Purple</li>
              <li>Blue</li>
              <li>Yellow</li>
              <li>Black</li>
              <li>White</li>
       </ul>

我使用这段代码来检测用户是否滚动到页面的底部:

window.onscroll = function(evt) {
     if ((window.innerHeight + window.scrollY) >= document.body.offsetHeight) {
         alert("End of Page") ;
     }
 }

显然这对

    不起作用。伙计们,我应该做出哪些改变?

最佳答案

$().scrollTop() return how much element has been scrolled from top

$().innerHeight() return inner height of the element(without scroll)

DOMElement.scrollHeight returns height of the content of the element(with scroll)

$('#color-list').on('scroll', function() {
  var scrollTop = $(this).scrollTop();
  if (scrollTop + $(this).innerHeight() >= this.scrollHeight) {
    $('#message').text('end reached');
  } else if (scrollTop <= 0) {
    $('#message').text('Top reached');
  } else {
    $('#message').text('');
  }
});
#message {
  font-weight: bold;
  color: green;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<ul id="color-list" style="height: 150px;overflow-y: scroll">
  <li>Red</li>
  <li>Blue</li>
  <li>Purple</li>
  <li>Blue</li>
  <li>Yellow</li>
  <li>Black</li>
  <li>White</li>
  <li>Red</li>
  <li>Blue</li>
  <li>Purple</li>
  <li>Blue</li>
  <li>Yellow</li>
  <li>Black</li>
  <li>White</li>
  <li>Red</li>
  <li>Blue</li>
  <li>Purple</li>
  <li>Blue</li>
  <li>Yellow</li>
  <li>Black</li>
  <li>White</li>
  <li>Red</li>
  <li>Blue</li>
  <li>Purple</li>
  <li>Blue</li>
  <li>Yellow</li>
  <li>Black</li>
  <li>White</li>
  <li>Red</li>
  <li>Blue</li>
  <li>Purple</li>
  <li>Blue</li>
  <li>Yellow</li>
  <li>Black</li>
  <li>White</li>
  <li>Red</li>
  <li>Blue</li>
  <li>Purple</li>
  <li>Blue</li>
  <li>Yellow</li>
  <li>Black</li>
  <li>White</li>
</ul>
<div id='message'></div>

关于javascript - 检测用户是否滚动到 UL 的顶部或底部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33184101/

相关文章:

javascript - 如何对齐正文中的 div 以保持特定的高度和宽度

javascript - 复制字段元素和重复项的位置

javascript - 自动填充 javascript/applescript Accuweather (菜鸟)

javascript - 谷歌+ API : Get users alternate email addresses

javascript - 如何获取函数中单元格的先前值

php - 编辑生成内容的特定部分

javascript - 使用 Javascript/jQuery 以编程方式关闭 SELECT 下拉列表

jquery - 动画无限循环

javascript - 从单选按钮动态更新文本

css - html中鼠标悬停时图像上的菜单选项