diff --git a/static/js/index.js b/static/js/index.js index 245437d..ff7cc3c 100644 --- a/static/js/index.js +++ b/static/js/index.js @@ -9,17 +9,27 @@ FINISH_TYPING_INTERVAL = 650; var searchBar = $("form#search-bar input[type='text']")[0]; var resultsDiv = $("div#results")[0]; -var typingTimer, lastValue; +var typingTimer, scrollTimer, lastValue; var searchResultsPage = 1; /* * Set all page callbacks. */ (function setHomePageCallbabacks(){ + var results = $('#results').get(0); + // Enable infinite scrolling down the results page. $(window).scroll(function(){ if($(window).scrollTop() + $(window).height() == $(document).height() && resultsDiv.querySelectorAll(".result").length > 0) loadMoreResults(); + + clearTimeout(scrollTimer); + if (!results.classList.contains('disable-hover')) + results.classList.add('disable-hover') + + scrollTimer = setTimeout(function(){ + results.classList.remove('disable-hover'); + }, 200); }); // Toggle the advanced-search form's visibility. @@ -57,13 +67,13 @@ var searchResultsPage = 1; var previousResult = function(){ var currResult = $(".display-all"); if(currResult.length) { - currResult.removeClass('display-all'); + currResult.removeClass("display-all"); currResult = currResult.closest(".result").prev(".result"); } else { - currResult = $(document.querySelectorAll('.result')[0]); + currResult = $(document.querySelectorAll(".result")[0]); } - currResult.addClass('display-all'); + currResult.addClass("display-all"); currResult.each(function(){ $('html,body').stop().animate({ scrollTop: $(this).offset().top - ( @@ -79,10 +89,10 @@ var searchResultsPage = 1; var nextResult = function(){ var currResult = $(".display-all"); if(currResult.length) { - currResult.removeClass('display-all'); + currResult.removeClass("display-all"); currResult = currResult.closest(".result").next(".result"); } else { - currResult = $(document.querySelectorAll('.result')[0]); + currResult = $(document.querySelectorAll(".result")[0]); } currResult.addClass('display-all'); @@ -104,8 +114,13 @@ var searchResultsPage = 1; $(window).keypress(function(key){ for(var hotkey in hotkeyActions){ var keyChar = String.fromCharCode(key.keyCode); - if(keyChar == hotkey) + if(keyChar == hotkey) { + var results = $('#results').get(0); + if (!results.classList.contains('disable-hover')) + results.classList.add('disable-hover') + hotkeyActions[keyChar](); + } } }); }()); @@ -273,14 +288,20 @@ function createResult(codelet) { codeElt.innerHTML = '