jquery link toevoegen?

Status
Niet open voor verdere reacties.

motower

Gebruiker
Lid geworden
10 aug 2004
Berichten
472
Hallo,
Ik heb op de website www.strongbeads.com een intro gemaakt met jquery, weet iemand hoe ik aan de verschillende foto's een link kan maken?
Heb van alles geprobeerd, maar als ik er een link op zet dan werkt het 'filmpje' niet meer.
 
Hoi motower,
Als je een link om de images zet, maak je daarvan een parent element voor de images.
Dan moeten niet meer de images door jQuery bediend worden, maar de omvattende links; overal waar IMG in het opdrachtbonnetje staat, moet nu A komen:
[JS]function slideSwitch() {
var $active = $('#slideshow A.active');

if ( $active.length == 0 ) $active = $('#slideshow A:last');

// use this to pull the links in the order they appear in the markup
var $next = $active.next().length ? $active.next()
: $('#slideshow A:first');

// uncomment the 3 lines below to pull the links in random order

// var $sibs = $active.siblings();
// var rndNum = Math.floor(Math.random() * $sibs.length );
// var $next = $( $sibs[ rndNum ] );


$active.addClass('last-active');

$next.css({opacity: 0.0})
.addClass('active')
.animate({opacity: 1.0}, 1000, function() {
$active.removeClass('active last-active');
});
}[/JS]

Maar omdat alles één etage omhoog is geschoven, moeten ook de styles aangepast worden: de opacity enz. wordt nu door de link geregeld (= incl. de opacity voor het bijpassende image), de positie van de images is nu de positie van de link geworden, enz.; de images zitten verder binnen de links, en volgen automatisch:
HTML:
<style type="text/css">

/*** set the width and height to match your images **/

#slideshow {
    position:relative;
    height:390px;
}

#slideshow a {
    position:absolute;
    top:0;
    left:0;
    z-index:8;
    opacity:0.0;
}

#slideshow a.active {
    z-index:10;
    opacity:1.0;
}

#slideshow a.last-active {
    z-index:9;
}
#slideshow a img {
    border: 0;
}
</style>
Toegevoegd: de images via de css ontdaan van hun border, dan kan de html mooi zonder het opmaak-attribuut border="0".

Tenslotte merkte ik dat het bij mij lokaal nodig was om de images hun absolute pad te geven (of dat op jouw server ook zo is weet ik niet):
HTML:
<div id="slideshow">
    <a href="http://www.strongbeads.com/Powerful_Unique_Jewellery/strongbeads.html" title="beads">
        <img src="http://www.strongbeads.com/imgs/photo/intro01.jpg" alt="Strongbeads Jewellery">
    </a>
    <a href="http://www.helpmij.nl/" title="helpie">
        <img src="http://www.strongbeads.com/imgs/photo/intro02.jpg" alt="Strongbeads Jewellery">
    </a>
    <a href="http://bliksekaters.nl/" title="bliks">
        <img src="http://www.strongbeads.com/imgs/photo/intro03.jpg" alt="Strongbeads Jewellery">
    </a>
    <a href="http://google.nl/" title="goog">
        <img src="http://www.strongbeads.com/imgs/photo/intro04.jpg" alt="Strongbeads Jewellery">
    </a>
</div>
Op deze manier schoven de links voorbij dat het een lieve lust was. En klikbaar ook. :)

Met vriendelijke groet,
CSShunter
 
Laatst bewerkt:
Helemaal super, hij gaat als een trein!
Wat zoude we toch zonder jou moeten beginnen ....... :thumb:
 
Hoi motower,
...zonder mij beginnen? Zelf diagnose stellen? :p
Hier komt de onthulling!

Mijn startpunten:
  • Ik ken de hele (gebruiksaanwijzing van) jQuery niet.
  • Ik heb Firebug voor Firefox aan boord.
  • Ik heb de Webdeveloper Toolbar voor Firefox aan boord.
  • Ik weet dat machines er in principe niet anders dan een simpele "als-dan" logica op na kunnen houden.

