簡體   English   中英

使用if / else的自適應javascript

[英]Responsive javascript using if/else

我編寫了腳本,使用以下代碼在屏幕頂部(自動隱藏)顯示消息:

    <script type="text/javascript">
    $(document).ready(function(){
        setTimeout(function() {
        $('#dialog2').animate({
            marginTop: "40",
                }, 700);
                },1000);
        setTimeout(function() {
        $('#dialog2').animate({ 
            marginTop: "-80px",
                }, 1500);
        },10000);
     });
    </script>

它運作良好。 現在,我嘗試使用if / else這樣的偽代碼來使marginTop適應不同尺寸的屏幕:

if (window.matchMedia("(min-width: 240px)").matches) {
    marginTop: "20",
} else {
    marginTop: "40", // pseudocode
} 

我努力了

<script type="text/javascript">
    $(document).ready(function(){
        setTimeout(function() {
        if (window.matchMedia("(min-width: 400px)").matches) {
            $('#dialog2').animate({
                marginTop: "40",
                    }, 700);
                    },1000);
        } else {
            $('#dialog2').animate({
                marginTop: "40",
                    }, 700);
                    },1000);
        setTimeout(function() {
        $('#dialog2').animate({ 
            marginTop: "-80px",
                }, 1500);
        },10000);
     });
    </script>

但似乎不起作用。 我是javascript的新手,我認為setTimeout太難為我整數了。

有什么辦法嗎?

您的代碼“ SyntaxError:意外的令牌”中有錯誤。

要解決這個問題

setTimeout(function() { if (window.matchMedia("(min-width: 400px)").matches) { $('#dialog2').animate({ marginTop: "40", }, 700); } else { $('#dialog2').animate({ marginTop: "40", }, 700); setTimeout(function() { $('#dialog2').animate({ marginTop: "-80px", }, 1500); },2000); } },10000);

希望這可以幫助。

好的,使用Firebug我發現了我的錯誤。 下面的代碼運行良好:

    <script type="text/javascript">
    $(document).ready(function(){
        setTimeout(function() {
        if (window.matchMedia("(min-width: 400px)").matches) {
            $('#dialog2').animate({
                marginTop: "40",
                    }, 700);
        } else {
            $('#dialog2').animate({
                marginTop: "20",
                    }, 700);
        }},1000);
        setTimeout(function() {
        $('#dialog2').animate({ 
            marginTop: "-80px",
                }, 1500);
        },10000);
     });
    </script>
<script type="text/javascript">
$(document).ready(function() {
  setTimeout(function() {
    if (window.matchMedia("(min-width: 400px)").matches) {
      console.log('12')
      $('#dialog2').animate({
        marginTop: "20"
      }, 700);
    } else {
      console.log('11')
      $('#dialog2').animate({
        marginTop: "40",
      }, 700);
    }
  }, 1000);

  setTimeout(function() {
      $('#dialog2').animate({
        marginTop: "-80px"
      }, 1500);
  }, 10000);
});

我不知道你的主意。 也許這就是您想要的?

暫無
暫無

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

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