Team:NYMU-Taipei/menu.js

From 2014.igem.org

(Difference between revisions)
m
m
Line 2: Line 2:
   $('#menu > ul > li')
   $('#menu > ul > li')
         .on('mouseover', function(){
         .on('mouseover', function(){
-
            if($(this).hasClass('now')) return ;
 
             clearTimeout($.data(this,'timer'));
             clearTimeout($.data(this,'timer'));
             $(this).find('ul').stop(true,true).slideDown(200);   
             $(this).find('ul').stop(true,true).slideDown(200);   
 +
            if($(this).hasClass('now')) return ;
             $(this).find('a > span').stop(true,true).animate({opacity: '1'}, 300);
             $(this).find('a > span').stop(true,true).animate({opacity: '1'}, 300);
        
        
         })
         })
         .on('mouseout', function(){
         .on('mouseout', function(){
-
            if($(this).hasClass('now')) return ;
 
             $.data(this,'timer', setTimeout($.proxy(function() {
             $.data(this,'timer', setTimeout($.proxy(function() {
             $(this).find('ul').stop(true,true).slideUp(200);
             $(this).find('ul').stop(true,true).slideUp(200);
             }, this), 100));   
             }, this), 100));   
 +
            if($(this).hasClass('now')) return ;
             $(this).find('a > span').stop(true,true).animate({opacity: '0'}, 700);
             $(this).find('a > span').stop(true,true).animate({opacity: '0'}, 700);
        
        

Revision as of 15:16, 7 June 2014

$( document ).ready(function() {

 $('#menu > ul > li')
       .on('mouseover', function(){
           clearTimeout($.data(this,'timer'));
           $(this).find('ul').stop(true,true).slideDown(200);  
           if($(this).hasClass('now')) return ;
           $(this).find('a > span').stop(true,true).animate({opacity: '1'}, 300);
      
       })
       .on('mouseout', function(){
           $.data(this,'timer', setTimeout($.proxy(function() {
           $(this).find('ul').stop(true,true).slideUp(200);
           }, this), 100));  
           if($(this).hasClass('now')) return ;
           $(this).find('a > span').stop(true,true).animate({opacity: '0'}, 700);
     
       })
       .click( function(){
           $('#menu > ul > li').removeClass('now');
           $(this).addClass('now');
           $(this).find('a > span').stop(true,true).animate({opacity: '1'}, 300);
           $('#menu > ul > li').not(this).find('a > span').stop(true,true).animate({opacity: '0'}, 300);
       });  
 $(window).scroll(function (event){
        var y = $(this).scrollTop();
        if(y>240){
            $('#menu').css({
                marginTop:0,
            });
        }
        else{
            $('#menu').css({
               marginTop:240-y,  
            });
        }
 });
 $(window).bind('popstate', function() {    //override back button to get the ajax content without page reload
        var toUrl=location.pathname;
        $.get( toUrl , function(data) {
            $('#main-content').html($(data).find('#main-content').html());
        });
 });
 $('#menu a').click(function(e){      //to get the ajax content and display in div 'main-content'
        e.preventDefault();
        var toUrl=$(this).attr('href');
        var location='https://2014.igem.org'+toUrl;
 
        $.get( toUrl , function(data) {
            $('#main-content').html($(data).find('#main-content').html());
        });
        
        if(toUrl!=window.location.href){      //to change the browser URL to the given link location
             window.history.pushState({path:toUrl},,toUrl);
        }
 });

});