mirror of
				https://github.com/kovidgoyal/calibre.git
				synced 2025-11-03 19:17:02 -05: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()}
 | 
						|
        }
 | 
						|
    );
 | 
						|
}
 | 
						|
 |