为了账号安全,请及时绑定邮箱和手机立即绑定

防止在WebKit / Blink中为MacOS触控板用户隐藏滚动条

防止在WebKit / Blink中为MacOS触控板用户隐藏滚动条

交互式爱情 2019-09-19 10:27:36
自10.7(Mac OS X Lion)以来MacOS上的WebKit / Blink(Safari / Chrome)默认行为是在不使用触控板用户时隐藏滚动条。这可能令人困惑 ; 滚动条通常是元素可滚动的唯一视觉提示。示例(jsfiddle)HTML<div class="frame">    Foo<br />    Bar<br />    Baz<br />    Help I'm trapped in an HTML factory! </div>CSS.frame {    overflow-y: auto;    border: 1px solid black;    height: 3em;    width: 10em;    line-height: 1em;}如何强制滚动条始终显示在WebKit中的可滚动元素上?
查看完整描述

3 回答

?
摇曳的蔷薇

TA贡献1793条经验 获得超6个赞

可以使用WebKit的-webkit-scrollbar伪元素  [ blog ]来控制滚动条的外观。您可以禁用通过设置默认的外观和行为-webkit-appearance [ 文件 ]来none。


因为您要删除默认样式,所以您还需要自己指定样式或滚动条永远不会显示。以下CSS重新创建隐藏滚动条的外观:


示例(jsfiddle)

CSS

.frame::-webkit-scrollbar {

    -webkit-appearance: none;

}


.frame::-webkit-scrollbar:vertical {

    width: 11px;

}


.frame::-webkit-scrollbar:horizontal {

    height: 11px;

}


.frame::-webkit-scrollbar-thumb {

    border-radius: 8px;

    border: 2px solid white; /* should match background, can't be transparent */

    background-color: rgba(0, 0, 0, .5);

}


.frame::-webkit-scrollbar-track { 

    background-color: #fff; 

    border-radius: 8px; 



查看完整回答
反对 回复 2019-09-19
?
Helenr

TA贡献1780条经验 获得超3个赞

对于我在动态添加可滚动部分的单页Web应用程序,我通过以编程方式向下滚动一个像素来触发OSX的滚动条:


// Plain JS:

var el = document.getElementById('scrollable-section');

el.scrollTop = 1;

el.scrollTop = 0;


// jQuery:

$('#scrollable-section').scrollTop(1).scrollTop(0);

这会触发视觉提示淡入淡出。


查看完整回答
反对 回复 2019-09-19
  • 3 回答
  • 0 关注
  • 493 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信