var additional_data_object = additional_data; var additional_data = JSON.stringify(additional_data); // var filters = { "filter_category_ids": "145,148"}; // var filters = JSON.stringify(filters); // alert(additional_data); var first_run_url = window.location.href; var current_page = 1; var loaded_pages = []; function change_url_online(page_number) { if (page_number == 1) { window.history.pushState("object or string", "Title", first_run_url); } else { var current_url = window.location.href; var search_string = '?page=' + page_number; if (current_url.indexOf(search_string) == -1) { window.history.pushState("object or string", "Title", "?page=" + page_number + "/"); } } } $.post(ajax_url, { page: 1 , 'additional_data' :additional_data }, function(data) { $("#content").html(data); }); var lastScrollTop = 0; if(additional_data_object.work_pagination == 1){ // element should be replaced with the actual target element on which you have applied scroll, use window in case of no target element. window.addEventListener("scroll", function() { // or window.addEventListener("scroll".... var st = window.pageYOffset || document.documentElement.scrollTop; // Credits: "https://github.com/qeremy/so/blob/master/so.dom.js#L426" if (st > lastScrollTop) { console.log('Down'); window.addEventListener('scroll', function() { var elements = document.querySelectorAll('[data-page="next-page"]'); for (var index = 0; index <= elements.length - 1; index++) { var position = elements[index].getBoundingClientRect(); // checking for partial visibility if (position.top < window.innerHeight && position.bottom >= 0) { var current_content = $("#content").html(); var next_page = elements[index].dataset.value; if (loaded_pages.includes(next_page)) { change_url_online(next_page); } else { loaded_pages.push(next_page); document.getElementById('scroller').style.display = 'block'; $.post(ajax_url, { page: next_page, 'additional_data' :additional_data }, function(data) { document.getElementById('scroller').style.display = 'none'; $(data).appendTo($("#content")); change_url_online(next_page); }); } } } }); } else { console.log('Up'); window.addEventListener('scroll', function() { var elements = document.querySelectorAll('[data-page="previous-page"]'); for (var index = 0; index <= elements.length - 1; index++) { var position = elements[index].getBoundingClientRect(); // checking for partial visibility if (position.top < window.innerHeight && position.bottom >= 0) { var current_content = $("#content").html(); var previous_page = elements[index].dataset.value; console.log(previous_page); if (loaded_pages.includes(previous_page)) { change_url_online(previous_page); } else { loaded_pages.push(previous_page); change_url_online(previous_page); } } } }); } lastScrollTop = st <= 0 ? 0 : st; // For Mobile or negative scrolling }, false); window.addEventListener('scroll', function() { var start_of_page_element = document.getElementById("start_of_page_element"); if (start_of_page_element) { var position = start_of_page_element.getBoundingClientRect(); // checking for partial visibility if (position.top < window.innerHeight && position.bottom >= 0) { change_url_online(1); } } var end_of_page_element = document.getElementById("end_of_page_element"); if (end_of_page_element) { var position = end_of_page_element.getBoundingClientRect(); // checking for partial visibility if (position.top < window.innerHeight && position.bottom >= 0) { change_url_online(end_of_page_element.dataset.page); } } }); }