Simplify transitional files a bit.
[wolnelektury.git] / src / wolnelektury / static / 2022 / scripts / main.js
1 // JS Menu
2 (function () {
3   let button = $('.js-menu');
4   let menu = $('.l-navigation__menu');
5   let menuLinks = menu.find('a');
6
7   button.on('click', function() {
8     if(!$(this).hasClass('is-active')) {
9       $(this).addClass('is-active');
10       menu.addClass('is-open');
11       button.find('.bar').addClass('animate');
12       menuLinks.attr('tabindex', 0);
13     } else {
14       $(this).removeClass('is-active');
15       menu.removeClass('is-open');
16       button.find('.bar').removeClass('animate');
17       menuLinks.attr('tabindex', -1);
18     }
19   });
20
21   $(document).keyup(function(e) {
22     if (e.keyCode === 27) {
23       button.removeClass('is-active');
24       menu.removeClass('is-open');
25       button.find('.bar').removeClass('animate');
26       menuLinks.attr('tabindex', -1);
27     }
28   });
29 })();
30
31 // Ebook/Audiobook Btns
32 (function() {
33   let button = $('.c-media__btn button');
34   let closeButton = $('.c-media__popup__close');
35
36   button.on('click', function () {
37     let target = $(this).attr('id');
38     $('[data-popup=' + target).addClass('is-open');
39   });
40
41   closeButton.on('click', function() {
42     $(this).closest('.c-media__popup').removeClass('is-open');
43   });
44
45   $(document).keyup(function(e) {
46     if (e.keyCode === 27) {
47       $('.c-media__popup').removeClass('is-open');
48     }
49   });
50 })();
51
52
53
54 // Text overlay toggler
55 (function () {
56   let overlays = $('.l-article__overlay');
57   let button = $('.l-article__read-more');
58
59   overlays.each(function () {
60     let maxHeight = $(this).attr('data-max-height');
61     if($(this).outerHeight() > maxHeight) {
62       $(this).css({'maxHeight': maxHeight+'px'}).addClass('is-active');
63     } else {
64       $(this).next('.l-article__read-more').hide();
65     }
66   });
67
68   button.on('click', function() {
69     let dataLabel = $(this).attr('data-label');
70     let dataAction = $(this).attr('data-action');
71     $(this).parent().find('.l-article__overlay').toggleClass('is-clicked');
72     if($(this).text() === dataLabel) {
73       $(this).text(dataAction);
74     } else {
75       $(this).text(dataLabel);
76     }
77   });
78 })();
79
80
81
82 // Quotes slider
83 (function () {
84   let slider = $('.l-author__quotes__slider');
85
86   slider.slick({
87     slidesToScroll: 1,
88     slidesToShow: 1,
89     infinite: true,
90     dots: true,
91     arrows: false,
92     autoplay: true,
93     autoplaySpeed: 2500
94   });
95 })();
96
97
98 //Zmieniamy siÄ™ popup
99 (function() {
100     let $change = $('.l-change-pop');
101     function change() {
102         if(localStorage.getItem('change') === null) {
103             $change.addClass('show');
104         }
105
106         $change.on('click', '.l-change-pop__close', function () {
107             $change.slideUp();
108             localStorage.setItem('change', 'showed');
109
110             $menubtn = $('.c-hamburger').parent();
111             $menubtn.removeClass('is-active');
112             $('.animate', $menubtn).removeClass('animate');
113         });
114
115         $(".c-hamburger").click(function() {
116             $button = $(this).parent();
117             if ($button.hasClass('is-active')) {
118                 $change.slideUp();
119                 localStorage.setItem('change', 'showed');
120             } else {
121                 localStorage.removeItem('change');
122                 $change.slideDown({
123                     start: function() {
124                         $(this).css({display: "flex"});
125                     }
126                 });
127             }
128         });
129     }
130     
131     if($change.length) { change(); }
132
133     function quit_experiment() {
134         document.cookie = 'EXPERIMENT_layout=off; path=/; max-age=31536000';
135         window.location.reload(true);
136     }
137     $(".quit-experiment").click(quit_experiment);
138
139     
140 })();