Mijn methode:
  • Pagina openen, rechtsklik op de slideshow en "Element inspecteren met Firebug".
  • Firebug geeft de DOM-stamboom en je ziet de elementen van de #slideshow.
  • Met gele highlights zie je wat het slider-javascript uitspookt!
  • Met de Webdeveloper Toolbar even tijdelijk javascript disablen, zodat je in Firebug kunt werken.
  • In Firebug op Bewerken klikken, en een link om een slider-img plaatsen.
  • Bewerken weer uitklikken en javascript weer aanzetten.
  • Je ziet nu dat de links niet aan/uit gezet worden door het script.
  • Vol goede moed de pagina-broncode openen en kijken hoe de jQuery-opdracht luidt.
  • Experiment of de jQuery-logica dezelfde is als de mijne: pagina downloaden en de IMG veranderen in A.
  • Firebug laat nu wel de A-opacity wisselen, maar de class="active" enz. doet het niet.
  • Met de Webdeveloper Toolbar: View CSS, en kijken hoe die class'es in elkaar zitten.
  • Die zitten op de images vastgepind, maar moeten op de links komen.
  • Dan doen we dat.
  • Kijken of het werkt: ja! :)

=======
Bonusjes
Als je met de muis op de slideshow gaat staan, komt er onder de handje-aanwijzer een tooltip: de title van de link.
Maar ... als je de muis op dezelfde positie laat staan en de link met afbeelding wisselt, dan blijft de tooltip vaak hangen op de eerdere title.
Dat maakt het volstrekt onduidelijk waar de link naar toe gaat:

sb-newsletter-tooltip.png


Eh, waar gaat dat helemaal naar toe?

De tip ligt voor de hand:
  • De links géén title geven. :)

Ook: voordat je goed en wel in je opgenomen hebt wat op een afbeelding staat, is die al weer weg. Dit wordt des te nijpender omdat de afbeeldingen een soort zoekplaatje zijn: elke afbeelding is geheel anders en de teksten staan ook op andere plaatsen. Ook daardoor heeft de bezoeker (ik tenminste) geen flauw idee waar je naar toe gaat bij een klik op de show.

De tip ligt voor de hand:
  • De wisseltijd wat langer maken. :)

Dan het menu: dat heeft veel te weinig contrast op de punten waar dit over een licht gedeelte van de background-afbeelding heen gaat, en is daar niet/nauwelijks te leen. Probleem is dat in de background alle tinten van bijna zwart naar bijna wit zitten, en je niet met een donkere letterkleur gered bent.


  • Wat je wel zou kunnen doen: achter de menu-items een semi-transparante donkere achtergrond hangen (bv. 50% zwart). :)

Met vriendelijke groet,
CSShunter
 
Daar ga ik nog even aan werken .......

P.S. 'zouden' natuurlijk met een 'n' in het eerdere bericht, shame on me!
 
Nog even ..... de titles heb ik weggehaald. Voor de rest wil de eigenaresse het (voorlopig) zo houden, maar we houden het wel in het achterhoofd, met name de navigatie. Wellicht dat ie later nog aangepast wordt.
 
motower Kwam bij toeval op dit draadje maar als ik naar [url zei:
http://www.strongbeads.com/Jewellery/newsletter.html[/url] ga en onderin klik ik op Webdesign dan gild mijn avg en blokkeert hij iets.
 
Gild mijn avg???

Ik zie hier op mijn comp. geen probleem dus dan is het altijd moeilijk te traceren. Ik ga het binnenkort ook nog wel op andere computers proberen.
 
mijn avg toe ik op je site kwam wou gewoon ff zien hou hij er uit zag en toen schoot mijn avg met venster omhoog bedreiging gevonden dus ieder die het bezoekt lrijgt dat denk ik of avg moet te zijn :d
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan