Вход Регистрация
Файл: Documentation/assets/js/script.js
Строк: 200
<?php
/*!
 * Documenter 2.0
 * http://rxa.li/documenter
 *
 * Copyright 2011, Xaver Birsak
 * http://revaxarts.com
 *
 */
 
$(document).ready(function() {
    var 
timeout,
        
sections = new Array(),
        
sectionscount 0,
        
win = $(window),
        
sidebar = $('#documenter_sidebar'),
        
nav = $('#documenter_nav'),
        
logo = $('#documenter_logo'),
        
navanchors nav.find('a'),
        
timeoffset 50,
        
hash location.hash || null;
        
iDeviceNotOS4 = (navigator.userAgent.match(/iphone|ipod|ipad/i) && !navigator.userAgent.match(/OS 5/i)) || false,
        
badIE = $('html').prop('class').match(/ie(6|7|8)/)|| false;
        
    
//handle external links (new window)
    
$('a[href^=http]').bind('click',function(){
        
window.open($(this).attr('href'));
        return 
false;
    });
    
    
//IE 8 and lower doesn't like the smooth pagescroll
    
if(!badIE){
        
window.scroll(0,0);
        
        $(
'a[href^=#]').bind('click touchstart',function(){
            
hash = $(this).attr('href');
            $.
scrollTo.window().queue([]).stop();
            goTo(
hash);
            return 
false;
        });
        
        
//if a hash is set => go to it
        
if(hash){
            
setTimeout(function(){
                goTo(
hash);
            },
500);
        }
    }
    
    
    
//We need the position of each section until the full page with all images is loaded
    
win.bind('load',function(){
        
        var 
sectionselector 'section';
        
        
//Documentation has subcategories        
        
if(nav.find('ol').length){
            
sectionselector 'section, h4';
        }
        
//saving some information
        
$(sectionselector).each(function(i,e){
            var 
_this = $(this);
            var 
= {
                
idthis.id,
                
pos_this.offset().top
            
};
            
sections.push(p);
        });
        
        
        
//iPhone, iPod and iPad don't trigger the scroll event
        
if(iDeviceNotOS4){
            
nav.find('a').bind('click',function(){
                
setTimeout(function(){
                    
win.trigger('scroll');                
                },
duration);
                
            });
            
//scroll to top
            
window.scroll(0,0);
        }

        
//how many sections
        
sectionscount sections.length;
        
        
//bind the handler to the scroll event
        
win.bind('scroll',function(event){
            
clearInterval(timeout);
            
//should occur with a delay
            
timeout setTimeout(function(){
                
//get the position from the very top in all browsers
                
pos window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop;
                
                
//iDeviceNotOS4s don't know the fixed property so we fake it
                
if(iDeviceNotOS4){
                    
sidebar.css({height:document.height});
                    
logo.css({'margin-top':pos});
                }
                
//activate Nav element at the current position
                
activateNav(pos);
            },
timeoffset);
        }).
trigger('scroll');

    });
    
    
//the function is called when the hash changes
    
function hashchange(){
        goTo(
location.hashfalse);
    }
    
    
//scroll to a section and set the hash
    
function goTo(hash,changehash){
        
win.unbind('hashchange'hashchange);
        
hash hash.replace(/!//,'');
        
win.stop().scrollTo(hash,duration,{
            
easing:easing,
            
axis:'y'            
        
});
        if(
changehash !== false){
            var 
location;
            
location.href = (l.protocol+'//'+l.host+l.pathname+'#!/'+hash.substr(1));
        }
        
win.bind('hashchange'hashchange);
    }
    
    
    
//activate current nav element
    
function activateNav(pos){
        var 
offset 100,
        
currentnextparentisSubhasSub;
        
win.unbind('hashchange'hashchange);
        for(var 
i=sectionscount;i>0;i--){
            if(
sections[i-1].pos <= pos+offset){
                
navanchors.removeClass('current');
                
current navanchors.eq(i-1);
                
current.addClass('current');
                
                
parent current.parent().parent();
                
next current.next();
                
                
hasSub next.is('ul');
                
isSub = !parent.is('#documenter_nav');
                
                
nav.find('ol:visible').not(parent).slideUp('fast');
                if(
isSub){
                    
parent.prev().addClass('current');
                    
parent.stop().slideDown('fast');
                }else if(
hasSub){
                    
next.stop().slideDown('fast');
                }
                
win.bind('hashchange'hashchange);
                break;
            };
        }    
    }
    
    
// make code pretty
    
window.prettyPrint && prettyPrint();
    
});
?>
Онлайн: 3
Реклама