Difference between revisions of "Template:SYSU-Software/statics/js/loader.js"

Line 46: Line 46:
 
var onNextPageShow = false;
 
var onNextPageShow = false;
 
var isAllowNextPage = false;
 
var isAllowNextPage = false;
 +
 +
function initTopBar(page) {
 +
    // main menu
 +
    $('#' + page + '>.page-container')
 +
        .visibility({
 +
            offset: -5,
 +
            observeChanges: true,
 +
            once: false,
 +
            context: $('#' + page),
 +
            continuous: true,
 +
            onTopPassed: function () {
 +
                requestAnimationFrame(function () {
 +
                    $('.following.bar')
 +
                        .addClass('light fixed')
 +
                        .find('.menu')
 +
                        .removeClass('inverted')
 +
                        ;
 +
                    $('.following .additional.item')
 +
                        .transition('scale in', 750)
 +
                        ;
 +
                });
 +
            },
 +
            onTopPassedReverse: function () {
 +
                requestAnimationFrame(function () {
 +
                    $('.following.bar')
 +
                        .removeClass('light fixed')
 +
                        .find('.menu')
 +
                        .addClass('inverted')
 +
                        .find('.additional.item')
 +
                        .transition('hide')
 +
                        ;
 +
                });
 +
            },
 +
            onBottomVisible: function () {
 +
                if (onNextPageShow) return;
 +
                onNextPageShow = true;
 +
                setTimeout(() => {
 +
                    isAllowNextPage = true;
 +
                    $(".next-page").animate({
 +
                        'opacity': '0.8'
 +
                    }, 500);
 +
                }, 500);
 +
            },
 +
            onBottomVisibleReverse: function () {
 +
                $(".next-page").animate({
 +
                    'opacity': '0'
 +
                }, 200);
 +
                onNextPageShow = false;
 +
                isAllowNextPage = false;
 +
            }
 +
        });
 +
}
  
 
function loadPages() {
 
function loadPages() {
 
     for (let page in pages) {
 
     for (let page in pages) {
pageList.push(page);
+
        pageList.push(page);
 
         if (pages[page].url === "") continue;
 
         if (pages[page].url === "") continue;
 
         $.get(pages[page].url, function (data) {
 
         $.get(pages[page].url, function (data) {
 
             $('#' + page).html(data);
 
             $('#' + page).html(data);
 
             nowLoadingID += 1;
 
             nowLoadingID += 1;
             // main menu
+
             initTopBar(page);
console.log($('#' + page + '>.page-container'));
+
            $('#' + page + '>.page-container')
+
                .visibility({
+
                    offset: -5,
+
                    observeChanges: true,
+
                    once: false,
+
                    context: $('#' + page),
+
                    continuous: true,
+
                    onTopPassed: function () {
+
                        requestAnimationFrame(function () {
+
                            $('.following.bar')
+
                                .addClass('light fixed')
+
                                .find('.menu')
+
                                .removeClass('inverted')
+
                                ;
+
                            $('.following .additional.item')
+
                                .transition('scale in', 750)
+
                                ;
+
                        });
+
                    },
+
                    onTopPassedReverse: function () {
+
                        requestAnimationFrame(function () {
+
                            $('.following.bar')
+
                                .removeClass('light fixed')
+
                                .find('.menu')
+
                                .addClass('inverted')
+
                                .find('.additional.item')
+
                                .transition('hide')
+
                                ;
+
                        });
+
                    },
+
                    onBottomVisible: function () {
+
                        if (onNextPageShow) return;
+
                        onNextPageShow = true;
+
                        setTimeout(() => {
+
                            isAllowNextPage = true;
+
                            $(".next-page").animate({
+
                                'opacity': '0.8'
+
                            }, 500);
+
                        }, 500);
+
                    },
+
                    onBottomVisibleReverse: function () {
+
                        $(".next-page").animate({
+
                            'opacity': '0'
+
                        }, 200);
+
                        onNextPageShow = false;
+
                        isAllowNextPage = false;
+
                    }
+
                });
+
 
         });
 
         });
 
          
 
          

Revision as of 16:35, 10 October 2018

var pages = {

   "Home": { "url": "1" },
   "Description": { "url": "https://2018.igem.org/wiki/index.php?title=Template:SYSU-Software/statics/html/Projects/Description.html&action=raw&ctype=text/html" },
   "Design": { "url": "https://2018.igem.org/wiki/index.php?title=Template:SYSU-Software/statics/html/Projects/Design.html&action=raw&ctype=text/html" },
   "Feature": { "url": "https://2018.igem.org/wiki/index.php?title=Template:SYSU-Software/statics/html/Projects/Feature.html&action=raw&ctype=text/html" },
   "Techniques": { "url": "" },
   "Validation": { "url": "" },
   "Demo": { "url": "" },
   "Modeling-Overview": { "url": "" },
   "Searching-Engine": { "url": "" },
   "Simulation-Circuits": { "url": "" },
   "Evolution-Algorithm": { "url": "" },
   "Reference": { "url": "" },
   "HP-Overview": { "url": "" },
   "HP-Siliver": { "url": "" },
   "HP-Gold": { "url": "" },
   "Human-Practice": { "url": "" },
   "Public-Engagement": { "url": "" },
   "XMU": { "url": "" },
   "SCUT": { "url": "" },
   "WHU": { "url": "" },
   "SYSU": { "url": "" },
   "I-Overview": { "url": "https://2018.igem.org/wiki/index.php?title=Template:SYSU-Software/statics/html/Interlab/Overview.html&action=raw&ctype=text/html" },
   "Experiment": { "url": "https://2018.igem.org/wiki/index.php?title=Template:SYSU-Software/statics/html/Interlab/Results.html&action=raw&ctype=text/html" },
   "Material-Methods": { "url": "https://2018.igem.org/wiki/index.php?title=Template:SYSU-Software/statics/html/Interlab/MaterialMethods.html&action=raw&ctype=text/html" },
   "Results": { "url": "https://2018.igem.org/wiki/index.php?title=Template:SYSU-Software/statics/html/Interlab/Results.html&action=raw&ctype=text/html" },
   "Medal-Overview": { "url": "" },
   "Medal-Bronze": { "url": "" },
   "Medal-Sliver": { "url": "" },
   "Medal-Gold": { "url": "" },
   "T-Overview": { "url": "" },
   "Members": { "url": "" },
   "Advisors": { "url": "" },
   "Instructors": { "url": "" },
   "Notebook": { "url": "" },
   "Notebook": { "url": "" },
   "A-Overview": { "url": "" },
   "Group": { "url": "" },
   "Attribution": { "url": "" },
   "Acknowlegement": { "url": "" }

}

var pageList = [];

var nowLoadingID = 0; var onNextPageShow = false; var isAllowNextPage = false;

function initTopBar(page) {

   // main menu
   $('#' + page + '>.page-container')
       .visibility({
           offset: -5,
           observeChanges: true,
           once: false,
           context: $('#' + page),
           continuous: true,
           onTopPassed: function () {
               requestAnimationFrame(function () {
                   $('.following.bar')
                       .addClass('light fixed')
                       .find('.menu')
                       .removeClass('inverted')
                       ;
                   $('.following .additional.item')
                       .transition('scale in', 750)
                       ;
               });
           },
           onTopPassedReverse: function () {
               requestAnimationFrame(function () {
                   $('.following.bar')
                       .removeClass('light fixed')
                       .find('.menu')
                       .addClass('inverted')
                       .find('.additional.item')
                       .transition('hide')
                       ;
               });
           },
           onBottomVisible: function () {
               if (onNextPageShow) return;
               onNextPageShow = true;
               setTimeout(() => {
                   isAllowNextPage = true;
                   $(".next-page").animate({
                       'opacity': '0.8'
                   }, 500);
               }, 500);
           },
           onBottomVisibleReverse: function () {
               $(".next-page").animate({
                   'opacity': '0'
               }, 200);
               onNextPageShow = false;
               isAllowNextPage = false;
           }
       });

}

function loadPages() {

   for (let page in pages) {
       pageList.push(page);
       if (pages[page].url === "") continue;
       $.get(pages[page].url, function (data) {
           $('#' + page).html(data);
           nowLoadingID += 1;
           initTopBar(page);
       });
       
   }

}

loadPages();

$('.ui.sticky')

   .sticky()
   ;