简体   繁体   English

如何仅在用户在div上滚动时显示滚动条

[英]How to show scrollbar only when user scrolls on a div

I want to implement something like what google did here - This is how it comes initially. 我想实现类似google在这里所做的操作-这就是最初的方式。 No scrollbar. 没有滚动条。

在此处输入图片说明

But when the user clicks on more, or scrolls on this box, it scrolls down and scrollbar appears. 但是,当用户单击更多或滚动此框时,它会向下滚动并出现滚动条。

在此处输入图片说明

How can i implement something like this? 我如何实现这样的东西?

(function(timer) {
  window.addEventListener('load', function() {
    var el = document.querySelector('.child');
    el.addEventListener('scroll', function(e) {
    (function(el){
      el.classList.add('scroll');
      clearTimeout(timer);
      timer = setTimeout(function() {
        el.classList.remove('scroll');
      }, 100);    
    })(el);
    })
  })
})();
.parent {
  height: 180px;
  width: 500px;
  border: 1px solid green;
  overflow: hidden;
}

.child {
  width: 100%;
  height: 99%;
  overflow: auto;
  padding-right: 20px;
}
.child.scroll {
  padding-right: 0;
}
<div class="parent">
  <div class="child">
    Hello World!<br>Hello World!<br>Hello World!<br> Hello World!<br>Hello World!<br>Hello World!<br> Hello World!<br>Hello World!<br>Hello World!<br> Hello World!<br>Hello World!<br>Hello World!<br> Hello World!<br>Hello World!<br>Hello World!<br> Some
    content<br>Hello World!<br>Hello World!<br> Hello World!<br>Hello World!<br>Hello World!<br> Hello World!<br>Hello World!<br>Hello World!<br> Hello World!<br>Hello World!<br>Hello World!<br> Hello World!<br>Hello World!<br>Hello World!<br> Hello World!<br>Some
    content<br>Hello World!<br> Hello World!<br>Hello World!<br>Hello World!<br> Hello World!<br>Hello World!<br>Hello World!<br>Hello World!<br>Hello World!<br>Hello World!<br>Hello World!<br>Hello World!<br>Hello World!<br>Hello World!<br>Hello World!<br>Hello World!<br>Hello World!<br>Hello World!<br>Hello World!<br>Hello World!<br>Hello World!<br>Hello World!<br>Hello World!<br>
  </div>
</div>

You can achieve that only using CSS Try that solutio also I have included custom scrollbar design. 您可以仅使用CSS来实现这一目标。尝试使用solutio,我也提供了自定义滚动条设计。 Hope it'd help 希望对你有帮助

 ::-webkit-scrollbar { width: 10px; } ::-webkit-scrollbar-track { box-shadow: inset 0 0 5px grey; border-radius: 10px; } ::-webkit-scrollbar-thumb { background: #aaa; border-radius: 10px; } ::-webkit-scrollbar-thumb:hover { background: #b30000; } .parent { height: 180px; width: 500px; border: 1px solid #000; overflow: hidden; padding: 15px; } .parent:hover { overflow-y: scroll; } .child { width: 100%; height: 180px; padding-right: 20px; } .child.scroll { padding-right: 0; } 
 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width"> <title>JS Bin</title> </head> <body> <div class="parent"> <div class="child"> Hello World!<br>Hello World!<br>Hello World!<br> Hello World!<br>Hello World!<br>Hello World!<br> Hello World!<br>Hello World!<br>Hello World!<br> Hello World!<br>Hello World!<br>Hello World!<br> Hello World!<br>Hello World!<br>Hello World!<br> Some content<br>Hello World!<br>Hello World!<br> Hello World!<br>Hello World!<br>Hello World!<br> Hello World!<br>Hello World!<br>Hello World!<br> Hello World!<br>Hello World!<br>Hello World!<br> Hello World!<br>Hello World!<br>Hello World!<br> Hello World!<br>Some content<br>Hello World!<br> Hello World!<br>Hello World!<br>Hello World!<br> Hello World!<br>Hello World!<br>Hello World!<br>Hello World!<br>Hello World!<br>Hello World!<br>Hello World!<br>Hello World!<br>Hello World!<br>Hello World!<br>Hello World!<br>Hello World!<br>Hello World!<br>Hello World!<br>Hello World!<br>Hello World!<br>Hello World!<br>Hello World!<br>Hello World!<br> </div> </div> </body> </html> 

如何知道用户何时滚动过去<div> ?</div><div id="text_translate"><p> 我正在构建一些东西,向用户展示他们没有看到的项目。</p><p> 每个项目都在一个&lt;div&gt;中,因此当用户滚动过去一个 div 或查看该 div 时,我希望将该项目标记为已被看到。</p><p> 谷歌阅读器会这样做,如果您滚动浏览提要中的某个项目,它会自动将其标记为已读。</p><p> 如何跟踪? 请指教。</p><p> 注意:不应仅限于使用鼠标滚动、向下/向上翻页、使用箭头键等也应计算在内。 主要标准是用户已经看到了一个 div。</p></div> - How to know when a user scrolls past a <div>?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 页面在css中滚动时仅显示滚动条 - Only show scrollbar when page scrolls in css 当用户滚动到页面顶部时,如何才能使此代码仅显示div标签? - How can I go about making this code only show the div tag when the user scrolls to the top of the page? 当用户滚动到页面末尾时如何显示div? - How to show a div when the user scrolls to the end of the page? 如何知道用户何时滚动过去<div> ?</div><div id="text_translate"><p> 我正在构建一些东西,向用户展示他们没有看到的项目。</p><p> 每个项目都在一个&lt;div&gt;中,因此当用户滚动过去一个 div 或查看该 div 时,我希望将该项目标记为已被看到。</p><p> 谷歌阅读器会这样做,如果您滚动浏览提要中的某个项目,它会自动将其标记为已读。</p><p> 如何跟踪? 请指教。</p><p> 注意:不应仅限于使用鼠标滚动、向下/向上翻页、使用箭头键等也应计算在内。 主要标准是用户已经看到了一个 div。</p></div> - How to know when a user scrolls past a <div>? 当用户向下滚动页面时显示隐藏的div - Show a hidden div when the user scrolls down the page 当用户滚动到底部时,如何仅在页面上显示特定数量的div并加载更多? - How to only show a specific number of divs on the page and load more when the user scrolls to the bottom? 如何确定用户何时滚动到容器 div 的底部? 对于无限卷轴 - How to determine when user scrolls to bottom of container div? For Infinite Scroll 如何检测用户何时滚动到 div 的底部 - Vue - How to detect when a user scrolls to the bottom of a div - Vue 当用户滚动经过某个 div 时如何更改 CSS - How to change CSS when user scrolls past a certain div 用户向上/向下滚动时如何隐藏/显示导航栏 - How to hide/show nav bar when user scrolls up/down
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM