javascript - 仅通过悬停显示滚动条

标签 javascript jquery html css scroll

我有可滚动的列表,并且只想通过悬停显示滚动条,但我也希望能够在移动浏览器(iOS、Android)上的列表上通过第一次触摸滚动——行为总是像列表有 overflow-y: auto。我尝试使用此代码 ( http://codepen.io/sergdenisov/pen/RPazyg ):

HTML:

<ul class="list js-list">
    <li>Test Test Test Test Test Test Test Test Test</li>
    ...
    <li>Test Test Test Test Test Test Test Test Test</li>
</ul>

CSS:

.list {
    -webkit-overflow-scrolling: touch;
    padding: 0 30px 0 0;
    overflow: hidden;
    height: 300px;
    width: 300px;
    background: gray;
    list-style: none;
}

  .list_scrollable {
      overflow-y: auto;
  }

Javascript:

$('.js-list').on({
    'mouseenter touchstart': function() {
        $(this).addClass('list_scrollable');
    },
    'mouseleave touchend': function() {
        $(this).removeClass('list_scrollable');
    }
});

但移动浏览器上的滚动功能只能通过在滚动前额外点击列表来激活。有什么想法吗?

最佳答案

我建议你只添加

  .list_scrollable {
      overflow-y: auto;
  }

作为手机的媒体查询 - 从而使其始终为真。或者按照其他答案的建议更改您的 CSS,使您的 JS 代码过时。

关于javascript - 仅通过悬停显示滚动条,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30262306/

相关文章:

javascript - 为什么 google cloud vision Logo detection 在同一张图片上返回不同的结果?

javascript - 无法将 jQuery 处理程序添加到 HTML 站点

html - CSS 中可见性和显示的优先顺序

html - 2 表格并排 float

javascript - 父模板不渲染

javascript - 云函数正在将 NaN 写入 firestore

javascript - 定位环绕 radio 输入的跨度

javascript - php 返回表后移动一个值

javascript - 是否可以捕获 window.location.replace 事件?

javascript - React - 将点击处理程序附加到动态子项