【问题标题】:Using jQuery pixel detection to change menu layout使用 jQuery 像素检测来改变菜单布局
【发布时间】:2016-01-12 15:20:31
【问题描述】:

我对编码很陌生,需要一些帮助。

我正在尝试让我的网页检测用户的像素大小何时在 768 和 1200 像素之间,并且我计划在有人适合此参数时更改菜单的工作方式。

这是我的代码示例:

if (@media < 768px && @media >1 200px){
    Then
        $(document).ready(function(){
        $('#myMenuButton').menu({
            content: $('#myContent').html(),
            maxHeight: 180,
            positionOpts: { offsetX: 10, offsetY: 20 },
            showSpeed: 300
        });
    });
}

【问题讨论】:

  • 当浏览器改变大小时,这是否需要动态改变?另外,你在使用 Bootstrap 吗?
  • 是的,我正在使用引导程序,我已经设置了它,因此当屏幕下降到某个像素大小以下时,菜单项会变成一个切换框,但是由于我有下拉菜单,它们相互重叠,我想当切换按钮变为活动状态时,请执行一些操作,以使菜单的下拉菜单向右而不是直接向下。

标签: jquery html asp.net jquery-ui


【解决方案1】:

您可以使用 jQuery $(window).resize() 事件。例如,您可以这样做:

$(window).resize(function(){
    var windowWidth = $(window).width(); //Get the user's width
    if (windowWidth < 1200 && windowWidth > 768){
        //Do code
    }
});

调整大小事件的文档:https://api.jquery.com/resize/

请注意,您最好将上述代码包装到准备好的文档中 http://learn.jquery.com/using-jquery-core/document-ready/

【讨论】:

  • 我会稍微解释一下这种情况,我目前在我的网站上使用引导程序,当用户像素大小低于 1200 像素时,它已经将菜单更改为切换菜单,但因为我使用的是下拉菜单当下拉菜单相互覆盖时变得非常混乱,所以我想做的是改变菜单在这些像素大小之间的工作方式,而不是下拉,而是在菜单项悬停时向右展开。
  • 在我看来像是一个 CSS 问题...您必须使用 CSS 断点按照您想要的方式正确设置样式,然后,使用上面的代码,您可以控制您想要在两者之间发生的事情X 和 Y 窗口的宽度
  • 好的,所以当它下降到某个像素侧以下时,我的 css 类被称为 .nav-toggle 我必须在它下面放置什么,所以当您将鼠标悬停在显示为的下拉菜单上时原始菜单项的右侧,而不是当前项的正下方?
  • 在没有看到设计的情况下我很难判断,但我想您是否应该将菜单的第一个元素 (li) 定位到“相对位置”,而将另一个下拉菜单定位使用绝对位置......也许这是给你的教程?如果没有看到布局,很难判断你应该写什么 CSS……你也在使用 jQuery UI 吗?
猜你喜欢
  • 2012-01-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-16
  • 2014-03-01
  • 1970-01-01
相关资源
最近更新 更多