我一直在嘗試在JavaScript中創建自己的自定義滾動條實現。它必須模仿MS Office 2007的外觀和行爲我在那裏檢查了許多解決方案,但沒有任何東西滿足我的需求。我的主要問題是:如何計算滾動條高度和它自己拖動像素時移動目標頁面的行數之間的平衡?換句話說,滾動條精度和可用空間之間的平衡可以上下拖動。有沒有現成的算法來重用?我搜索了網絡,但什麼也沒找到,對於什麼是一個常見的編碼問題,這很奇怪?滾動條算法
謝謝!
我一直在嘗試在JavaScript中創建自己的自定義滾動條實現。它必須模仿MS Office 2007的外觀和行爲我在那裏檢查了許多解決方案,但沒有任何東西滿足我的需求。我的主要問題是:如何計算滾動條高度和它自己拖動像素時移動目標頁面的行數之間的平衡?換句話說,滾動條精度和可用空間之間的平衡可以上下拖動。有沒有現成的算法來重用?我搜索了網絡,但什麼也沒找到,對於什麼是一個常見的編碼問題,這很奇怪?滾動條算法
謝謝!
這是如何計算的滾動條
scrollbar.style.top = element.scrollTop/(element.scrollHeight/element.style.height)
的頂部位置,你可以使用這個onscroll
您的滾動元件。反之亦然,當你拖動你的滾動條時,這在另一個方向工作。
對於這個quick'n'dirty答案感到遺憾,如果您願意,以後會提供更多信息。
謝謝,但我沒有問如何計算滾動條的頂部位置。如果您有任何想法,請提供更多詳細信息。 – 2010-10-11 15:19:37
您需要使用先前的算法來計算滾動條位置如果您使用鼠標滾輪進行滾動。因此,如果「scrollbar.style.top = element.scrollTop /(element.totalHeight/element.height) 」,則計算element.scrollTop的公式應爲「element.scrollTop = element.totalHeight/element.height * scrollbar.style .top「 – koko 2010-10-11 20:56:56
請解釋一下element.scrollTop元素.totalHeight和element.height的意思。我一點都不明白你的意思。 – 2010-10-11 22:37:47
也許你已經簽出了,但是如果你不這樣做:你看看jScrollPane了嗎?它可能會改變樣式(「主題」0和實現你想要的。[http:// www .kelvinluck.com/assets/jquery/jScrollPane/jScrollPane.html] – Nivas 2010-10-11 13:55:22
@Nivas - 您的鏈接已過期http://jscrollpane.kelvinluck.com/ – 2010-10-11 14:08:42
我發現了新的JScrollPane(http://jscrollpane.kelvinluck我們測試的所有瀏覽器都有不穩定的行爲,試着點擊演示頁面上方或下方的滾動區域,有時候酒吧會移動,有時候會移動,有時候不會。 。 – 2010-10-11 14:08:49