Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [css][html][jquery]Dopasowanie pozycji img do rozdzielczości
sinke
post
Post #1





Grupa: Zarejestrowani
Postów: 33
Pomógł: 0
Dołączył: 26.02.2011
Skąd: Bieruń

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


Witam,
mam taką sytuacje:
posiadam podstronę na której po lewej stronie mam kwadraciki z kolorami. Jak najedzie się na dany kwadracik to balonik co jest obok podświetla się na dany kolor:
(IMG:http://s6.ifotos.pl/mini/balonokjp_xrapwpe.jpg)
i w jeden rozdzielczości jest okej, natomiast jak otwieram tą stronie w innej rozdzielczości balonik się rozwala
(IMG:http://s6.ifotos.pl/mini/balonzlyj_xrapwhs.jpg)

Czy jest jakiś sposób,aby w każdej rozdzielczości balonik był zawsze na tym samym miejscu?

Podświetlanie balonika na dany kolor zrobiłam za pomocą funkcji hover() w jQuery:
[JAVASCRIPT] pobierz, plaintext
  1. $(document).ready(function(){
  2.  
  3.  
  4. $("li#st_kw1").hover(
  5. function () {
  6. $(this).append($('<img class="balon" src="includes/gfx/zamowienie/stadardowe/st_ba1.png">'));
  7. },
  8. function () {
  9. $(this).find("img:last").remove();
  10. }
  11. );
[JAVASCRIPT] pobierz, plaintext


fragment z HTML:
  1. <p>W naszej ofercie posiadamy możliwość nadruku na nastepujących balonach:</p>
  2. <img class="balon" src="includes/gfx/zamowienie/stadardowe/st_ba2.png" alt="" >
  3. <img id="stopa" src="includes/gfx/zamowienie/stopa.jpg" alt="" />
  4.  
  5. <ul>
  6.  
  7. <li><span class="kolor_nr">STANDARDOWE</span>
  8. <ul class="rodzaje">
  9. <li id="st_kw1"><img class="pod" src="includes/gfx/zamowienie/stadardowe/st_kw1.png" /></li>
  10. </ul>
  11. </li>
  12. </ul>


Żeby ten balonik pokazywał się z boku nadałam mu position: absolute, bo inaczej ten balon jest pod kwadraikami i cały układ się sypie:
(IMG:http://s6.ifotos.pl/mini/balonblad_xrapwep.jpg)

kod css:
  1. .balon, #stopa { float: left; position: absolute; }
  2. .balon { z-index:-1; top: 30%; left: 64%; }
  3. #stopa { z-index:-2; top: 50%; left: 65%;}
Go to the top of the page
+Quote Post
Damonsson
post
Post #2





Grupa: Zarejestrowani
Postów: 2 355
Pomógł: 533
Dołączył: 15.01.2010
Skąd: Bydgoszcz

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


Pokaż to online.
Go to the top of the page
+Quote Post
sinke
post
Post #3





Grupa: Zarejestrowani
Postów: 33
Pomógł: 0
Dołączył: 26.02.2011
Skąd: Bieruń

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


przykład online

U mnie na chromie z rozdzielczością: 1366 x 768 jest ok, ale niestety na firefoxie jest małe przesunięcie... ;/

Na większych rozdzielczościach np na 1920 x 1080 (print screen poniżej) już ten balonik po prawej jest rozłączony od stopki (IMG:style_emoticons/default/sad.gif) , jak temu zapobiec, żeby w każdej rozdzielczości (i każdej przeglądarce też by było fajnie) był "przywiązany"? (IMG:style_emoticons/default/smile.gif)

(IMG:http://aleksandralysko.pl/przyklad/balon_zly.jpg)
Go to the top of the page
+Quote Post
RiE
post
Post #4





Grupa: Zarejestrowani
Postów: 97
Pomógł: 45
Dołączył: 5.05.2010

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


Dzieje się tak, dlatego że ustawiłeś procentową wartość.
Obrazek jest położony na wysokości 27% wysokości ekranu i 64% szerokości ekranu. Druga część obrazka ma inne wartości to też przy zmianie rozdzielczości obrazek leży w zupełnie innym miejscu
Obie części obrazka umieść w divie nadaj mu właściwość position:relative ustaw też wysokość(height) całego balona(balon+stopka).
Wewnątrz diva, balonowi nadaj position:absolute i top:0. Stopce- position:absolute i bottom:0. Jeżeli nie będą leżeć prawidłowo to balonowi dodawaj wartości stałe(nie %) top
  1. .balon {
  2. position:relative;
  3. height: //odczytaj wysokości obrazków gora+dol
  4. left:64%;
  5. top:24%;
  6. }
  7. .gora, .dol {
  8. position:absolute;
  9. }
  10. .gora {
  11. top:0;
  12. }
  13. .dol {
  14. bottom:0;
  15. }
  16.  
  17.  
  18.  
  19. <div class="balon">
  20. <img class="gora" />
  21. <img class="dol" />
  22. </div>


Oczywiście to tylko jeden ze sposobów rozwiązania tego problemu (IMG:style_emoticons/default/smile.gif)

Ten post edytował RiE 12.10.2012, 09:26:06
Go to the top of the page
+Quote Post
sinke
post
Post #5





Grupa: Zarejestrowani
Postów: 33
Pomógł: 0
Dołączył: 26.02.2011
Skąd: Bieruń

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


Po Twoich radach udało mi się ustawić balon i stopkę i teraz jest wszystko okej.

Tylko teraz jest inny problem, bo na ten balon co udało się ustawić, powinien się nakładać innego koloru balon w zależności od tego na jaki kolor najedzie się myszką na kwadraciki po prawej strony.
I tutaj jest użyty taki kod w jquery, że po najchaniu na kwadracik po nim powstaje img, który bym chciała przenieś na ten balonik na balonik po prawej stronie i tylko udaje mi się to zrobić po przez nadanie position absolute, a i tak nie da się do końca równo tego zrobić - taka sama sytuacja jak wyżej.

Struktura wygląda tak:
  1. <ul>
  2. <li><img src="kwadracik"></li>
  3. <ul>
  4.  
  5. // po najechaniu myszką na kwadracik jquery dodaje element w tym wypadku obrazek z balonikiem (który chce, żeby się nachodził z tym który jest po prawej stronie)
  6. <ul>
  7. <li><img src="kwadracik,jpg">
  8. <img src="balonik.jpg">
  9. </li>
  10.  
  11. <ul>
  12.  

próbowałam wcisnąć ten div, ale to też nie pomaga... (IMG:style_emoticons/default/sad.gif)
Go to the top of the page
+Quote Post
RiE
post
Post #6





Grupa: Zarejestrowani
Postów: 97
Pomógł: 45
Dołączył: 5.05.2010

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


A czy koniecznie musi być nałożenie innego balonika na istniejący? Nie może być zamiana domyślnego na inny?
W stylach:
  1. .czerwony {
  2. background:url() //adres obrazka
  3. width: //szerokość obrazka
  4. height: //wysokość obrazka
  5. }
  6. .zielony {
  7. background:url() //adres obrazka
  8. width: //szerokość obrazka
  9. height: //wysokość obrazka
  10. }
  11. //itd


JQuery:
  1. var kolor;
  2.  
  3. $("li").hover(
  4. function () {
  5. kolor = $(this).attr('id');
  6. $('.gora').addClass(kolor);
  7. },
  8. function () {
  9. $('.gora').removeClass(kolor);
  10. }
  11. );


HTML
W miejscu gdzie są wszystkie kwadraciki z kolorem do wyboru, nalezy zrobić coś takiego:
Nazwa ID musi odpowiadać nazwie klasy (#czerwony -> .czerwony)
  1. <ul>
  2. <li id="czerwony"><img src="czerwony-kwadracik.jpg"><li>
  3. <li id="zielony"><img src="zielony-kwadracik.jpg"></li>
  4. </li>
  5.  
  6. <ul>


Nazwy elementów przyjąłem z mojego poprzedniego posta. Jeżeli są inne to wystarczy podmienić na własne.
Zaznaczę jeszcze że jest to dość prymitywny sposób, ale szalenie prosty.

Ten post edytował RiE 12.10.2012, 11:01:50
Go to the top of the page
+Quote Post
sinke
post
Post #7





Grupa: Zarejestrowani
Postów: 33
Pomógł: 0
Dołączył: 26.02.2011
Skąd: Bieruń

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


Dzięki za pomysł sprawdzę, teraz który lepszy, bo minutę przed Tobą udało mi się zrobić inne rozwiązanie za pomocą jquery ($this() zamieniłam na na nazwę klasy diva czyli na $(' .balon') ). I że teraz ten balonik co się nakrywa nie jest dodawany do <li> tylko do tego <div> w którym jest balonik + stopka.

W ogóle RiE dzięki za całą pomoc!!! (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 23.08.2025 - 19:30