Ik heb een volgende script geschreven dat als volgt werkt:
Ik ondervind echter een drietal problemen waar ik echt niet uitkom (na alle tientallen problemen als beginner zijnde
).
-Het script is voor Wordpress, Wordpress doet niet aan relatieve links dus de href die het script afvangt is bijvoorbeeld: http://www.x.nl/y/z/index.php. Het script zet dus ook die hele link als hashtag achter het adres van de hoofdpagina. In de documentatie van jQuery(this) kan ik niet vinden hoe ik alleen het z gedeelte uit de link als hashtag eruit kan filteren.
-De cufon call werkt soms wel, soms niet. Erg vaag.
-De oude content gaat netjes weg met een fade-out, maar in plaats van dat de nieuwe content infade, krijgt de oude content een fade-in waarna zonder fade de nieuwe content geladen wordt. Ik heb toch als volgorde aangehouden dat de fade-in met nieuwe content pas uitgevoerd wordt zodra deze geladen is?
Zou iemand me verder op weg willen helpen?
Voor de gebruiksvriendelijkheid ga ik overens ook nog de backspace functie implementeren, maar eerst wil ik dit af hebben.
- het opvangen van clicks op links in het submenu ul#menu-portdyn (als een gebruiker dus geen javascript heeft aanstaan wordt simpelweg de normale link gevolgd)
- infaden #load
- content van de gelinkte pagina uit de div.article ophalen
- uitfaden oude content div{i].article[/i]
- opgehaalde content in de div.article op de huidige pagina zetten via een fade-in
- wegfaden #load
- opgehaalde link als hashtag achter de huidige paginaurl zetten
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
| $(document).ready(function() { var hash = window.location.hash.substr(1); var href = $('#menu-portdyn li a').each(function(){ var href = $(this).attr('href'); if(hash==href.substr(0,href.length-5)){ var toLoad = hash+'.php .article'; $('.article').load(toLoad) } }); $('#menu-portdyn li a').click(function(){ var toLoad = $(this).attr('href')+' .article'; $('.article').hide('fast',loadContent); $('#load').remove(); $('#wrapper').append('<span id="load">LOADING...</span>'); $('#load').fadeIn('slow'); window.location.hash = $(this).attr('href').substr(0,$(this).attr('href').length-5); function loadContent() { $('.article').load(toLoad,'',showNewContent()); Cufon.replace(".header", {fontFamily: 'Serif' }); } function showNewContent() { $('.article').show('slow',hideLoader()); } function hideLoader() { $('#load').fadeOut('slow'); } return false; }); }); |
Ik ondervind echter een drietal problemen waar ik echt niet uitkom (na alle tientallen problemen als beginner zijnde
-Het script is voor Wordpress, Wordpress doet niet aan relatieve links dus de href die het script afvangt is bijvoorbeeld: http://www.x.nl/y/z/index.php. Het script zet dus ook die hele link als hashtag achter het adres van de hoofdpagina. In de documentatie van jQuery(this) kan ik niet vinden hoe ik alleen het z gedeelte uit de link als hashtag eruit kan filteren.
-De cufon call werkt soms wel, soms niet. Erg vaag.
-De oude content gaat netjes weg met een fade-out, maar in plaats van dat de nieuwe content infade, krijgt de oude content een fade-in waarna zonder fade de nieuwe content geladen wordt. Ik heb toch als volgorde aangehouden dat de fade-in met nieuwe content pas uitgevoerd wordt zodra deze geladen is?
Zou iemand me verder op weg willen helpen?
Voor de gebruiksvriendelijkheid ga ik overens ook nog de backspace functie implementeren, maar eerst wil ik dit af hebben.