links achter AP-elements werken niet meer

  • Onderwerp starter Onderwerp starter HeerJ
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

HeerJ

Nieuwe gebruiker
Lid geworden
6 nov 2009
Berichten
4
Ik heb in Dreamweaver CS3 een website met spry-effecten gemaakt, waarbij een AP-element verschijnt als je de cursor boven een plaatje houdt (met het effect appear/fade). Maar de links die tijdelijk achter het AP-element verscholen zaten werken na het weer verdwijnen van het AP-element niet meer. Als de link er half achter zat, werkt de helft nog. Snapt iemand hoe dat komt en nog beter wat ik er aan kan doen?

Website is voorlopig te zien op http://www.buizermelman.nl, over een paar dagen op http://www.catherinatuyp.nl

Effect is bijvoorbeeld te zien op http://www.buizermelman.nl/Vrijwerk/Boom.html. De link 'contact' rechtsboven werkt niet meer nadat je de cursor boven een van de plaatjes hebt gehouden. Na vernieuwen van de pagina doet alles het weer.
 
Laatst bewerkt:
Hoi HeerJ,
Snapt iemand hoe dat komt ...
Als ik het zo bekijk, komt het omdat de eerste keer de hover-images #apDiv1 t/m #apDiv8 niet getoond worden via het css-voorschrift { visibility: hidden; } dat hiervoor telkens in de <head> is opgenomen.
Het spry-menu maakt vervolgens het betreffende schilderij zichtbaar door eerst het element een Opacity=0 te geven (helemaal doorzichtig), dan de visibility op "visible" te zetten (maar door de Opacity=0 is er nog niets te zien), en dan via het Spry-javascript het getal 0 van de Opacity langzaam op te hogen naar 1 (helemaal ondoorzichtig) = zo gaat het infaden.
Het uitfaden gaat analoog: de Opacity tuft weer van 1 naar 0 terug, en de visibility wordt weer op "hidden" gezet.

Als het goed is. Maar de error-console van de Firefox Webdeveloper Toolbar geeft aan dat er fouten in het javascript van het Spry-menu zitten. :(
Ik vermoed dat het script bij het uitfaden blijft hangen nadat de Opacity op 0 is gezet, en dat dan de visibility niet meer teruggezet wordt naar "hidden". Dan is de de afbeelding er wel op de pagina, en door de z-index in een laag boven de Contact-link (!), maar volledig transparant. Daardoor is de link dan onbereikbaar geworden, terwijl de pagina er op het oog hetzelfde uitziet als voordat de hover plaatsvond.

... en nog beter wat ik er aan kan doen?
  1. De echte oplossing is het javascript van het Spry-menu induiken, en daar verbeteringen in aanbrengen. - Voor mij is dat te ingewikkeld.
  2. Maar zie ook PS-2!
  3. Als simpele css-ziel zie ik wel een work-around als je het Spry-gebeuren wilt handhaven: de Contact-link niet op die plaats zetten. :)
    Heel plausibel, en niet verkeerd in het design, lijkt me om de Contact-link direct onder de "Terug" link aan de linkerbovenkant te situeren. Of, beter nog, de Contact-link bovenaan, en de Terug-link in de regel eronder (dat is maar een hulpfunctie die niet persé nodig is). Misschien ook in een wat kleinere lettergrootte. Want voor mij vraagt in elk geval het "Terug" (als eerste element op de pagina) veel te veel aandacht t.o.v. de rest. Het eerste wat ik opmerk, moet niet zijn dat ik terug moet! ;)
Met vriendelijke groet,
CSShunter

PS-1:
Als de hover-afbeeldingen iets minder hoog worden, past de pagina ook prettig op een resolutie van 1024x768 (die nog veel in omloop is).

PS-2:
Het hover-effect is veel eenvoudiger met een css-hover te bereiken, zonder javascript. Voorbeeldje: zie hier.
Dit kan desgewenst aangevuld worden met een fade-in/fade-out script, maar dat kan een heel kort eenvoudig scriptje zijn. Voordelen: dan is het zware Spry-script helemaal niet nodig (2470 regels en 75kB! :shocked: ), en bezoekers zonder ingeschakeld javascript kunnen de grote afbeeldingen ook zien, zij het zonder de verfraaiing van het in- en uitfaden.
 
Ga ik maar eens proberen!

Hoi CSShunter,

Bedankt voor je uitleg en tips. :thumb:Klinkt plausibel. In het script ga ik ook niet rommelen, daar had ik nu juist Dreamweaver voor. Als DW inderdaad foute scripts genereert moet ik dat maar eens aan Adobe doorgeven. De validator van DW gaf in elk geval geen fouten aan. Misschien hebben ze bij het ontwikkelen geen rekening gehouden met idioten die links achter hovers laten verdwijnen. Maar misschien is er ook wel een fout ingeslopen die ik 150 keer gekopieerd heb.
Verplaatsen van de contactlink levert voor die link een oplossing, maar niet voor de andere links. Je PS-2 had ik al gevonden. Ga ik maar eens uitproberen.

Groeten, HeerJ
 
Laatst bewerkt:
P.S. Dat zware spryscript komt doordat Dreamweaver alle Spry-effecten in 1 script staan, dus als je 1 effect gebruikt krijg je een script met alle effecten:(. Daardoor is het ook zo ingewikkeld om aan te passen.

groeten,
HJ
 
Dat zware spryscript komt doordat Dreamweaver ... enz.
Precies!
Script weegt 4,2kB (i.p.v. 75kB), plus het voordeel dat de plaatjes ook zichtbaar worden (maar dan alleen aan/uit) als javascript uit staat.
Is dat iets?

Met vriendelijke groet,
CSShunter

PS: Bij het genoemde "unobtrusive javascript" (bescheiden/dienstbaar javascript) gaat het er om dat alle script-zaken volledig van de html gescheiden worden, en alles ook werkt zonder javascript: want javascript hoort voor aanvullende functionaliteit te zorgen om de bezoeker te plezieren. En niet om de bezoeker zonder javascript te pesten met een onbruikbare en/of ontoegankelijke website! ;)
Het in de link gebruikte javascript is nog geen 100% zuiver unobtrusive javascript (in de html komen nog de script-opdrachten onmouseover en onmouseout voor e.d.). Maar aan het hoofdcriterium is voldaan: het script kan prima gemist worden zonder dat de pagina waardeloos wordt.
 
Groots!

Ha CssHunter,

Geweldig voorbeeld, ga ik zeker gebruiken (wel eerst weer even tijd krijgen). Links erachter werken ook nog na het wegfaden. Super :thumb::thumb: Kan ik meteen kijken of ik de site ook beter voor verschillende schermformaten kan opmaken.

Bedankt en groeten,
HeerJ
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan