Tworzę tabelę rozwijania / zwijania stawek dla firmy, dla której pracuję. Obecnie mam pod stołem przycisk, aby go rozwinąć, przycisk mówi „Rozwiń”. Jest funkcjonalny, z wyjątkiem tego, że potrzebuję przycisku, aby przejść do „Zwiń” po kliknięciu, a następnie oczywiście z powrotem do „Rozwiń” po ponownym kliknięciu. Napis na przycisku jest obrazem tła.
Zasadniczo wszystko, czego potrzebuję, to zmienić obraz tła div po kliknięciu, z wyjątkiem czegoś w rodzaju przełącznika.
Aug 9 '10 at 0:42
w SO być może dlatego :(Odpowiedzi:
Powinien załatwić sprawę, wystarczy podłączyć go do zdarzenia kliknięcia na elemencie
źródło
Ja osobiście używałbym kodu JavaScript do przełączania między 2 klasami.
Poproś CSS, aby nakreślił wszystko, czego potrzebujesz na div MINUS, regułę tła, a następnie dodaj dwie klasy (np. Rozwinięte i zwinięte) jako reguły, z których każda ma prawidłowy obraz tła (lub pozycję tła, jeśli używasz duszka).
CSS z różnymi obrazami
Lub CSS z obrazkiem
Następnie...
Kod JavaScript z obrazkami
JavaScript z ikoną
Uwaga: elegancki toggleClass nie działa w Internet Explorerze 6, ale poniższa
addClass
/removeClass
metoda również będzie działać dobrze w tej sytuacjiNajbardziej eleganckie rozwiązanie (niestety nie przyjazne dla Internet Explorera 6)
O ile wiem, ta metoda będzie działać w różnych przeglądarkach i czułbym się znacznie bardziej komfortowo grając z CSS i klasami niż ze zmianami adresów URL w skrypcie.
źródło
Istnieją dwa różne sposoby zmiany CSS obrazu tła za pomocą jQuery.
$('selector').css('backgroundImage','url(images/example.jpg)');
$('selector').css({'background-image':'url(images/example.jpg)'});
Przyjrzyj się uważnie, aby zauważyć różnice. W drugim przypadku możesz użyć konwencjonalnego CSS i połączyć wiele właściwości CSS razem.
źródło
Jeśli używasz duszka CSS dla obrazów tła, możesz podnieść przesunięcie tła +/- n pikseli w zależności od tego, czy rozwijałeś się, czy zwinąłeś. Nie przełącznik, ale bliżej niż przełączanie adresów URL obrazów tła.
źródło
Oto jak to robię:
CSS
JS
źródło
.toggleClass()
funkcji jQuery .Jednym ze sposobów na to jest umieszczenie obu obrazów w kodzie HTML, wewnątrz SPAN lub DIV, możesz ukryć domyślne za pomocą CSS lub JS przy ładowaniu strony. Następnie możesz przełączać po kliknięciu. Oto podobny przykład, którego używam do umieszczania ikon lewo / dół na liście:
źródło
Działa to we wszystkich obecnych przeglądarkach w WinXP. Zasadniczo po prostu sprawdzam, jaki jest obecny obraz backgrond. Jeśli to zdjęcie1, pokaż zdjęcie2, w przeciwnym razie pokaż zdjęcie1.
Jsapi po prostu ładuje jQuery z CDN Google (łatwiejsze do testowania pliku misc na pulpicie).
Zamiennik jest kompatybilny z różnymi przeglądarkami (opera i np. Dodawaj cudzysłowy do adresu URL i Firefox, Chrome i Safari usuwaj cudzysłowy).
źródło
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
Mój jest animowany:
źródło
Zrobiłem to używając wyrażeń regularnych, ponieważ chciałem zachować ścieżkę względną i nie używać funkcji addClass. Chciałem tylko, żeby to było zawiłe, lol.
źródło
Stary post, ale pozwoliłoby to na użycie duszka obrazka i dostosowanie powtarzania, a także pozycjonowania za pomocą skrótu dla właściwości css (tło, powtórzenie, lewy górny).
źródło
Znalazłem rozwiązanie na forum, Toggle Background Img .
źródło
Duszki CSS działają najlepiej. Próbowałem przełączać klasy i manipulować właściwością „background-image” za pomocą jQuery, żadna nie działała. Myślę, że dzieje się tak, ponieważ przeglądarki (przynajmniej najnowszy stabilny Chrome) nie mogą „przeładować” obrazu już załadowanego.
Bonus: duszki CSS można szybciej pobierać i wyświetlać. Mniej żądań HTTP oznacza szybsze ładowanie strony. Zmniejszenie liczby HTTP jest najlepszym sposobem na poprawę wydajności interfejsu, dlatego polecam cały czas iść tą drogą.
źródło
Jest to dość prosta odpowiedź, która zmienia tło witryny za pomocą listy elementów
źródło
Zawsze używam znacznika czasu, aby przeglądarki nie buforowały obrazu. Na przykład, jeśli użytkownik obraca swojego awatara, często zostanie on zbuforowany i wydaje się, że się nie zmienia.
źródło