Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [JavaScript][HTML][CSS] Wyświetlanie obrazka w drugim div
eminiasty
post 26.07.2017, 17:40:39
Post #1





Grupa: Zarejestrowani
Postów: 267
Pomógł: 0
Dołączył: 11.09.2015

Ostrzeżenie: (0%)
-----


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)');
Go to the top of the page
+Quote Post
trueblue
post 26.07.2017, 17:53:07
Post #2





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


A nie możesz ustawić background bezpośrednio w CSS, bez użycia JS?


--------------------
Go to the top of the page
+Quote Post
eminiasty
post 26.07.2017, 18:15:16
Post #3





Grupa: Zarejestrowani
Postów: 267
Pomógł: 0
Dołączył: 11.09.2015

Ostrzeżenie: (0%)
-----



<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
Go to the top of the page
+Quote Post
trueblue
post 26.07.2017, 18:17:46
Post #4





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


To wstaw wszystkie do #box, a wyświetlaj zawsze tylko jeden. Ale nie używaj ich jako background, tylko wciąż jako <img>.


--------------------
Go to the top of the page
+Quote Post
eminiasty
post 27.07.2017, 18:02:44
Post #5





Grupa: Zarejestrowani
Postów: 267
Pomógł: 0
Dołączył: 11.09.2015

Ostrzeżenie: (0%)
-----


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ć?

Ten post edytował eminiasty 27.07.2017, 18:03:13
Go to the top of the page
+Quote Post
trueblue
post 27.07.2017, 18:04:18
Post #6





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


Dodawać taką klasę do dużego obrazka, przy klikaniu na mały obrazek.
Właściwie to sam sobie odpowiedziałeś.


--------------------
Go to the top of the page
+Quote Post
eminiasty
post 27.07.2017, 18:24:14
Post #7





Grupa: Zarejestrowani
Postów: 267
Pomógł: 0
Dołączył: 11.09.2015

Ostrzeżenie: (0%)
-----


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. });




Ten post edytował eminiasty 27.07.2017, 18:24:27
Go to the top of the page
+Quote Post
trueblue
post 27.07.2017, 18:26:50
Post #8





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


Z wszystkich usuwaj, a jednemu przypisuj.


--------------------
Go to the top of the page
+Quote Post
viking
post 27.07.2017, 18:28:50
Post #9





Grupa: Zarejestrowani
Postów: 6 378
Pomógł: 1116
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


Masz opis takiej galerii https://prophp.pl/article/25/prosta_galeria...ystaniem_jquery


--------------------
Go to the top of the page
+Quote Post
eminiasty
post 27.07.2017, 18:46:53
Post #10





Grupa: Zarejestrowani
Postów: 267
Pomógł: 0
Dołączył: 11.09.2015

Ostrzeżenie: (0%)
-----


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/

Ten post edytował eminiasty 27.07.2017, 18:47:23
Go to the top of the page
+Quote Post
trueblue
post 27.07.2017, 18:51:23
Post #11





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


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ęć.


--------------------
Go to the top of the page
+Quote Post
eminiasty
post 27.07.2017, 18:56:16
Post #12





Grupa: Zarejestrowani
Postów: 267
Pomógł: 0
Dołączył: 11.09.2015

Ostrzeżenie: (0%)
-----


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

Ten post edytował eminiasty 27.07.2017, 18:56:31
Go to the top of the page
+Quote Post
trueblue
post 27.07.2017, 18:59:22
Post #13





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


No, ale nie podłączyłeś wcale do obrazka/ów, tylko do div#big-image.


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 24.07.2025 - 15:39