gpt4 book ai didi

javascript - jQuery/JS 仅在某些媒体断点/方向上调用点击功能

转载 作者:行者123 更新时间:2023-11-29 01:06:19 26 4
gpt4 key购买 nike

我已经成功构建了以下 JS/jQuery,但它似乎并不 100% 适合测试。主要是改变方向。我只想在 iPad 纵向和移动设备中触发点击事件。

这是我所拥有的:

// mobile
var isMobile = window.matchMedia("only screen and (max-width : 40em)");

// tablet
var isTablet = window.matchMedia("only screen and (max-width : 60em)");
var isTabletPortraitOnly = window.matchMedia("only screen and (max-width : 60em) and (orientation : portrait)");

/* mobile cart slideout */
var $miniCart = $('#cart_over');
var $cartLink = $('.mini-cart');
var $siteContent = $('.top-header-container, .main-content, footer');

function cartOpen(){

event.preventDefault();
if ($miniCart.hasClass("cart-slide-in")) {
$miniCart.addClass("cart-slide-out");
$siteContent.addClass("content-slide-in");
} else if ($miniCart.hasClass("cart-slide-out")) {
$miniCart.removeClass('cart-slide-out');
$miniCart.addClass("cart-slide-in");
} else {
$miniCart.addClass("cart-slide-in");
}

if ($siteContent.hasClass("content-slide-out")) {
$siteContent.addClass("content-slide-in");
$siteContent.removeClass("content-slide-out");
} else if ($siteContent.hasClass("content-slide-in")) {
$siteContent.addClass("content-slide-out");
$siteContent.removeClass("content-slide-in");
} else {
$siteContent.addClass("content-slide-out");
}

}

function cartClose(){
//clode the lateral panel
if ($miniCart.hasClass("cart-slide-in")) {
$miniCart.removeClass('cart-slide-in');
$miniCart.addClass('cart-slide-out');
$siteContent.removeClass("content-slide-out");
$siteContent.addClass("content-slide-in");
event.preventDefault();
}
}

if(isMobile.matches || isTabletPortraitOnly.matches){
$cartLink.on('click', function(event){
cartOpen();
});
$('#cart_close').on('click', function(event){
cartClose();
});
}

//bind to resize
$(window).resize( function() {
if(isMobile.matches || isTabletPortraitOnly.matches){
$cartLink.on('click', function(event){
cartOpen();
});
$('#cart_close').on('click', function(event){
cartClose();
});
}
});

//check for the orientation event and bind accordingly
window.addEventListener("orientationchange", function() {
if(isMobile.matches || isTabletPortraitOnly.matches){
$cartLink.on('click', function(event){
cartOpen();
});
$('#cart_close').on('click', function(event){
cartClose();
});
}
}, false);

最佳答案

当您的情况可能随时间变化(如移动旋转)时,您不应该只检查一次。

将点击事件的 if 条件从外部更改为内部。

希望对您有所帮助。

关于javascript - jQuery/JS 仅在某些媒体断点/方向上调用点击功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36321451/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com