首頁 > web前端 > css教學 > 主體

如何在 jQuery 中實現平滑且按比例的同步滾動:Firefox 延遲問題的解決方案?

Patricia Arquette
發布: 2024-10-25 08:26:02
原創
607 人瀏覽過

How to Achieve Smooth and Proportional Synchronized Scrolling in jQuery: A Solution to the Firefox Lag Issue?

jQuery 中的同步滾動困境:實現平滑且成比例的滾動

處理不同大小的元素時,實現同步滾動可能是一個挑戰。為了解決這個問題,您需要確定滾動內容的百分比並計算其他元素相應的scrollTop值。

在您的情況下,您可以使用以下公式:scrollTop / (scrollHeight - offsetHeight)。這會產生一個介於 0 和 1 之間的值,表示已滾動的元素的百分比。

此外,您可能會遇到 Firefox 中的滾動變得緩慢的問題。這是因為您目前的程式碼無意中創建了滾動事件的不間斷循環。使用 off() 暫時解綁監聽器,調整scrollTop,然後重新綁定就可以解決這個問題。

以下是解決這兩個問題的最佳化程式碼片段:

var $divs = $('#div1, #div2');

var sync = function(e){
    var $other = $divs.not(this).off('scroll'), other = $other.get(0);
    var percentage = this.scrollTop / (this.scrollHeight - this.offsetHeight);
    other.scrollTop = percentage * (other.scrollHeight - other.offsetHeight);
    
    // Firefox workaround: Rebinding without delay is insufficient.
    setTimeout( function(){ $other.on('scroll', sync ); },10);
}

$divs.on( 'scroll', sync);
登入後複製

這段程式碼確保按比例滾動,同時防止Firefox 中滾動事件的無限循環。要查看工作演示,請訪問此jsfiddle:http://jsfiddle.net/b75KZ/5/

以上是如何在 jQuery 中實現平滑且按比例的同步滾動:Firefox 延遲問題的解決方案?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!