• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Problem z JS w HTML

0 głosów
340 wizyt
pytanie zadane 29 marca 2016 w Inne języki przez olsześ Gaduła (3,080 p.)

Witam,
na swojej stronie korzystam ze skryptu, który wyświetla mi statystyki (od 0 do n-tej liczby). Strona jest typu parallax scrolling- wszystkie podstrony w jednym pliku html. 

Problem jest następujący. Chciałbym, aby ten skrypt http://pastebin.com/vuwrtZgH włączał się nie przy starcie strony, lecz dopiero gdy strona będę na podstronie #statystyki gdzie znajduje się ten skrypt. 

Jak mam tego dokonać? :) 

3 odpowiedzi

+1 głos
odpowiedź 30 marca 2016 przez Ares21 Bywalec (2,260 p.)
wybrane 5 kwietnia 2016 przez olsześ
 
Najlepsza
$(document).ready(function() {
    function showStatistics() {

        function isScrolledIntoView(elem) {
            var $elem = $(elem);
            var $window = $(window);

            var docViewTop = $window.scrollTop();
            var docViewBottom = docViewTop + $window.height();

            var elemTop = $elem.offset().top;
            var elemBottom = elemTop + $elem.height();

            return ((elemBottom <= docViewBottom) && (elemTop >= docViewTop));
        }


        $(document).scroll(function scrollHandler() {
            if (isScrolledIntoView("#statystyki") == true) {
                $(document).off('scroll', scrollHandler);
                nazwaFunkcji();
            } else {

                return 0;
            }
        })
    }
    showStatistics();

    function nazwaFunkcji() {

    }
});

W skrócie pierwsza funkcja działa rozpoznawczo - sprawdza czy dany elemnt wyświetla się już na ekranie monitora. Jeśli zwróci true to wycofuje działanie .scroll() i wykonuje twoją funkcję którą musisz nazwać i zapakować niżej.  

+1 głos
odpowiedź 29 marca 2016 przez Mizukage Pasjonat (21,750 p.)
Nie wiem, ale może latwiej go przerobic pod te odległości od top strony
+1 głos
odpowiedź 29 marca 2016 przez Ares21 Bywalec (2,260 p.)
edycja 29 marca 2016 przez Ares21

Domyślam się, że masz hash'owanie w adresie url na scrollu?
 

$(document).ready(function() { 
  var hash = window.location.hash;

  if(hash == "#statystyki") {
    nazwaFunkcji();
  } else {

  return 0;
  }
})

Tylko nie pakuj tam całej funkcji, nazwij ją i wywołaj w miejscu if. 

komentarz 29 marca 2016 przez olsześ Gaduła (3,080 p.)
Nie mam hash'owania w adresie url :p
komentarz 5 kwietnia 2016 przez Mizukage Pasjonat (21,750 p.)
ciekawe skad pomysl z hashem

Podobne pytania

0 głosów
2 odpowiedzi 351 wizyt
pytanie zadane 19 marca 2018 w JavaScript przez marcolo Obywatel (1,530 p.)
0 głosów
1 odpowiedź 382 wizyt
–2 głosów
0 odpowiedzi 316 wizyt

93,599 zapytań

142,524 odpowiedzi

322,993 komentarzy

63,082 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Kursy INF.02 i INF.03
...