X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/362ea2e7f8ac4254398791139cc060090199f400..38f324dec64ba8adffcc795095023557b8a7a39c:/wolnelektury/static/js/book.js?ds=sidebyside diff --git a/wolnelektury/static/js/book.js b/wolnelektury/static/js/book.js index 41e3be28c..335fe39c0 100644 --- a/wolnelektury/static/js/book.js +++ b/wolnelektury/static/js/book.js @@ -1,31 +1,38 @@ -$(function() { +$(function() { function scrollToAnchor(anchor) { if (anchor) { - var element = $('a[name="' + anchor.slice(1) + '"]'); + var anchor_name = anchor.slice(1); + var element = $('a[name="' + anchor_name + '"]'); if (element.length > 0) { $.scrollTo(element, 500, {offset: {top: -50, left: 0}}); - $(element).highlightFade('yellow'); + foot_elem = $('#footnotes a[name="' + anchor_name + '"]'); + if (foot_elem.length > 0) { + $(element).parent().highlightFade('yellow'); + } window.location.hash = anchor; } } } - + $.highlightFade.defaults.speed = 3000; $('#toc').hide(); if ($('#toc li').length == 0) { $('#menu li a[href="#toc"]').remove(); } - + if ($('#nota_red').length == 0) { + $('#menu li a[href="#nota_red"]').remove(); + } + // On page load, scroll to anchor scrollToAnchor(window.location.hash) - + $('#toc, #themes, #book-text').delegate('click', 'a', function(event) { event.preventDefault(); $('#menu li a.selected').click(); scrollToAnchor($(this).attr('href')); }); - - $('#menu li a').toggle(function() { + + $('#menu li a.menu').toggle(function() { $('#menu li a.selected').click(); $(this).addClass('selected'); $($(this).attr('href')).slideDown('fast'); @@ -33,4 +40,22 @@ $(function() { $(this).removeClass('selected'); $($(this).attr('href')).slideUp('fast'); }); + + + if (window.getSelection) { + $('.theme-begin').click(function() { + var selection = window.getSelection(); + selection.removeAllRanges(); + var range = document.createRange(); + + var e = $(".theme-end[fid='" + $(this).attr('fid') + "']")[0]; + + if (e) { + range.setStartAfter(this); + range.setEndBefore(e); + selection.addRange(range); + } + }); + } + });