gpt4 book ai didi

bootstrap-5 - Bootstrap 5 offcanvas 在关闭时滚动回到顶部

转载 作者:行者123 更新时间:2023-12-04 17:18:52 26 4
gpt4 key购买 nike

我有一个简单的 bootstrap 5 offcanvas 元素。这包含指向 html 页面正文中的 anchor 的简单链接。
我将 offcanvas 配置为没有背景并启用 body 滚动。
现在,当我打开 offcanvas 时,请单击链接。正文滚动到页面的该部分。但是当我关闭 Canvas 时。 body 滚动回到顶部。我怎样才能让 body 保持原状?
似乎用于打开 Canvas 的按钮重新获得了焦点。我试过这样的事情。

var myOffcanvas = document.getElementById('offcanvasExample');
//var bsOffcanvas = new bootstrap.Offcanvas(myOffcanvas)
myOffcanvas.addEventListener('hidden.bs.offcanvas', function (event) {
//event.stopPropagation();
//event.preventDefault();
// Give the document focus
// Remove focus from any focused element
if (document.activeElement) {
document.activeElement.blur();
}
window.focus();

});

但页面不断滚动回按钮。
亲切的问候

最佳答案

解决了。该按钮不应使用 data-bs-toggle="offcanvas"。
如果您为使用 Bootstrap 的 javascript 功能切换 offcanvas 的按钮制作点击处理程序,则一切正常。
这是我的代码

document.addEventListener("DOMContentLoaded", function(){
var myOffcanvas = document.getElementById('offcanvasExample');
var bsOffcanvas = new bootstrap.Offcanvas(myOffcanvas);
document.getElementById("OpenMenu").addEventListener('click',function (e){
e.preventDefault();
e.stopPropagation();
bsOffcanvas.toggle();
});
});
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-eOJMYsd53ii+scO/bJGFsiCZc+5NDVN2yr8+0RDqr0Ql0h+rP48ckxlpbzKgwra6" crossorigin="anonymous">
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta3/dist/js/bootstrap.bundle.min.js" integrity="sha384-JEW9xMcG8R+pH31jmWH6WWP0WintQrMb4s7ZOdauHnUtxwoG2vI5DkLtS3qm9Ekf" crossorigin="anonymous"></script>
<!-- the Offcanvas button //-->
<button class="nav-link btn btn-outline-primary" id="OpenMenu">open</button>


<!-- the Offcanvas element //-->
<div class="offcanvas offcanvas-start" data-bs-scroll="true" data-bs-backdrop="false" tabindex="-1" id="offcanvasExample" aria-labelledby="offcanvasExampleLabel">
<div class="offcanvas-header">
<h5 class="offcanvas-title text-primary" id="offcanvasExampleLabel">Test</h5>
<button type="button" class="btn-close text-reset" data-bs-dismiss="offcanvas" aria-label="Close"></button>
</div>
<div class="offcanvas-body">
<a href="#test">test</a>
</div>
</div>
<div class="my-5 py-5">
Test content
</div>
<div class="my-5 py-5">Test content</div>
<div class="my-5 py-5">Test content</div>
<div class="my-5 py-5">Test content</div>
<div class="my-5 py-5">Test content</div>
<div class="my-5 py-5">Test content</div>
<div class="my-5 py-5">Test content</div>
<div class="my-5 py-5">Test content</div>
<div class="my-5 py-5"><a name="test" id="test">Scroll here</a></div>
<div class="my-5 py-5">Test content</div>
<div class="my-5 py-5">Test content</div>
<div class="my-5 py-5">Test content</div>
<div class="my-5 py-5">Test content</div>
<div class="my-5 py-5">Test content</div>

关于bootstrap-5 - Bootstrap 5 offcanvas 在关闭时滚动回到顶部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67383776/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com