Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript] Slider jFlow - uzależnienie wysokości od szerokości
Forum PHP.pl > Forum > Przedszkole
Mr. Z
Witam,

Korzystam ze slidera jFlow (jQuery), ponieważ jest lekki i, przede wszystkim, może mieć zmienną szerokość. Obecnie mój kod wywołujący slider wygląda tak:

[JAVASCRIPT] pobierz, plaintext
  1. $(function() {
  2. $("ol#controls").jFlow({
  3. slides: "#slides",
  4. width: "100%",
  5. height: "250px"
  6. });
  7. });
[JAVASCRIPT] pobierz, plaintext


Szerokość jest zmienna, ale wysokość niestety musi być podana w pikselach, w przeciwnym razie slider rozwala się w pionie, a zależy mi na tym, aby wysokość również była zmienna. Tutaj moje pytanie: Jak mogę sprawić, by wysokość stanowiła zawsze 16/9 szerokości? Proszę o pomoc.

Pozdrawiam serdecznie.
Daimos
Pobierasz szerokość przeglądarki (document.body.clientWidth), obliczasz szerokość i gotowe
Mr. Z
Cytat(Daimos @ 9.06.2011, 22:32:11 ) *
Pobierasz szerokość przeglądarki (document.body.clientWidth), obliczasz szerokość i gotowe


Dzięki za odpowiedź, nakierowałeś mnie na takie rozwiązanie:

[JAVASCRIPT] pobierz, plaintext
  1. $(function() {
  2. $("ol#controls").jFlow({
  3. slides: "#slides",
  4. width: "100%",
  5. height: $("#slides div").width()*0.5625
  6. });
  7. });
[JAVASCRIPT] pobierz, plaintext


Działa świetnie - prawie. Problem teraz polega na tym, że wysokość diva jest obliczana za każdym załadowaniem skryptu i jest wówczas już niezależna od szerokości okna przeglądarki (czyli dostaje np. te 400px i się tego trzyma tak długo, aż nie odświeżę). Jak mogę sprawić, aby robiło to automatycznie, kiedy zmniejszam/powiększam szerokość okna przeglądarki?
thek
[JAVASCRIPT] pobierz, plaintext
  1. $(window).resize(function() {
  2. /* tu robisz co chcesz z wybranym elementem... */
  3. });
[JAVASCRIPT] pobierz, plaintext
Od teraz chyba sobie poradzisz smile.gif
Mr. Z
Cytat(thek @ 10.06.2011, 09:37:15 ) *
[JAVASCRIPT] pobierz, plaintext
  1. $(window).resize(function() {
  2. /* tu robisz co chcesz z wybranym elementem... */
  3. });
[JAVASCRIPT] pobierz, plaintext
Od teraz chyba sobie poradzisz smile.gif


Witam ponownie,

Niestety, ale nie poradziłem sobie. Podjąłem wiele prób, próbując się posiłkować wiedzą zdobytą w Internecie, ale nic z tego. Wymyśliłem nawet coś takiego:

[JAVASCRIPT] pobierz, plaintext
  1. $(function() {
  2. $("ol#controls").jFlow({
  3. slides: "#slides",
  4. width: "100%",
  5. height: $("#slides div").resize(function() {
  6. $("#slides div").width()*0.5625
  7. })
  8. });
  9. });
[JAVASCRIPT] pobierz, plaintext
Nie dość, że nie przeskalowuje tego diva, to jeszcze nadaje mu jakąś dziwną wysokość, niemającą niczego wspólnego z zamierzonym efektem. Próbowałem również wyprowadzić funkcję resize poza funkcję jFlow, ale również mi się to nie udało. Ponownie proszę o pomoc, co zrobiłem źle?

Pozdrawiam.
thek
Zobacz JAK sie używa resize wink.gif Nie bez powodu dałem Ci ten kawałek tak. Masz wyłapać resize okna, a nie elementu i dopiero gdy to zrobisz - działać dalej. Używając pewnego tekstu z netu: "You are doing it WRONG" wink.gif
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.