js判斷用戶是否正在滾動滾動條,滾動條滾動是否停止


js智能判斷是否可以自動滾動

比如,做一個音樂播放器,邊播放,邊定位歌詞,播放的時候,需要自動定位到播放語句,但是用戶去拖動或者滾動div(歌詞面板)時,這時就必須停止自動滾動,或者說是不能自動滾動,這個怎么做呢? 如果能時時判斷 用戶是否在滾動就好了? 或者能夠 知道滾動開始 和 結束事件 也行? 可惜均不知道! 目前,僅可以利用的就是div元素的滾動事件,下面是我的實現思路,如何判斷用戶是否滾動停止?

1.html代碼

<div id="panel">
   <div id="div1"></div>
   <div id="div2"></div>
   <a name="div3Anchor"> </a>
   <div id="div3"></div>
</div>

2.js代碼

//默認,播放時可以自動定位播放語句
window.canAutoScroll = true;
//只要滾動事件發生,就停止自動滾動定位方法的執行
var timeout = null;
var panel = $("#panel");
panel.scroll(function(){
    if(timeout != null){
       window.clearTimeout(timeout);
    }
    window.canAutoScroll = false;
    //500ms后,假定認為停止滾動
    timeout = window.setTimeout(function(){
        window.canAutoScroll = true;
    },500);
});

//播放事件
var playEvent = function(time){
   //滾動到指定語句
   var autoScroll = function(){
        var panel = $("#panel");
var div3 = document.getElementById("div3"); panel.animate({ scrollTop: div3.offsetTop
- panel.height() / 2 }, 200); } if(window.canAutoScroll){ autoScroll(); } }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM