簡體   English   中英

如何根據媒體查詢禁用特定腳本?

[英]How do I disable a particular script depending on media query?

一直在為此苦苦掙扎,無法正常工作。 我只希望此腳本可用於桌面。 謝謝。

<script type="text/javascript">
    $(document).ready(function() {
        $('#scroll_top').hide();
    });
    $(window).scroll(function() {
        if ($(this).scrollTop() == 0) {}
        if ($(this).scrollTop() >= 1000) { // If page is scrolled more than 50px
            $('#scroll_top').fadeIn(300); // Fade in the arrow
        } else {
            $('#scroll_top').fadeOut(300); // Else fade out the arrow
        }
    });
    $('#scroll_top').click(function() { // When arrow is clicked
        $('body,html').animate({
            scrollTop: 0 // Scroll to top of body
        }, 500);
    });
</script>          

您所說的台式機是什么意思? 喜歡電腦嗎?

如果是,則添加以下if條件:

if( !(/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)) ) {
 // Your code
}

以下情況將發現所有智能手機或平板電腦瀏覽器。

/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)

“!” 在條件使所有其他條件都出現之前:計算機也是如此。

您也可以嘗試使用窗口寬度,如果窗口寬度小於1024px,則可以假定設備是平板電腦或智能手機。

if (window.innerWidth <= 1024){
    //your code
}

隨時詢問是否需要。

我會測試窗口大小,而不是設備類型。 測試窗口大小比測試設備更准確,此外,如果某人的確有一個大屏幕且有1.5萬個屏幕(是的,我故意在誇大:))窗口打開並調整為非常小的尺寸,您是否要運行此腳本? 可能不是。

但是。

我將此腳本識別為“滾動到頂部”按鈕腳本,也許您確實希望它在較小的設備上運行,並且圖像較小? 我個人認為它們非常有用,只要它們的尺寸足夠小而不會阻塞內容。 只是我的2美分, 我相信您比我更了解您的網站。

祝好運!

如果要依賴CSS媒體查詢,則可以在HTLM中添加3個不可見元素,然后測試顯示是否設置為阻止。

將這些元素添加到頁腳

#isMobile,#isTablet{ 
     Display:none;
}
@media (max-width: 500px){
    #isMobile{
     Display: block;
    }
 }
@media (min-width: 501px) and (max-width: 1024px){
    #isTablet{
     Display: block;
    }
 }

JS

If( $("#isTablet").css("display") == "block") {
// do code
}

我不保證我的代碼有效,但是您應該了解如何在js中使用CSS媒體查詢的基本思想。 這樣,如果您更改斷點大小,則無需更新JavaScript。

另一方面,您始終可以使用以下方法進行簡單的窗口寬度測試

if( $(window).width() > 1024 ){
    //do code
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM