Ignore:
Timestamp:
Feb 22, 2014, 7:38:56 AM (10 years ago)
Author:
rvelices
Message:

tscroller manage browser back button

File:
1 edited

Legend:

Unmodified
Added
Removed
  • extensions/rv_tscroller/rv_tscroller.js

    r18904 r27448  
    66if (RVTS.start>0) {
    77        var $f = $('.navigationBar A[rel=first]');
    8         var f = '<a href="'+$f.attr("href")+'">'+$f.html()+'</a> | ';
    9         $('#thumbnails').before( '<div id=rvtsUp style="text-align:center;font-size:120%;margin:10px">'+f+'<a href="javascript:RVTS.loadUp()">'+RVTS.prevMsg+"</a></div>" );
     8        $('#thumbnails').before( '<div id=rvtsUp style="text-align:center;font-size:120%;margin:10px"><a href="'+$f.attr("href")+'">'+$f.html()+'</a> | <a href="javascript:RVTS.loadUp()">'+RVTS.prevMsg+"</a></div>" );
    109}
    1110
     
    6261                                RVTS.$thumbs.after(
    6362                                        '<div style="text-align:center;font-size:180%;margin:0 0 20px"><a href="'
    64                                         +RVTS.moreUrlModel.replace('%start%', RVTS.next)+'">'
     63                                        +RVTS.urlModel.replace('%start%', RVTS.next)+'">'
    6564                                        +RVTS.moreMsg.replace('%d', RVTS.total-RVTS.next)
    6665                                        +'</a></div>');
     
    9089        RVTS.$thumbs.after('<div id="ajaxLoader" style="display:none;position:fixed;bottom:32px;right:1%;z-index:999"><img src="'+ RVTS.ajaxLoaderImage + '" width="128" height="15" alt="~"></div>');
    9190
    92         $w.scrollTop(0);
     91        if ("#top" == window.location.hash)
     92                window.scrollTo(0,0);
     93
    9394        if ( RVTS.$thumbs.outerHeight() < $w.height() )
    9495                RVTS.adjust = 1;
    9596        else if ( RVTS.$thumbs.height() > 2*$w.height() )
    9697                RVTS.adjust = -1;
    97         $w.bind('scroll resize', RVTS.checkAutoScroll);
     98        $w.on('scroll resize', RVTS.checkAutoScroll);
    9899        if (RVTS.checkAutoScroll())
    99100                window.setTimeout(RVTS.checkAutoScroll,1500);
     
    102103
    103104$(document).ready( function() {
    104         window.setTimeout(RVTS.engage,250);
     105        if ("#top" == window.location.hash)
     106                window.scrollTo(0,0);
     107        window.setTimeout(RVTS.engage,150);
    105108});
    106109
    107 
    108 
     110if (window.history.replaceState) {
     111        var iniStart = RVTS.start;
     112        $(window).one("RVTS_loaded", function() {
     113                $(window).on("unload", function() {
     114                                var threshold = Math.max(0, $(window).scrollTop() - 60),
     115                                        elts = RVTS.$thumbs.children("li");
     116                                for (var i=0; i<elts.length; i++) {
     117                                        var offset = $(elts[i]).offset();
     118                                        if (offset.top >= threshold) {
     119                                                var start = RVTS.start+i,
     120                                                        delta = start-iniStart;
     121                                                if (delta<0 || delta>=RVTS.perPage) {
     122                                                        var url = start ? RVTS.urlModel.replace("%start%", start) : RVTS.urlModel.replace("/start-%start%", "");
     123                                                        window.history.replaceState(null, "", url+ "#top");
     124                                                }
     125                                                break;
     126                                        }
     127                                }
     128                });
     129        });
     130}
    109131})(jQuery);
Note: See TracChangeset for help on using the changeset viewer.