首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >打开/关闭具有不同元素的滑出菜单时覆盖

问打开/关闭具有不同元素的滑出菜单时覆盖
EN

Stack Overflow用户
提问于 2018-02-01 08:55:06
回答 1查看 376关注 0票数 0

我使用的ShiftNav专业插件,因为我想要一个滑动菜单,推动网站打开时。

我希望它有一个黑暗的覆盖打开时,使用菜单按钮。但我想要它关闭使用菜单中的一个单独的按钮。

我使用这段代码来实现覆盖:

代码语言:javascript
复制
jQuery('#shiftnav-toggle-main.shiftnav-toggle-edge-right .shiftnav-toggle-burger').on("click",function() {
  if(jQuery('.overlay').length == 0) {
    jQuery(this).toggleClass('overlay');
  }
  else {
    jQuery(this).removeClass('overlay');
  }
});

但是当我点击菜单中的关闭菜单按钮,而不是仅仅关闭菜单,覆盖不会消失。只有当我单击菜单外部时,它才会消失。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-02-01 09:19:04

您的代码有多个问题。

第一,关闭按钮不会触发代码。您还必须添加类.shiftnav-panel-close,因为这是关闭按钮的类:

第二步:,您使用的是toggleClass和removeClass函数。但是toggleClass应该足够了,因为它在单击时删除/添加了类。这样,您就不需要if/else语句。

第三部分:-- jQuery(this).toggleClass('overlay');中的“this”部分是指您单击的div。因此,如果您使用类.shiftnav-panel-close单击关闭div,它会在这个div上切换这个类。但是,您的“.overlay”类(用于显示覆盖)在div上设置了id #shiftnav-toggle-main-button。因此,您不应该引用“this”,而应该引用id #shiftnav-toggle-main-button的div。

最终代码:

代码语言:javascript
复制
$('#shiftnav-toggle-main-button, .shiftnav-panel-close').on('click', function(){ // On click on menu button or close button

    $("#shiftnav-toggle-main-button").toggleClass('overlay'); //Toggle class .overlay

});

JSFiddle:

https://jsfiddle.net/Ljjyth06/2/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48558704

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档