Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Marquee za pomoca javaScript
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
siorbi
Jak najprosciej uzyskac taki efekt jak kiedys znacznik marquee w ie? Chodzi o zwykle przewijanie tekstu w tabeli. Pojawia sie z jednej strony znika z drugiej i ponownie.
Zajec
Umieść w komórce tabeli element z tekstem. Zmniejszaj mi margin-left aż do osiągnięcia wartości ujemnej, której wartość bezwzględna jest równa szerokości elemenu z tekstem. Potem od razu zwiększ margin-left do szerokości komórki tabeli.

Pamiętaj oczywiście o overflow: hidden dla komórki.
-SaraniS-
Witam
Dopiszę się tu, bo mam podobny problem. Otóż tekst do banera będzie pobierany z bazy, i kontener, w którym go umieszczam, ma dynamiczną szerokość. W jaki sposób (czy w ogóle?) można pobrać szerokość elementu który jej nie ma zdefiniowanej w stylach? Próbowałem obj.clientWidth oraz obj.offsetWidth (gdzie obj to odwołanie do mojego kontenerka z tekstem) ale te wartości mają się nijak do prawdziwej szerokości elementu dry.gif W rezultacie tekst przewija się do momentu, gdy widać go jeszcze w 1/3 i znika, by pojawić się z prawej strony (o tyle mniej więcej jest szerszy kontener tekstu od swojego parenta) dry.gif
Dodatkowo zauważyłem, że aby zobaczyć w js wartości atrybutów styli, muszę je definiować inline - te z arkusza nie są widoczne! (arkusz ładowany przed skryptem, przeglądarka Opera 9.02 Build 8585)
Co z tym można zrobić?

[EDIT]
Problem rozwiązany - aktualna szerokość elementu - nawet dynamiczna - jest przechowywana we właściwości obj.currentStyle.width (tylko do odczytu) smile.gif
Natomiast nadal nie wiem, dlaczego muszą te wartości być definiowane inline zamiast w arkuszu...
Niestety, radość przedwczesna - IE nie potrafi odczytac wartości z currentStyle i podaje NaN...
[/EDIT]
[EDIT2]
Teraz to już całkiem zgłupiałem... Wczoraj, jak napisałem, właściwość offsetWidth zwracała mi NaN, a dziś działa poprawnie ohmy.gif O co tu chodzi?
Opera 9.02 Build 8585
IE 6.0.2800.1106
[/EDIT]
marcini82
Tresc mozesz tez wygodnie przesuwac za pomoca
  1. kontener.scrollLeft++;

wywolywanym co okreslona ilosc milisekund. Tylko musisz przy tym sprawdzac, czy scrollLeft nadal sie zwieksza, bo jak nie to oznacza ze dojechalo juz do konca.

I pamietaj o wlasciwosciach:
  1. overflow:hidden;
  2. white-space: nowrap;

dla kontenera.
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.