Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: jQuery helppiä

Smuliii [01.09.2010 00:18:28]

#

Kyseinen tapa on erittäin epäkäytännöllinen, jos listaa haluttaisiin kasvattaa, joten apua tarvitaan koska oma pätevyys ei riitä:

var tabsUl = $('#tabsNav').outerWidth(true),
	tabsLi1 = $('#tabsNav li:eq(0)').outerWidth(true),
	tabsLi2 = $('#tabsNav li:eq(1)').outerWidth(true),
	tabsLi3 = $('#tabsNav li:eq(2)').outerWidth(true),
	tabsLi4 = $('#tabsNav li:eq(3)').outerWidth(true),
	tabsLi5 = $('#tabsNav li:eq(4)').outerWidth(true),
	tabsLi6 = $('#tabsNav li:eq(5)').outerWidth(true);

var tabsLiWidths = tabsLi1 + tabsLi2 + tabsLi3 + tabsLi4 + tabsLi5 + tabsLi6;

var fillWidth = tabsUl - tabsLiWidths;

Kokeilen each-funktiota mutten saanut arvoja talteen.

Metabolix [01.09.2010 00:25:05]

#

Näyttääpä epäilyttävältä. Et kai yritä tehdä JavaScriptilla jotain asetteluasiaa, joka kuuluisi tehdä CSS:llä?

Ilmeisesti kuitenkin haet jotain tällaista:

var sum = 0;
$('#tabsNav li').each(function() {
  sum += $(this).outerWidth(true);
});
alert(sum);

Koodi on sovellettu aivan suoraan linkittämäsi sivun ensimmäisestä esimerkistä.

Smuliii [01.09.2010 00:45:53]

#

Pääsi unohtumaan tuo += täydellisesti, kiitos.

No onnistuisihan se mutta koska listan pituus vaihtelee sen täytyisi aina käydä manuaalisesti muuttamassa, joka ei mielestäni ole kovin kätevää.

Siinäpä linkki: http://demo.knarsku.com/insidesign/slider-4.html

Ilman Javascriptiä näkee mihin tarkoitukseen koodi on.

Metabolix [01.09.2010 01:23:48]

#

Voisit yksinkertaisesti laittaa taustakuvan suoraan ul-elementille, niin koko ongelma ratkeaisi ilman JS:ää ja ylimääräisiä elementtejä.

Katsopa muuten tarkemmin noita diojen ja valikon pyöristettyjä kulmia: takaa paistaa rumasti pari pikseliä valkoista.

Smuliii [01.09.2010 01:55:15]

#

Eipä taida toimia koska aktiivisen tabin "painike" täytyy olla läpinäkyvä, jotta tausta näkyisi.

Joo olen kanssa spotannut ne.

Metabolix [01.09.2010 02:50:55]

#

Jaa. Yksi järkevä ratkaisu olisi siinä tapauksessa tyyli "display: table-cell", jolla saisi li-elementit asettumaan koko leveydelle. Toinen mahdollisuus olisi asettaa taustakuva vielä erikseen aktiiviselle li:lle.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta