mirror of
				https://github.com/kovidgoyal/calibre.git
				synced 2025-10-31 02:27:01 -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()}
 | |
|         }
 | |
|     );
 | |
| }
 | |
| 
 |