jquery - 如何在 Bootsrap 模式上仅隐藏滚动条拇指?
问题描述
在引导文档上,当您打开 a 时modal
,它只会隐藏scrollbar thumb
.
但是我modal
隐藏了整个滚动条。我怎样才能像示例一样只隐藏scrollbar thumb
?
body {
height: 1200px;
}
<head>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
</head>
<body>
<!-- Button trigger modal -->
<button type="button" class="btn btn-primary" data-toggle="modal" data-target="#exampleModalCenter">
Launch demo modal
</button>
<!-- Modal -->
<div class="modal fade" id="exampleModalCenter" tabindex="-1" role="dialog" aria-labelledby="exampleModalCenterTitle" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered" role="document">
<div class="modal-content">
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
<button type="button" class="btn btn-primary">Save changes</button>
</div>
</div>
</div>
</div>
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script>
</body>
解决方案
它已经在您的演示中工作,如果您检查它,您会padding-right: 17px
在打开模式时在正文中找到
模态的作用是:隐藏溢出,这样就不会显示滚动条。并添加 17px 的右填充(滚动条的宽度)。
诀窍是在引导网站右侧有另一个滚动条。所以你会认为有滚动条没有拇指,但实际上根本没有滚动条,它只是padding-right
有一些解决方法是在打开模式时添加条,位于滚动条的同一位置。通过使用 jquery 和 bootstrap modal 提供的事件(参见链接)
$("#exampleModalCenter").on("show.bs.modal", function() {
$(".scroll").addClass("show")
});
$("#exampleModalCenter").on("hidden.bs.modal", function() {
$(".scroll").removeClass("show")
});
body {
position: relative;
height: 1200px
}
.scroll {
display: none;
}
.scroll.show {
display: block;
position: absolute;
top: 0;
bottom: 0;
right: 0;
width: 17px;
background-color: #f1f1f1;
}
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
<body>
<!-- Button trigger modal -->
<button type="button" class="btn btn-primary" data-toggle="modal" data-target="#exampleModalCenter">
Launch demo modal
</button>
<div class="scroll"></div>
<!-- Modal -->
<div class="modal fade" id="exampleModalCenter" tabindex="-1" role="dialog" aria-labelledby="exampleModalCenterTitle" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered" role="document">
<div class="modal-content">
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
<button type="button" class="btn btn-primary">Save changes</button>
</div>
</div>
</div>
</div>
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script>
</body>
推荐阅读
- sql - 如果行名称重复,则仅返回具有重复名称的行
- python - 文件夹被解释为文件
- java - 装箱值被取消装箱,然后立即重新装箱 - Double
- c# - 在线程中解码连续的数据流而不阻塞接收器
- ionic3 - 在滚动事件上将 scrollTop 传递给离子组件
- ios - UITableView 单元格上的 NSContiguousString 泄漏
- javascript - Google 在 World Cup Pin It Live 工具中使用了哪些 JavaScript、HTML、API?
- javascript - 试图在 javascript / jquery 中创建“停止计时器”
- ibm-cloud-private - ICP - 添加以 ECONNREFUSED 结尾的 ldap
- google-chrome - 我可以判断警报/确认是否已被用户或过分热心的广告块驳回?