在Javascript事件侦听器中包含CSS媒体查询
我有一段javascript代码,可以在我的网站顶部导航。见下文:在Javascript事件侦听器中包含CSS媒体查询,javascript,css,media-queries,Javascript,Css,Media Queries,我有一段javascript代码,可以在我的网站顶部导航。见下文: <script> function init() { window.addEventListener('scroll', function(e){ var distanceY = window.pageYOffset || document.documentElement.scrollTop, shrink
<script>
function init() {
window.addEventListener('scroll', function(e){
var distanceY = window.pageYOffset || document.documentElement.scrollTop,
shrinkOn = 300,
header = document.querySelector("header");
if (distanceY > shrinkOn) {
classie.add(header,"smaller");
} else {
if (classie.has(header,"smaller")) {
classie.remove(header,"smaller");
}
}
});
}
window.onload = init();
</script>
如果您有任何关于如何组合这些内容的帮助,我们将不胜感激。根据您的描述,您希望在条件中添加现有代码,因此:
// media query event handler
if (matchMedia) {
const mq = window.matchMedia("(min-width: 768px)");
mq.addListener(WidthChange);
WidthChange(mq);
}
// media query change
function WidthChange(mq) {
if (mq.matches) {
[[ YOUR CODE ]]
} else {
[[ UNBIND SCROLL LISTENER ]]
}
}
根据您的描述,您希望在条件中添加现有代码,因此:
// media query event handler
if (matchMedia) {
const mq = window.matchMedia("(min-width: 768px)");
mq.addListener(WidthChange);
WidthChange(mq);
}
// media query change
function WidthChange(mq) {
if (mq.matches) {
[[ YOUR CODE ]]
} else {
[[ UNBIND SCROLL LISTENER ]]
}
}
您可以覆盖在
max width
媒体查询中添加的类的样式,因此不需要额外的javascript。或者在不重写的情况下,您可以仅在较大的媒体查询中应用类样式,即minwidth:768px
谢谢。仔细看,我意识到这可以通过媒体查询覆盖来实现,就像你说的那样。你可以覆盖在max width
媒体查询中添加的类的样式,因此不需要额外的javascript。或者在不重写的情况下,您可以仅在较大的媒体查询中应用类样式,即minwidth:768px
谢谢。仔细看,我意识到这可以通过媒体查询覆盖,就像你说的。谢谢。我可以通过使用上面James建议的媒体查询覆盖来解决这个问题,而不是添加额外的JavaScript代码。谢谢。我可以通过使用上面James建议的媒体查询覆盖来解决这个问题,而不是添加额外的JavaScript代码。