123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114 |
- /**
- * @Author: Bachir Soussi Chiadmi <bach>
- * @Date: 12-09-2017
- * @Email: bachir@figureslibres.io
- * @Last modified by: bach
- * @Last modified time: 12-09-2017
- * @License: GPL-V3
- */
- // var $ = require('jquery');
- // https://plainjs.com
- // jQuery(document).ready(function($) {
- // console.log('Hello Jquery');
- // var $window;
- var init = function(){
- console.log('UI init');
- // $window = $(window);
- // _____ __ _ __ __ _ __ __
- // / ___// /_(_)____/ /____ __ / /_(_) /_/ /__
- // \__ \/ __/ / ___/ //_/ / / / / __/ / __/ / _ \
- // ___/ / /_/ / /__/ ,< / /_/ / / /_/ / /_/ / __/
- // /____/\__/_/\___/_/|_|\__, / \__/_/\__/_/\___/
- // /____/
- // https://codepen.io/chrissp26/pen/gBrdo?editors=0010
- // var header_height = $('header').height();
- var header_height = document.getElementsByTagName('header')[0].clientHeight;
- console.log(header_height);
- // var $sticky_clone_wrapper = $('<div>').addClass('sticky-clone-wrapper').appendTo('body');
- var sticky_clone_wrapper = document.createElement('div');
- sticky_clone_wrapper.classList.add('sticky-clone-wrapper');
- document.body.append(sticky_clone_wrapper);
- //
- // var $stickies = $('h1.part-title').addClass('sticky').each(function(i){
- // var $sticky = $(this);
- // $sticky
- // .data('originalPosition', $sticky.offset().top)
- // .data('originalHeight', $sticky.outerHeight());
- // });
- var stickies = new Array();
- Array.from(document.querySelectorAll('h1.part-title')).forEach(function(e){
- // console.log('sticky', e);
- e._part = e.getAttribute('part');
- stickies.push(e)
- });
- console.log('stickies', stickies);
- //
- // var OnScroll = function(event){
- // var $last_sticky;
- // $stickies.each(function(i){
- // var $sticky = $(this);
- // var pos = $sticky.data('originalPosition');
- // if(pos < $window.scrollTop()+header_height){
- //
- // }
- // // if(i == 1){
- // // console.log(pos +" | "+$window.scrollTop());
- // // }
- // // if(pos < $window.scrollTop()+header_height){
- // // if(!$sticky.is('.sticked')){
- // // $sticky.addClass('sticked').clone().appendTo($sticky_clone_wrapper.empty());
- // // }
- // // }else{
- // // if($sticky.is('.sticked')){
- // // $sticky.removeClass('sticked');
- // // $('.part-title[part="'+$sticky.attr('part')+'"]', $sticky_clone_wrapper).remove();
- // // }
- // // }
- // });
- // };
- var last_sticky = "", sticked_sticky, clone;
- var OnScroll = function(event){
- // console.log('on scrool', event);
- sticked_sticky = false;
- for (var i = stickies.length-1; i >= 0; i--) {
- if(stickies[i].getBoundingClientRect().top < header_height){
- sticked_sticky = stickies[i];
- break;
- }
- }
- if (sticked_sticky) {
- // console.log('sticked_sticky', sticked_sticky._part);
- if(last_sticky !== sticked_sticky._part){
- // console.log('new sticky', last_sticky);
- // fill sticky_clone_wrapper
- clone = sticked_sticky.cloneNode(true);
- sticky_clone_wrapper.innerHTML = '';
- sticky_clone_wrapper.appendChild(clone);
- last_sticky = sticked_sticky._part;
- }
- }else{
- // empty sticky_clone_wrapper
- sticky_clone_wrapper.innerHTML = '';
- }
- };
- //
- // $window.on('scroll', OnScroll);
- // console.log('window', window);
- window.onscroll = OnScroll;
- }
- // });
- module.exports = {
- init : init
- }
|