2017-10-11 94 views
2

如何檢測滾動字幕是否使用jQuery按鈕點擊?如何檢查滾動字幕

<marquee>Scrolling text here, moving constantly</marquee> 
 

 
<button id="btnCheck">Button</button>

我的jQuery代碼看起來像:

$(function(){ 

    var marquee = $("marquee")[0]; 

    $("#btnCheck").click(function(){ 
    // How to check if marquee is scrolling here 
    }); 
}); 
+0

它需要說。任何HTML規範中都不存在''標籤。儘管它在當前的HTML5規範中有記載,但它僅用於將其標記爲過時的目的。我忘記了細節。不要使用''。 – Rob

回答

3

您可以添加一個pmarquee內,並檢查其left位置。如果它被改變了,那麼你的marquee是滾動的,否則,它不是,這樣的片段:

$(function() { 
 
    $("#btnCheck").click(function() { 
 
     var initialLeft = $('marquee > p').position().left; 
 
     setTimeout(function() { 
 
      var currentLeft = $('marquee > p').position().left; 
 

 
      if (initialLeft !== currentLeft) { 
 
       alert("Marquee is scrolling!"); 
 
      }else{ 
 
       alert("Marquee is not scrolling"); 
 
      } 
 
     }, 100); 
 
    }); 
 
});
p { 
 
    margin: 0 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<marquee loop="1"><p>Scrolling text here, moving constantly</p></marquee> 
 
<button id="btnCheck">Button</button>


P/S:

這(該HTML <marquee>)功能已過時。雖然它可能在某些瀏覽器中仍然有效,但它的使用不鼓勵,因爲它可以在任何時候刪除。嘗試 避免使用它。

參見:developer.mozilla.org

+0

我有其他啓動和停止選取框的按鈕。我試圖整合它,但是很多時候initialLeft和currentLeft相等,因此即使滾動停止,也總是警告滾動。我做錯了嗎? –

+0

也許你的選取框的速度比默認的速度慢,那麼'setTimeout'的超時時間是不夠的,嘗試將它增加到'},100)部分中的一個更大的值;'' –