添加当窗口从移动设备更改为桌面时调整大小事件
Add resize event when window changes from mobile to desktop
大家!
我只是想知道是否有人能够填写我如何向以下代码添加调整大小事件:
/* Your code goes here */
var $ = jQuery,
breakpoint = 940,
initClass = 'toggleSubnavInitiated',
menu,
parentLinks,
childrenItems;
$(document).ready(function() {
menu = $('.menu');
parentLinks = menu.find('.menu-item-has-children > a');
childrenItems = menu.find('.sub-menu');
if ($(window).width() <= breakpoint) {
toggleSubnav(menu, parentLinks, childrenItems);
}
});
$(window).resize(function() {
if ($(window).width() <= breakpoint) {
toggleSubnav(menu, parentLinks, childrenItems);
}
});
function toggleSubnav(menu, parentLinks, childrenItems) {
if (parentLinks.length !== 0) {
menu.addClass(initClass);
childrenItems.hide();
parentLinks.on('click', function(event) {
event.preventDefault();
$(this).siblings('.sub-menu').toggle();
});
}
}
看起来这个代码块中有一个,但是当浏览器从移动站点切换到桌面站点时,它似乎不会调整大小。在Chrome上,我能够获得941像素作为从移动设备切换到桌面的断点。940 像素,我想这个脚本中包含,是从桌面到移动设备吗?桌面到移动设备似乎运行正常。有人对如何在窗口以 941 像素从移动设备变为桌面时添加调整大小事件有任何想法吗?
谢谢大家的帮助!
附言我刚加入这里,所以请放轻松!;)
当您从高于 940px 的值变为较低的值时,您的 resize()
事件设置正确。但是,您尚未定义任何反其道而行之的行为。您可以通过以下方式修改代码:
/* your previous code */
$(window).resize(function() {
if ($(window).width() <= breakpoint) {
toggleSubnav(menu, parentLinks, childrenItems);
} else {
$(this).siblings('.sub-menu').toggle(); //I assume you want the menu to disappear when moving back to a wider screen
}
});
我也会小心使用 toggle()
方法,因为每次调用它时,它都会显示或隐藏您的菜单。因此,假设用户第一次在 940px 以下调整大小,菜单将按您的计划显示。如果他调整得更低,您的菜单将再次消失。
相关文章:
- 从桌面读取python文件时高亮显示代码
- 内部分区字体大小获胜'调整浏览器窗口大小时不会随媒体查询而更改
- 调整窗口大小时,可拖动的对象会出现在容器外部
- ExtJS——在展开/折叠时调整面板高度
- 使用图像数组列表的simplegallary.js显示适合桌面屏幕的图像
- Chrome应用程序调整窗口大小保持纵横比
- 如何自动调整标签的高度以适应内容
- 导航栏没有调整到浏览器屏幕的大小
- 调整屏幕大小后不显示子菜单
- 使用JavaScript根据窗口/视口的高度动态调整图像大小
- 合并两个数组,重新调整循环js
- Morris.js折线图x轴标签在调整大小后消失
- 调整缩放窗口高度提升缩放
- 调整屏幕大小时更改属性值
- 添加当窗口从移动设备更改为桌面时调整大小事件
- 移动与桌面滚动/调整大小问题
- 菜单文本在从移动设备调整到桌面后消失
- 移动设备和桌面之间的响应式导航调整大小问题
- 如何在Chrome桌面捕获中获取调整大小事件
- 删除小屏幕/移动设备上的输入占位符,但在调整为桌面大小时再次添加它们