mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-06-21 14:30:57 -04:00
50 lines
1.1 KiB
JavaScript
50 lines
1.1 KiB
JavaScript
/*
|
|
* bookmarks management
|
|
* Copyright 2008 Kovid Goyal
|
|
* License: GNU GPL v3
|
|
*/
|
|
|
|
function selector_in_parent(elem) {
|
|
var num = elem.prevAll().length;
|
|
var sel = " > *:eq("+num+") ";
|
|
return sel;
|
|
}
|
|
|
|
function selector(elem) {
|
|
var obj = elem;
|
|
var sel = "";
|
|
while (obj[0] != document) {
|
|
sel = selector_in_parent(obj) + sel;
|
|
obj = obj.parent();
|
|
}
|
|
if (sel.length > 2 && sel.charAt(1) == ">") sel = sel.substring(2);
|
|
return sel;
|
|
}
|
|
|
|
function calculate_bookmark(y, node) {
|
|
var elem = $(node);
|
|
var sel = selector(elem);
|
|
var ratio = (y - elem.offset().top)/elem.height();
|
|
if (ratio > 1) { ratio = 1; }
|
|
if (ratio < 0) { ratio = 0; }
|
|
sel = sel + "|" + ratio;
|
|
return sel;
|
|
}
|
|
|
|
function animated_scrolling_done() {
|
|
window.py_bridge.animated_scroll_done();
|
|
}
|
|
|
|
function scroll_to_bookmark(bookmark) {
|
|
bm = bookmark.split("|");
|
|
var ratio = 0.7 * parseFloat(bm[1]);
|
|
$.scrollTo($(bm[0]), 1000,
|
|
{
|
|
over:ratio,
|
|
axis: 'y', // Do not scroll in the x direction
|
|
onAfter:function(){window.py_bridge.animated_scroll_done()}
|
|
}
|
|
);
|
|
}
|
|
|