PageSourceSearch

https://www.migliorigiochi.eu/wp-content/themes/migiBoot/assets/js/theme.js

js migliorigiochi.eu collected 2026-10-05 05:51:54 UTC 15,249 bytes, 479 lines download raw bytes

1(function () {
2  "use strict";
3
4  /**
5   * ------------------------------------------------------------------------
6   * Functions
7   * ------------------------------------------------------------------------
8   */
9  // Back to top button
10  const myBacktotop = function () {
11    // browser window scroll 
12    var offset = 300,
13      offset_opacity = 1200,
14      back_to_top = document.querySelector(".back-top"),
15      scrollpos = window.scrollY;
16
17    var add_class_back_scroll = function add_class_back_scroll() {
18      return back_to_top.classList.add("backtop-is-visible");
19    };
20
21    var add_class_offset_scroll = function add_class_offset_scroll() {
22      return back_to_top.classList.add("backtop-fade-out");
23    };
24
25    var remove_class_back_scroll = function remove_class_back_scroll() {
26      return back_to_top.classList.remove("backtop-is-visible","backtop-fade-out");
27    };
28
29    // back to top by es6-scroll-to
30    var defaults = {
31      duration: 400,
32      easing: function easing(t, b, c, d) {
33        return -c * (t /= d) * (t - 2) + b;
34      },
35      to: 0
36    };
37    var animatedScrollTo = function animatedScrollTo(args) {
38      if (isInteger(args)) {
39        args = {
40          to: args
41        };
42      }
43      var options = extend(defaults, args);
44      options.startingYOffset = window.pageYOffset;
45      options.distanceYOffset = parseInt(options.to, 10) - options.startingYOffset;
46      window.requestAnimationFrame(function (timestamp) {
47        return animateScroll(options, timestamp);
48      });
49    };
50    var animateScroll = function animateScroll(options, now) {
51      if (!options.startTime) {
52        options.startTime = now;
53      }
54      var currentTime = now - options.startTime;
55      var newYOffset = Math.round(options.easing(currentTime, options.startingYOffset, options.distanceYOffset, options.duration));
56      if (currentTime < options.duration) {
57        window.requestAnimationFrame(function (timestamp) {
58          return animateScroll(options, timestamp);
59        });
60      } else {
61        newYOffset = options.to;
62      }
63      setScrollTopPosition(newYOffset);
64    };
65    var setScrollTopPosition = function setScrollTopPosition(newYOffset) {
66      document.documentElement.scrollTop = newYOffset;
67      document.body.scrollTop = newYOffset;
68    };
69    var isInteger = function isInteger(value) {
70      if (Number.isInteger) {
71        return Number.isInteger(value);
72      } else {
73        return typeof value === 'number' && isFinite(value) && Math.floor(value) === value;
74      }
75    };
76    var extend = function extend(defaults, options) {
77      var extendedOptions = {};
78      for (var key in defaults) {
79        extendedOptions[key] = options[key] || defaults[key];
80      }
81      return extendedOptions;
82    };
83    var easeInQuint = function easeInQuint(t, b, c, d) {
84      return c * (t /= d) * t * t * t * t + b;
85    };
86
87    const scroll_a = document.querySelectorAll('.back-top');
88    if ( scroll_a !=null) {
89      for (var i = 0; i < scroll_a.length; i++) {
90        scroll_a[i].addEventListener("click", function(){
91          animatedScrollTo({
92            easing: easeInQuint,
93            duration: 800
94          });
95        });
96      }
97    }
98
99    window.addEventListener('scroll', function () {
100      scrollpos = window.scrollY;
101      if (scrollpos > offset) {
102        add_class_back_scroll();
103      } else {
104        remove_class_back_scroll();
105      }
106      if (scrollpos > offset_opacity) {
107        add_class_offset_scroll();
108      }
109    });
110  }
111
112  // Sub Dropdown
113  const sub_dropdown_js = function () {
114    // submenu
115    const onekit_submenu = function onekit_submenu() {
116      var onekit_toggle = document.querySelectorAll(".dropdown-menu a.dropdown-toggle");
117      var _loop = function _loop(i) {
118        onekit_toggle[i].addEventListener("click", function (event) {
119          event.stopPropagation();
120          event.preventDefault();
121
122          onekit_toggle[i].nextElementSibling.classList.toggle("show");
123          onekit_toggle[i].parentNode.classList.toggle("show");
124         });
125        window.addEventListener("mouseup", function (event) {
126          if (event.target != onekit_toggle[i].nextElementSibling && event.target.parentNode != onekit_toggle[i].nextElementSibling && event.target.classList.contains("dropdown-toggle") != true) {
127            onekit_toggle[i].nextElementSibling.classList.remove("show");
128            onekit_toggle[i].parentNode.classList.remove("show");
129          }
130        });
131      };
132
133      for (var i = 0; i < onekit_toggle.length; i++) {
134        _loop(i);
135      }
136    };
137
138    // close if dropdown click
139    const close_all_submenu = function close_all_submenu() {
140      var dropdown_x = document.querySelectorAll(".dropdown");
141      var dropdown_submenu_x = document.querySelectorAll(".dropdown-menu li .dropdown-menu");
142
143      var _loop2 = function _loop2(i) {
144        dropdown_x[i].addEventListener('hide.bs.dropdown', function () {
145          for (var j = 0; j < dropdown_submenu_x.length; j++) {
146            if (i != j) {
147              dropdown_submenu_x[j].classList.remove("show");
148              dropdown_submenu_x[j].parentNode.classList.remove("show");
149            }
150          }
151        });
152      };
153
154      for (var i = 0; i < dropdown_x.length; i++) {
155        _loop2(i);
156      }
157    };
158
159    // close submenu
160    const close_submenu = function close_submenu() {
161      var dropdown_a = document.querySelectorAll(".dropdown > .dropdown-menu > li > .dropdown-toggle");
162      var dropdownMenu_a = document.querySelectorAll(".dropdown > .dropdown-menu > li > .dropdown-menu");
163      var dropdownSubMenu_a = document.querySelectorAll(".dropdown > .dropdown-menu > li > .dropdown-menu > li > .dropdown-menu");
164
165      var _loop2 = function _loop2(i) {
166        dropdown_a[i].addEventListener("click", function () {
167          for (var j = 0; j < dropdownMenu_a.length; j++) {
168            if (i != j) {
169              dropdownMenu_a[j].parentNode.classList.remove("show");
170              dropdownMenu_a[j].classList.remove("show");
171              if (dropdownSubMenu_a[j] === undefined) {} else {
172                dropdownSubMenu_a[j].parentNode.classList.remove("show");
173                dropdownSubMenu_a[j].classList.remove("show");
174              }
175            }
176          }
177        });
178      };
179
180      for (var i = 0; i < dropdown_a.length; i++) {
181        _loop2(i);
182      }
183    }; 
184
185    // close child submenu & dropdown reverse
186    const close_child_submenu = function close_child_submenu() {
187      var dropdown_b = document.querySelectorAll(".dropdown > .dropdown-menu > li > .dropdown-menu > li > .dropdown-toggle");
188      var dropdownMenu_b = document.querySelectorAll(".dropdown > .dropdown-menu > li > .dropdown-menu > li > .dropdown-menu");
189
190      var _loop3 = function _loop3(i) {
191        dropdown_b[i].addEventListener("click", function () {
192          for (var j = 0; j < dropdownMenu_b.length; j++) {
193            if (i != j) {
194              if (dropdownMenu_b[j] === undefined) {} else {
195                dropdownMenu_b[j].parentNode.classList.remove("show");
196                dropdownMenu_b[j].classList.remove("show");
197              }
198            }
199          }
200        });
201
202        // dropdown reverse
203        dropdown_b[i].addEventListener("mouseenter", function () {
204          for (var j = 0; j < dropdownMenu_b.length; j++) {
205            var elm = dropdownMenu_b[j];
206            var rect = elm.getBoundingClientRect();
207            var l = rect.left;
208            var w = elm.offsetWidth;
209            var docW = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;
210            var isEntirelyVisible = l + w;
211
212            if (isEntirelyVisible > docW) {
213              elm.classList.add('dropdown-reverse');
214            }
215          }
216        });
217      };
218
219      for (var i = 0; i < dropdown_b.length; i++) {
220        _loop3(i);
221      }
222    };
223
224    var ef = document.querySelector(".dropdown > .dropdown-menu > li");
225    if ( ef != null) {
226      onekit_submenu();
227      close_all_submenu();
228      close_submenu();
229      close_child_submenu();
230    }
231  }
232
233  // Mobile menu close
234  const myMobile = function () {
235    var x = document.querySelectorAll(".back-menu");
236    if ( x != null) {
237      for (var v = 0; v < x.length; v++) {
238        x[v].addEventListener("click", function(){
239          var y = document.getElementsByClassName("push");
240          for (var i = 0; i < y.length; i++) {
241            y[i].classList.remove('push-open');
242          }
243
244          var b = document.querySelectorAll(".mobile-side");
245          for (var i = 0; i < b.length; i++) {
246            b[i].classList.remove('sidenav-body-open');
247          }
248        });
249      }
250    }
251  }
252
253  // Mobile menu open
254  const myOpen = function () {
255    var x = document.querySelectorAll(".sidebar-menu-trigger");
256    if ( x != null) {
257      for (var z = 0; z < x.length; z++) {
258        x[z].addEventListener("click", function(){
259          var y = document.getElementsByClassName("push");
260          for (var i = 0; i < y.length; i++) {
261              y[i].classList.add('push-open');
262          }
263
264          var b = document.querySelectorAll(".mobile-side");
265          for (var i = 0; i < b.length; i++) {
266              b[i].classList.add('sidenav-body-open');
267          }
268        });
269      }
270    }
271  }
272
273  // Show Nav scroll up
274  const myScrollUp = function () {
275    var previousTop = 0;
276    window.addEventListener("scroll", function(){
277      var show_back_top = document.querySelector('.showbacktop');
278      var currentTop = document.body.scrollTop || document.documentElement.scrollTop;
279      var min_header = document.querySelector('.header').offsetHeight;
280      if ( show_back_top !=null) {
281        if ( currentTop >= previousTop){
282          //scroll down
283          if (currentTop >= min_header) {
284            show_back_top.classList.add("is-fixed");
285          }
286        } else {
287          //scroll up
288          if (currentTop >= min_header) {
289            show_back_top.classList.add("is-visible");
290          } else {
291            show_back_top.classList.remove("is-visible","is-fixed");
292          }
293        }
294      }
295      previousTop =currentTop <= 0 ? 0 :currentTop;
296    }, false);
297  }
298
299  // Mobile sticky nav
300  const myMobileSticky = function () {
301    var previousTop = 0;
302    window.addEventListener("scroll", function(){
303      var show_sticky = document.querySelector('.mobile-sticky');
304      var currentTop = document.body.scrollTop || document.documentElement.scrollTop;
305      var min_header = document.querySelector('.top-menu').offsetHeight;
306      if ( show_sticky !=null) {
307        if ( currentTop >= previousTop){
308          //scroll down
309          if (currentTop >= min_header) {
310            show_sticky.classList.add("is-sticky");
311          }
312        } else {
313          //scroll up
314          if (currentTop <= min_header) {
315            show_sticky.classList.remove("is-sticky");
316          }
317        }
318      }
319      previousTop =currentTop <= 0 ? 0 :currentTop;
320    }, false);
321  }
322
323
324  // Show suggestion post
325  const mySuggestion = function () {
326    var previousTop = 0;
327
328    window.addEventListener("scroll", function(){
329      var suggestion_box = document.querySelector('.suggestion-box');
330      var currentTop = document.body.scrollTop || document.documentElement.scrollTop;
331
332      if ( suggestion_box !=null) {
333        var min_header = document.querySelector('.post-content').offsetHeight;
334
335        if ( currentTop >= previousTop){
336          //scroll down
337          if (currentTop >= min_header) {
338            suggestion_box.classList.add("show");
339          }
340        } else {
341          //scroll up
342          if (currentTop <= min_header) {
343            suggestion_box.classList.remove("show");
344          }
345        }
346      }
347      previousTop =currentTop <= 0 ? 0 :currentTop;
348    }, false);
349  }
350
351  // Mobile menu open
352  const myCloseSuggestion = function () {
353    var x = document.querySelectorAll(".close-suggestion");
354    if ( x != null) {
355      for (var z = 0; z < x.length; z++) {
356        x[z].addEventListener("click", function(){
357          var y = document.getElementsByClassName("suggestion-box");
358          for (var i = 0; i < y.length; i++) {
359              y[i].classList.add('close');
360          }
361        });
362      }
363    }
364  }
365
366  // Lazy load images
367  const myLazyload = function () {  
368    // lazy load in all
369    var lazys = document.querySelector('.lazy');
370    if ( lazys !=null) {
371      var lazyLoadInstance = new LazyLoad({
372        elements_selector: ".lazy",
373        callback_reveal: function (el) {
374          if ( el.complete && el.naturalWidth !== 0 ) {
375            el.classList.remove('loading'),
376            el.classList.add('loaded');
377          }
378        }
379      });
380    }
381  }
382
383  // Sticky element
384  const mySticky = function () {
385    // sticky
386    var stickys = document.querySelectorAll('.sticky');
387    if ( stickys !=null) {
388      for (var i = 0; i < stickys.length; i++) {
389        new hcSticky(stickys[i], {
390          stickTo: stickys[i].parentNode,
391          top: 20,
392          bottomEnd: 30
393        });
394      }
395    }
396  }
397
398  // vertical tabs
399  const myVertical_tabs = function() {
400    var droptab_a = document.querySelectorAll('.dropdown-menu a[data-bs-toggle="tab"]');
401    for (var i = 0; i < droptab_a.length; i++) {
402      droptab_a[i].addEventListener("click", function(e) {
403        e.stopPropagation();
404      });
405    }
406  }
407
408   // Bootstrap JS
409  const myBootstrap = function () {
410    // Tooltip
411    const tooltipTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="tooltip"]'));
412    if ( tooltipTriggerList != null) {
413      tooltipTriggerList.map(function (tooltipTriggerEl) {
414        return new bootstrap.Tooltip(tooltipTriggerEl)
415      });
416    }
417
418    // validation
419    const formsx = document.querySelectorAll('.needs-validation')
420    if ( formsx != null) {
421      // Loop over them and prevent submission
422      Array.prototype.slice.call(formsx)
423      .forEach(function (form) {
424        form.addEventListener('submit', function (event) {
425          if (!form.checkValidity()) {
426            event.preventDefault()
427            event.stopPropagation()
428          }
429
430          form.classList.add('was-validated')
431        }, false)
432      });
433    }
434
435    // popovers
436    const popoverTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="popover"]'));
437    if ( popoverTriggerList != null) {
438      popoverTriggerList.map(function (popoverTriggerEl) {
439        return new bootstrap.Popover(popoverTriggerEl)
440      });
441    }
442
443    const toastElList = [].slice.call(document.querySelectorAll('.toast'));
444    if ( toastElList != null) {
445      toastElList.map(function (toastEl) {
446        return new bootstrap.Toast(toastEl, option)
447      });
448    }
449  }
450
451  // Custom JS
452  const myCustom = function () {
453    
454    // insert your javascript in here
455    
456  }
457
458
459  /**
460   * ------------------------------------------------------------------------
461   * Launch Functions
462   * ------------------------------------------------------------------------
463   */
464   
465  myBacktotop();
466  sub_dropdown_js();
467  myMobile();
468  myOpen();
469  myScrollUp();
470  mySuggestion();
471  myCloseSuggestion();
472  myLazyload();
473  mySticky();
474  myMobileSticky();
475  myVertical_tabs();
476  myBootstrap();
477  myCustom();
478
479})();

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.