Permalänk

JQuery cycle

Använder cycle för att visa ett bildspel och det funkar fint. Försöker dock dölja alla bilder förutom första när bilderna laddas, så man slipper fina, rullande bildladdningar.

Jag printar ut bilderna såhär:

<div id='topimage_show'> <?php foreach ($node->field_topimage_front as $i => $img): ?> <div id='topimage_<?php print $i+1; ?>' class='topimage_wrapper'> <?php print $img["view"]; ?> </div> <?php endforeach; ?> </div>

De är absolut positionerande på varandra.

Tänkte att kanske ett snabbt JQuery skulle fixa det.

$(".topimage_wrapper:not(:first)").hide();

Men verkar inte som det. Någon som har en idé?

Finns det nån css jag kan skriva som sätter display:none; på #topimage_2, #topimage_3, osv?

Permalänk
Medlem

nä, inte om du inte skriver en sån funktion i PHP.
det du istället kan göra är att lägga till en klass, exempelvis 'hidden' på alla divvar utom den första. Nåt i den här stilen kanske

<div id="topimage_show"> <?php $first=true; foreach ($node->field_topimage_front as $i=>$img): ?> <div id="topimage_<?php echo $i+1?>" class="topimage_wrapper<?php if ($first) {echo ' hidden'; $first=false;}?>"> <?php echo $img['view']; ?> </div> <?php endforeach; ?> </div>

Använd förresten dubbla citationstecken runt attributvärden i HTML. Det är mer standardenligt.

Visa signatur

Kom-pa-TI-bilitet

Permalänk

<?php if ($first) {$first=false;}else{print ' hidden';}?>

i så fall.

Och detta fungerade ju bra, borde gjort såhär från början istället för att börja lösa det från andra håll med jquery osv. Lite sömn inatt gjorde sitt...

Permalänk
Medlem

Du kan ju göra det med JQuery också genom att loopa igenom alla element med din angivna klass och sen gömma alla förutom den första.

Visa signatur

Asus P6X58D-E, Intel i7 930, Corsair XMS3 DDR3 PC12800/1600MHz CL9 3x2GB, Intel X25-M G2 80GB, Samsung SpinPoint F3 1TB, Sapphire Radeon HD5770 Vapor-X, Corsair HX650, Noctua NH-D14, Fractal Design Define R2

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Cloudburst

<?php if ($first) {$first=false;}else{print ' hidden';}?>

i så fall.

Och detta fungerade ju bra, borde gjort såhär från början istället för att börja lösa det från andra håll med jquery osv. Lite sömn inatt gjorde sitt...

Jag tänkte lite bakvänt. Idén var något i stil med if ($first) {echo ' visible'; $first=false;} och sen sätta div-arna till display:none som standard.
PS. echo är tuffare än print... och några procent snabbare

Visa signatur

Kom-pa-TI-bilitet

Permalänk

echo är extremt marginellt snabbare (vid normal användning), och inget man behöver bry sig om. Kanske om du printar ut några miljor gånger i en loop...

Jag har börjat köra print istället för echo för omväxlings skull. Tycker det låter mer oldskool.