我已經在JavaScript中使用下一個公式創建的自定義滾動:當我使用奇數值時所觀察到滾動條數學公式錯誤
// Data used to render the scrollbar
var height; // Height of the viewport and of the scrollbarArea
var scrollHeight; // Height of the content
var scrollTop; // Scrolled position of the content from the top
// Used formulas
scrollbar.height = Math.round(height/scrollHeight * height);
scrollbar.top = Math.round(scrollTop/scrollHeight * height);
一切順利直到(scrollbar.height + scrollbar.top>高度)高度。我的意思是,由於Math.round()的兩個操作,通過添加1px甚至2px,滾動條有時會超出限制。我嘗試了不同的解決方法,但找不到通用解決方案,您可以推薦我做什麼?
爲什麼不添加一個處理這些異常的條件'if'語句? –
我不確定我是否理解你的問題,但是你可以在兩者中的一個上使用Math.floor(),而在另一個上使用Math.ceil()。那樣的話,一個總是往下走,一個總是往上移(而不是兩個取整)? –
我嘗試過使用Math.ceil()和Math.floor(),但沒有幫助,嘗試過,如果語句,但他們有點不確定內容的高度增長的情況 – micnic