JScript za zamenjavo slike pri manjših resolucijah
 
esedic 23. sep 2010 07:14:58 Pridružen od:
28. nov 2007
368 objav
184 13 4
#1

Na spletni strani bi želel avtomatično zamenjati logotip z manjšo sliko v primerih, ko imajo obiskovalci monitorje z manjšimi resolucijami.



Na netu ne najdem pravega primera, vem sicer da lahko dobim resolucijo z screen.width / screen.height, vendar ne najdem nekega primerne kode, ki bi potem poskrbela za zamenjavo slike.



Logotip je določen v CSS-ju (background)



Anybody?


všeč(0) ni všeč(0) spam(0)
 
Lucifix 23. sep 2010 07:25:23 Pridružen od:
14. okt 2008
744 objav
438 12 0
všeč(0) ni všeč(0) spam(0)
 
esedic 23. sep 2010 09:35:21 Pridružen od:
28. nov 2007
368 objav
184 13 4
#3

Al sem slep al kaj, samo ne vidim kako mi lahko zgornji primer pomaga pri moji težavi? :)


všeč(0) ni všeč(0) spam(0)
 
Lucifix 23. sep 2010 09:52:38 Pridružen od:
14. okt 2008
744 objav
438 12 0
#4

Yup, sem prehitro prebral :)



Da popravim napako, sem ti našel nekaj možnih rešitev: ;)

(PS: nisem res preverjal, ampak mogoče ti kaj pride v pomoč)

http://www.xs4all.nl/~mignone/Easy-JavaScripts/load%20images%20depending%20on%20clients%20resolution%28into%20spans%29.html



http://www.htmlcodetutorial.com/help/archive.php/ott2797__change-image-based-on-resolution.html



Tale bo verjetno najbolj simple:

http://www.webmasterworld.com/forum91/2601.htm


všeč(0) ni všeč(0) spam(0)
 
kraji 23. sep 2010 10:05:45 Pridružen od:
22. jul 2009
853 objav
321 12 4
#5

Ne vem, če sem v redu razumel, a sliko lahko zamenjaš v javascriptu na tak način:


mainPicDiv = document.getElementById('main_pic') ;
if (mainPicDiv != null)
mainPicDiv.src = pot_do_male_slikice ;

v html kodi nekje pa imaš: <img id="main_pic" ...


všeč(0) ni všeč(0) spam(0)
 
McDave 23. sep 2010 10:33:47 Pridružen od:
21. avg 2008
135 objav
47 29 0
#6

Osebno bi zadevo rešil z uporabo jQuery knjižnjice. Najbolj enostavno je, da si narediš recimo 3 classe v CSS datoteki (logoBig, logoNormal, logoSmall) in potem glede na resolucijo postaviš if, else if in else... in potem spreminjaš class. Število classov nastaviš po želji. Odvisno koliko različnih velikosti logotipov nameravaš imeti.



Če bi rad bolj podroben opis in kodo pa napiši in se bom malo bolj potrudil =)


všeč(0) ni všeč(0) spam(0)
 
esedic 23. sep 2010 10:53:14 Pridružen od:
28. nov 2007
368 objav
184 13 4
#7

Da malo natančneje razložim:



Imam tale HTML:


<h1 class="logo">
<a href="index.php"></a>
</h1>

in pa CSS:


h1.logo > a {
background:url("../images/logo.png") no-repeat scroll 0 0 transparent;
}

Kot je predlagal McDave, bi rabil narediti npr.


h1.logo_small > a {
background:url("../images/logo_small.png") no-repeat scroll 0 0 transparent;
}
h1.logo_normal > a {
background:url("../images/logo_normal.png") no-repeat scroll 0 0 transparent;
}
h1.logo_big > a {
background:url("../images/logo_big.png") no-repeat scroll 0 0 transparent;
}

Potem pa pridemo do jQuery - McDave, bi bil zelo hvaležen če imaš kakšen primer implementacije pri roki :)



Hvala vsem!


všeč(0) ni všeč(0) spam(0)
 
Lucifix 23. sep 2010 11:07:04 Pridružen od:
14. okt 2008
744 objav
438 12 0
#8

Zakaj ne zmodificiraš tisto kodo, ki sem ti jo poslal?


<script type="text/javascript">
//<![CDATA[

var screen_height = screen.height;

function sniffer() {

if(screen_height == 768) {

change('foo','image768.jpg');
}

else if (screen_height == 1024) {

change('foo','image1024.jpg');
}

else {

change('foo','image600.jpg');
}
}

function change(id, image) {
document.getElementById(id).src=image;
}
onload=sniffer;

//]]>
</script>

<img id="foo" src="" alt=""/>

Res da v tem primeru spremeni link do fotografije, ampak saj lahko spremeniš tako, da ti spremeni ime elementa.



Vir: http://www.webmasterworld.com/forum91/2601.htm


všeč(0) ni všeč(0) spam(0)
 
esedic 23. sep 2010 12:51:12 Pridružen od:
28. nov 2007
368 objav
184 13 4
#9

Hvala, Lucifix, sploh nisem šel gledat te povezave, ker sem se napalil na jQuery - bom preveril in javim.


všeč(0) ni všeč(0) spam(0)
 
 

🔒 Za odgovor na to temo se moraš prijaviti.

Prijavi se