Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript][HTML][CSS] Wyświetlanie obrazka w drugim div
Forum PHP.pl > Forum > Przedszkole
eminiasty
Chce uzyskać efekt działania miniatury

  1. #box{
  2. border:solid 10px;
  3. width:500px;
  4. height:500px;
  5. }
  6. .img{
  7. width:100px;
  8. height:100px;
  9. }
  10.  
  11.  
  12. <div id="box">TEST</div>
  13.  
  14.  
  15. <img class="img" src="https://gamehag.com/img/avatar/2898.png" alt="Smiley face" height="42" width="42">
  16.  
  17.  
  18. src="http://code.jquery.com/jquery-3.2.1.min.js"
  19. integrity="sha256-hwg4gsxgFZhOsEEamdOYGBf13FyQuiTwlAQgxVSNgt4="
  20. crossorigin="anonymous"></script>
  21. $(function() {
  22. $('.img').click(function(){
  23. $('#box').css('background', 'url(https://gamehag.com/img/avatar/2898.png)');
  24.  
  25. });
  26.  
  27. });


Pytanie: W jaki sposób zrobić z powyższego skryptu coś uniwersalnego? Tak by mogło być kilka obrazków i wszystkie mogły być wstawiana do #box?? Da się to zrobić by linku do każdego obrazka nie było w js?

Domyślam się, że należy edytować ten kawałek, tylko proszę o podpowiedź jak:
  1. $('#box').css('background', 'url(https://gamehag.com/img/avatar/2898.png)');
trueblue
A nie możesz ustawić background bezpośrednio w CSS, bez użycia JS?
eminiasty

<img class="img" src="https://gamehag.com/img/avatar/2898.png" alt="Smiley face" height="42" width="42">
<img class="img" src="https://gamehag.com/img/avatar/111.png" alt="Smiley face" height="42" width="42">
<img class="img" src="https://gamehag.com/img/avatar/2222.png" alt="Smiley face" height="42" width="42">

Nie, bo gdy będę miał taką sytuację (więcej zdjęć) chciałbym móc wyświetlać te zdjęcia w div #box
trueblue
To wstaw wszystkie do #box, a wyświetlaj zawsze tylko jeden. Ale nie używaj ich jako background, tylko wciąż jako <img>.
eminiasty
http://jsfiddle.net/Qhdaz/616/

Chciałbym efekt taki jak tu z tym, że dla przełaczania pomiedzy obrazkami duży obrazek ma dostawac klase active, jak to zmodyfikować?
trueblue
Dodawać taką klasę do dużego obrazka, przy klikaniu na mały obrazek.
Właściwie to sam sobie odpowiedziałeś.
eminiasty
Wiem gdzie przypisać klasę, lecz nie wiem jak ją usuwać z poprzedniego elementu.
  1. $(".small-images img").click(function (e) {
  2. var $this = $(this),
  3. index = $this.index();
  4. $(".small-images img").removeClass('selected');
  5. $this.addClass('selected');
  6. $("#big-image img").eq(index).show().siblings().hide();
  7. $("#big-image img").eq(index).addClass('active');
  8. });


trueblue
Z wszystkich usuwaj, a jednemu przypisuj.
viking
Masz opis takiej galerii https://prophp.pl/article/25/prosta_galeria...ystaniem_jquery
eminiasty
Teraz ostatnie pytanie, każdy element big ma w momecie jego wyswietlenia class active
  1. <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
  2. <script src="jquery.loupe.min.js"></script>
  3. $('.active').loupe();


Wiec taki kod chyba powinien zadzialac?

Efekt jak tu:
http://redopop.com/loupe/
trueblue
Nie, dlatego, że ta lupa podłącza się do elementów z tą klasą, które istnieją zaraz po załadowania strony.
Spróbuj dołączyć ją do wszystkich dużych zdjęć.
eminiasty
Teoretycznie mam element po załadowaniu, domyślne zdjęcie ma odrazu klase active
  1. $("#big-image img:eq(0)").addClass('active');


Podłączenie do
  1. $('#big-image').loupe({

też nie pomaga
trueblue
No, ale nie podłączyłeś wcale do obrazka/ów, tylko do div#big-image.
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.