mmenu 禁用表单元素之间的制表符
mmenu Disables Tabbing Between Form Elements
mmenu 打开后无法像往常一样使用页面的其余部分,特别是与表单元素之间的制表符有关,并允许您在输入元素或文本区域上按下一个键并重复该键(即 aaaaaaaaaaaaaaa).
显然这是 mmenu 中内置的东西,但这是一个真正的问题,因为我们在桌面上始终处于打开状态并需要此功能。
我不想修改最大宽度为 899 像素(移动设备)的媒体元素的任何行为,只想修改桌面(最小宽度 900 像素),这是脚本的第一部分以 if ( mql.matches).
我当前的 "fire the mmenu" 脚本是:
<script>
function mediaqueryresponse(x) {
if (mql.matches)
{
document.addEventListener(
"DOMContentLoaded", () => {
new Mmenu( "#navmenu", {
"openingInterval": 0,
"transitionDuration": 0,
wrappers: ["bootstrap"],
"extensions": [
"position-front",
"fx-panels-none",
"theme-dark"
],
"offCanvas":
{
"blockUI": false,
"moveBackground": true
},
"sidebar":
{
"expanded":
{
"use": true
}
},
"navbar":
{
"title": "INTRANET"
},
"navbars": [
{
"position": "top",
"content": [
"prev",
"title"
],
},
{
"position": "bottom",
"content": [
"<a class='fa fa-envelope' href='mailto:webmaster@example.com'></a>",
"<a class='fa fa-twitter' href='https://www.twitter.com/example'></a>",
"<a class='fa fa-facebook' href='fb://profile/6515649878645135'></a>"
]
}
]
});
}
);
}
else
{
document.addEventListener(
"DOMContentLoaded", () => {
new Mmenu( "#navmenu", {
wrappers: ["bootstrap"],
"extensions": [
"position-front",
"pagedim-black",
"theme-dark"
],
"navbar":
{
"title": "INTRANET"
},
"navbars": [
{
"position": "top",
"content": [
"prev",
"title"
],
},
{
"position": "bottom",
"content": [
"<a class='fa fa-envelope' href='mailto:webmaster@example.com'></a>",
"<a class='fa fa-twitter' href='https://www.twitter.com/example'></a>",
"<a class='fa fa-facebook' href='fb://profile/6515649878645135'></a>"
]
}
]
});
}
);
}
}
var mql = window.matchMedia("screen and (min-width: 900px) and (orientation:landscape)")
mediaqueryresponse(mql) // call listener function explicitly at run time
mql.addListener(mediaqueryresponse) // attach listener function to listen in on state changes
</script>
这似乎已经为我解决了:
在你的菜单代码之后,看起来有点像这样:
new Mmenu(document.querySelector("#menu"), {
[...]
}
你补充:
document.body.removeEventListener('keydown', document.body.mmEventKeydownTabguard[0])
这是此处发布的解决方案:
mmenu 打开后无法像往常一样使用页面的其余部分,特别是与表单元素之间的制表符有关,并允许您在输入元素或文本区域上按下一个键并重复该键(即 aaaaaaaaaaaaaaa).
显然这是 mmenu 中内置的东西,但这是一个真正的问题,因为我们在桌面上始终处于打开状态并需要此功能。
我不想修改最大宽度为 899 像素(移动设备)的媒体元素的任何行为,只想修改桌面(最小宽度 900 像素),这是脚本的第一部分以 if ( mql.matches).
我当前的 "fire the mmenu" 脚本是:
<script>
function mediaqueryresponse(x) {
if (mql.matches)
{
document.addEventListener(
"DOMContentLoaded", () => {
new Mmenu( "#navmenu", {
"openingInterval": 0,
"transitionDuration": 0,
wrappers: ["bootstrap"],
"extensions": [
"position-front",
"fx-panels-none",
"theme-dark"
],
"offCanvas":
{
"blockUI": false,
"moveBackground": true
},
"sidebar":
{
"expanded":
{
"use": true
}
},
"navbar":
{
"title": "INTRANET"
},
"navbars": [
{
"position": "top",
"content": [
"prev",
"title"
],
},
{
"position": "bottom",
"content": [
"<a class='fa fa-envelope' href='mailto:webmaster@example.com'></a>",
"<a class='fa fa-twitter' href='https://www.twitter.com/example'></a>",
"<a class='fa fa-facebook' href='fb://profile/6515649878645135'></a>"
]
}
]
});
}
);
}
else
{
document.addEventListener(
"DOMContentLoaded", () => {
new Mmenu( "#navmenu", {
wrappers: ["bootstrap"],
"extensions": [
"position-front",
"pagedim-black",
"theme-dark"
],
"navbar":
{
"title": "INTRANET"
},
"navbars": [
{
"position": "top",
"content": [
"prev",
"title"
],
},
{
"position": "bottom",
"content": [
"<a class='fa fa-envelope' href='mailto:webmaster@example.com'></a>",
"<a class='fa fa-twitter' href='https://www.twitter.com/example'></a>",
"<a class='fa fa-facebook' href='fb://profile/6515649878645135'></a>"
]
}
]
});
}
);
}
}
var mql = window.matchMedia("screen and (min-width: 900px) and (orientation:landscape)")
mediaqueryresponse(mql) // call listener function explicitly at run time
mql.addListener(mediaqueryresponse) // attach listener function to listen in on state changes
</script>
这似乎已经为我解决了:
在你的菜单代码之后,看起来有点像这样:
new Mmenu(document.querySelector("#menu"), {
[...]
}
你补充:
document.body.removeEventListener('keydown', document.body.mmEventKeydownTabguard[0])
这是此处发布的解决方案: