/*========== Theme Name: Foodify - Food HTML5 Template Theme Version: 1.0 ==========*/ /*========== ----- JS INDEX ----- 1.smooth scroll 2.Scroll to top 3.Scroll to Section ==========*/ // smooth scroll var html = document.documentElement; var body = document.body; var scroller = { target: document.querySelector("#js-scroll-content"), ease: 0.08, // <= scroll speed endY: 0, y: 0, resizeRequest: 1, scrollRequest: 0, }; var requestId = null; TweenLite.set(scroller.target, { rotation: 0.001, force3D: true, }); window.addEventListener("load", onLoad); function onLoad() { updateScroller(); window.focus(); window.addEventListener("resize", onResize); document.addEventListener("scroll", onScroll); } function updateScroller() { var resized = scroller.resizeRequest > 0; if (resized) { var height = scroller.target.clientHeight; body.style.height = height + "px"; scroller.resizeRequest = 0; } var scrollY = window.pageYOffset || html.scrollTop || body.scrollTop || 0; scroller.endY = scrollY; scroller.y += (scrollY - scroller.y) * scroller.ease; if (Math.abs(scrollY - scroller.y) < 0.05 || resized) { scroller.y = scrollY; scroller.scrollRequest = 0; } TweenLite.set(scroller.target, { y: -scroller.y, }); requestId = scroller.scrollRequest > 0 ? requestAnimationFrame(updateScroller) : null; } function onScroll() { scroller.scrollRequest++; if (!requestId) { requestId = requestAnimationFrame(updateScroller); } } function onResize() { scroller.resizeRequest++; if (!requestId) { requestId = requestAnimationFrame(updateScroller); } } jQuery(".filters").on("click", function() { setTimeout(function() { onScroll(); onResize(); }, 1000); }); document.querySelector(".filters li").addEventListener("click", onResize); document.querySelector(".filters li").addEventListener("click", onScroll); // Scroll to top const scrolltotop = document.querySelector(".scrolltop"); scrolltotop.addEventListener("click", () => gsap.to(window, { scrollTo: 0, }) ); // Scroll to Section var sections = $('section'), nav = $('.foody-nav-menu , .banner-btn'), nav_height = nav.outerHeight(); nav.find('a').on('click', function() { var $el = $(this), id = $el.attr('href'); $('html, body').animate({ scrollTop: $(id).offset().top - nav_height }, 500); return false; });