Lettore 0.3.4: tap avanti con scrollBy relativo (no window.scrollY)
scrollToCharJs calcolava scrollTo(0, rect.top+scrollY-8) e window.scrollY e' stale sul WebView Sailfish: il tap avanti oscillava di pochi pixel. Ora window.scrollBy(0, rect.top-8): nessuna lettura di scrollY, il carattere target finisce esattamente in cima alla viewport.
This commit is contained in:
@@ -302,7 +302,10 @@ Page {
|
||||
+ "return c;})()"
|
||||
}
|
||||
|
||||
// JS che porta in cima alla viewport il carattere 'off' del capitolo
|
||||
// JS che porta in cima alla viewport il carattere 'off' del capitolo.
|
||||
// Usa scrollBy RELATIVO (rect.top - 8): non legge mai window.scrollY,
|
||||
// che sul WebView Sailfish non riflette lo scroll reale (con scrollTo +
|
||||
// scrollY il tap oscillava di pochi pixel invece di avanzare).
|
||||
function scrollToCharJs(off) {
|
||||
return "(function(){"
|
||||
+ "var b=document.body,o=0;"
|
||||
@@ -314,7 +317,7 @@ Page {
|
||||
+ "if(o+n.data.length>=" + off + "){"
|
||||
+ "var r=document.createRange();r.setStart(n," + off + "-o);r.collapse(true);"
|
||||
+ "var rect=r.getBoundingClientRect();"
|
||||
+ "if(rect.top>0)window.scrollTo(0,rect.top+window.scrollY-8);"
|
||||
+ "window.scrollBy(0,rect.top-8);"
|
||||
+ "return true;}"
|
||||
+ "o+=n.data.length;}"
|
||||
+ "return false;})()"
|
||||
|
||||
Reference in New Issue
Block a user