31. januar 2012 - 10:34Der er
24 kommentarer og 1 løsning
Skift af visibility på billeder med forskellige ID
Hej Jeg er i gang med en hjemmeside, hvor jeg skal præsentere en række produkter, under hver sin kategori. Min idé er, at kategorierne skal listes som en menu, og at man ved at klikke på én kategori, skifter synligheden af thumbnails for de andre produktkategorier.
Er der en venlig sjæl som kan hjælpe mig lidt på vej til at få dette til at fungere?
Uha.. du tvinger mig til at blotte mine ringe scripting-egenskaber.. Selve scriptet har jeg ingen idé om hvordan jeg skal gribe an - men jeg har forsøgt med noget værre rod i selve html-delen..
Hej keysersoze, Tak for link! Jeg har forsøgt mig med at bruge det, men jeg opnår et noget underligt resultat.. Først og fremmest, - bryder den mit gitter af billeder - hvor min ambition er at lade alle billeder beholde deres respektive pladser - dernæst, lader den til ikke at skjule billederne - og slutteligt, påvirker den kun en af mine kategorier - mens det jeg ønsker, er at den skal påvirke 3 ud af 4, ved at skjule indholdet.
Jeg håber du eller andre kan hjælpe med at kaste lys over hvad jeg gør galt?
<script type="text/javascript"> <!-- function toggle_visibility(id) { var e = document.getElementById(id); if(e.style.display == 'block') e.style.display = 'none'; else e.style.display = 'block'; } //--> </script>
Hej Michael, Som du ganske glimrende statuerer, så er jeg ganske grøn i forhold til javascripts.
Jeg har med andre ord, ikke den fjerneste anelse om hvor mange variable funktioner kan modtage, og dermed ligevidt, ingen anelse om hvordan jeg skriver en funktion, som kan modtage de tre variable jeg ønsker at påvirke.
Mit håb er, at der findes nogen derude, som måske kan række en hjælpende hånd - eller et link til en tutorial, som kan redde mig ud af mit dilemma?
Meningen er, ud fra min idé, at jeg kan klikke på et link, som skal bevirke at x antal billeder forbliver synlige, mens de resternede forsvinder. Det hele bygger på en tanke om, at man skal kunne vælge, eksempelvis kategorien "redskaber" hvorved kategorierne "tekstiler", "knive" og "tilbehør" forsvinder.
Eftersom hver kategori rummer flere produkter, var tanken så at give dem samme id, for at lade dem påvirke samtidigt.
Hej Claes.. Tak for dit indspark - dog har jeg behov for at have hvert billede for sig, for at kunne blande dem så det grafiske udtryk kommer til at passe chefen når dagen er omme..
Det er to forskellige knive.. Tanken er sådan set bare, at de skal sættes op i en gitterform, hvor billederne bliver blandet, så de står flot visuelt - og at de efterfølgende får denne toggle_visibility-funktion
min kode laver altså helt det samme - bare opdelt i grupper idet div id="kn" kun indeholder knive (du må selv vælge rækkefølgen inde i div'en)
<div id="produktindhold"> <div id="kn"> ... alle knive her </div> <div id="ac"> ... alt tilbehør her </div> <div id="tx"> ... alle tekstiler her </div> <div id="ut"> ... alle redskaber her </div> </div>
problemet er dog bare, at alle knive så indgår i samme tabel, og at der for eksempel ikke kan optræde "kniv, redskab, kniv, tekstil" på samme række i tabellen, hvis de skal kunne bruge funktionen efter hensigten?
- det skulle jeg også mene, men når engang jeg har implementeret et funktionelt script, vil jeg gerne have muligheden for, frit at opstille mine thumbs i en endnu ikke fastlagt orden. Så a lt i alt, har jeg givet hvert enkelt billede en id, for senere at kunne rykke rundt på dem.
Men som du skriver, så er der vel ikke den store praktiske forskel?
Jeg vil til enhver en tid mene at gruppering er at foretrække - nu som i fremtiden - simpelthen for at holde det overskueligt og undgå unødig kompleksitet. Det eneste der kunne gøre at andet gav mening var hvis billeder kunne ligge i flere kategorier eller at klik skulle kunne vise billeder fra flere kategorier.
Jeg er ret sikker på, at måden jeg gerne vil fortsætte, er ved at have en klassifikation, knyttet til det enkelte billede.
Når du siger "for lethedens skyld" så rammer du mig et sted hvor det gør ondt.. Efter at have læst igennem på linket, er jeg nemlig efterladt uden nogen som helst idé om, hvordan jeg skal bruge jQuery?
Igen - jeg er ganske grøn.. Beklager uhjælpeligheden!
Uanset hvilket scriptlibrary, du vælger, kan det ikke friholde dig fra at tage beslutninger.
Beslut dig til, hvordan strukturen skal være. Så er det muligt for dig at lave en god løsning. Ellers skyder du dig selv i foden. Det er en helt elementær grundregel i al programmering =)
Hej Ole Jeg er bange for at min begrundelse for ikke at have valgt et scriptlibrary, er at jeg ganske enkelt ikke har kendskab til hverken det ene eller det andet. Jeg håber dog at der findes nogen, som forstår hvor jeg vil hen, med mit visuelle udtryk og dermed kan hjælpe mig på rette vej til valg af scriptlibrary og implementering på siden..
Det er sikkert ikke svært, hvis bare du begynder at tage beslutninger. PC'en er dum som snot, så det er dig, der skal fastlægge strukturer i din kode.
At din chef så åbenbart ikke kan beslutte sig til, hvordan det skal se ud - eller at du ikke har tvunget ham til at beslutte sig - er en helt anden ting. Så må du forklare ham, at hans PC ikke er clairvoyant, men skal have nøjagtig besked
Ok.. Jeg forsøger igen med en grundlæggende forklaring på, hvad jeg ønsker at få min produkt-side til at kunne.
- den skal vise en masse forskellige produkter, i form af små billeder, som er sat op i vilkårlig orden.
- dernæst skal den have en lille menu, bestående af fire forskellige kategorier, som ved klik på hver enkelt kategori, viser billederne i den pågældende kategori, mens de tre andre kategorier skjules - men stadigvæk bevarer deres plads og udfylder samme areal på siden.
Jeg har ikke nogen helt klar idé om hvordan det skal opbygges - så alle bud er kærkommen. Det er dog vigtigt at understrege, at jeg ønsker at placere kategorierne i en blandet orden, og at jeg derfor ikke påregner at samle hver kategori i samme overordnede id eller class.
Grundlæggende består fejlen i at sætte en spejlblank til at kode siden. Men hvis din chef har en vane med at fjerne sin egen og familiens blindtarme, er der vel ikke noget at stille op i den sammenhæng =)
Du kan bruge disse to funktioner:
function showElms() { for (var i=0,j=arguments.length; i<j; i++) { document.getElementById(arguments[i]).style.display = "none"; } } function hideElms() { for (var i=0,j=arguments.length; i<j; i++) { document.getElementById(arguments[i]).style.display = "block"; } }
- som begge tager et vilkårliogt antal argumenter (id'er). Det er ikke en god eller elegant løsning ... tværtimod! Det er den løsning, der er mulig under de givne forhold
$(function() { var activeLinkClass = 'active'; var transparencyLevel = 0; var fadeTime = 400; var productLinks = $('#produktmenu a'); var productImages = $('#produktindhold a img'); productLinks.click(function(e) { e.preventDefault(); var link = $(this); productLinks.removeClass(activeLinkClass); var currentClass = link.attr('class'); var showAll = currentClass === 'all'; link.addClass(activeLinkClass); productImages.each(function(){ var img = $(this); img.fadeTo(fadeTime,( showAll || img.hasClass(currentClass) ? 1.0 : transparencyLevel )); }); }); $('#produktmenu a.all').addClass(activeLinkClass); });
Sådan skulle det øjensynligt skrives - med lidt tilføjet fade effekt..
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.