繁体   English   中英

响应式移动菜单

[英]Responsive Mobile Menu

我有一个函数,该函数将一个类应用于html元素,并且还检测是否单击了宽度小于900px的下拉菜单。

当我将浏览器的大小从桌面视图调整为900px以下时,偶尔会发现下拉类“ active-hit”没有得到应用-意味着菜单不会打开。 任何想法为什么会这样? 我必须重新加载页面才能使其在移动视图中工作。

// Add Mobile View Class to HTML ELEMENT below 900px
(function($) {
var $window = $(window),
    $html = $('html');
    $dropdown = $('.dropdown-nav > a');

function resize() {
    if ($window.width() < 900) {

      $dropdown.on('click', function(e){
        $(this).parent().toggleClass('active-hit');
        e.preventDefault();
        e.stopPropagation();
      });

      return $html.addClass('mobile-view');

    } else {
      $html.removeClass('mobile-view');
      $dropdown.parent().removeClass('active-hit');
    }

}
$window
    .resize(resize)
    .trigger('resize');
})(jQuery);

正如我在评论中提到的,窗口调整大小不会触发您的功能,但是如果您出于测试目的而这样做,则可以尝试使用此功能:

$(window).resize(function() {
  resize();
});

这是为您工作的小提琴

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM