我在我的网站左下角创建了一个“更多”按钮来显示菜单。
单击按钮时,+变成x
我希望当你点击+时,点击和滚动将被禁用在页面上。
<div class="dropup">
<button class="btn btn-default dropdown-toggle" type="button" id="dropdown-menu-action" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
<div class="fa-4x">
<span class="fa-layers fa-fw">
<i class="fas fa-circle"></i>
<i class="fa-inverse fas fa-plus" data-fa-transform="shrink-6"></i>
</span>
</div>
</button>
<ul class="dropdown-menu" aria-labelledby="dropdown-menu-action">
<li><a href="/profil" data-drupal-link-system-path="profil"><i class="fas fa-id-card fa-lg"></i> Créer mon profil</a></li>
</ul>
</div>这是我的样式表
.overlay-is-navbar-collapse {
overflow: hidden;
pointer-events: none;
}这是我的JS文件:
(function ($) {
$('#dropdown-menu-action').on('show.bs.dropdown', function () {
$('body').addClass('overlay-is-navbar-collapse');
});
$('#dropdown-menu-action').on('hide.bs.dropdown', function () {
$('body').removeClass('overlay-is-navbar-collapse');
});
})(window.jQuery);更新
以下代码不起作用。如果我单击“外部”,则菜单将关闭,但类将保留在主体上。
$('#dropdown-menu-action').on('click', () => {
$('body').toggleClass('overlay-is-navbar-collapse');
});我尝试过以下代码,但它不起作用:
$('#dropdown-menu-action').on('shown.bs.dropdown', function () {
$('body').addClass('overlay-is-navbar-collapse');
});
$('#dropdown-menu-action').on('hidden.bs.dropdown', function () {
$('body').removeClass('overlay-is-navbar-collapse');
});发布于 2018-04-03 08:54:03
在JavaScript文件中,添加一个click处理程序以切换主体类名overlay-is-navbar-collapse
(function ($) {
$('#dropdown-menu-action').on('click', () => {
$('body').toggleClass('overlay-is-navbar-collapse');
});
})(window.jQuery);从您的CSS文件中删除 pointer-events: none,否则一旦添加了类名overlay-is-navbar-collapse,您将无法再次单击该按钮。
.overlay-is-navbar-collapse {
overflow: hidden;
}发布于 2018-04-03 08:38:07
您可以向主体添加一个类,以禁用滚动或编辑样式,直接在您想要的任何轴上,或在所有轴上。body.class { overflow-y: hidden; }
https://stackoverflow.com/questions/49625490
复制相似问题