Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Blokada scrolla w iframe
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
hubson87
Witam,

Na stronie mam iframe'a do którego ładuję zawartość html (zawiera prezentację we falshu)
Chciałem zablokować przewijanie strony w przypadku użycia scrolla wewnątrz iframe. Udało się to osiągnąć w ten sposób.

[JAVASCRIPT] pobierz, plaintext
  1. $j('#pramka').load(function() {
  2. $j(this).contents().bind('mousewheel DOMMouseScroll', function(e) {
  3. var delta = e.wheelDelta || -e.detail;
  4. this.scrollTop += ( delta < 0 ? 1 : -1 ) * 30;
  5. e.preventDefault();
  6. });
  7. });
  8. });
[JAVASCRIPT] pobierz, plaintext


Problem polega na tym że blokowanie jest skrolowanie nie tylko zawartości body ale też każde użycie scrolla wewnątrz iframe. (Działa jedynie poprawnie w ff).
Scroll jest potrzebny wewnątrz do zoom in/out na flashu. Da się jakoś odpalić preventDefault() żeby działał tylko poza ramką?

Pozdrawiam,
sowiq
Cytat(hubson87 @ 17.04.2013, 15:11:23 ) *
Da się jakoś odpalić preventDefault() żeby działał tylko poza ramką?

Tak. Nazywa się to stopPropagation.
hubson87
Kiedy podmienie preventDefault() na stopPropagation() to skrypt totalnie nic nie robi. Myślę że problem może też tkwić w zdarzeniach mousewheel i DOMMouseScroll. W sumie ten drugi jest używany jedynie w ff gdzie właśnie skrypt działa.

Jakieś sugestie?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.