{if} functie
Helaas loop ik tegen een probleem aan bij het programmeren.
Op de site staan 10 tallen javascripts. Deze worden door een {if} functie opgeroepen waar nodig is.
Zelf heb ik een functie geschreven wat eigenlijk continu moet functioneren.
Als ik
Code (js)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<script>
$(function(){
$(window).scroll(function(){
console.log(window.scrollY)
if(window.pageYOffset >= 100 ) {
$(".nav").css({
position: "fixed",
top: 0
});
} else {
$(".nav").css({
position: "absolute",
top: 100
});
}
});
});
</script>
$(function(){
$(window).scroll(function(){
console.log(window.scrollY)
if(window.pageYOffset >= 100 ) {
$(".nav").css({
position: "fixed",
top: 0
});
} else {
$(".nav").css({
position: "absolute",
top: 100
});
}
});
});
</script>
Groetjes Jop
Alvast dank :)
Verplaatst naar de "JavaScript" categorie en code highlighting toegevoegd.[/modedit]
Gewijzigd op 02/05/2014 10:43:29 door Wouter J
Zo werkt het inderdaad. Op de grote en officiële site zitten heel veel scripts (javascript en php)
Als ik mijn code in de head of onder de juiste div zet, werk de hele site niet meer.
Ik ben gaan zoeken, en zie dat alle javascripts worden aangeroepen door bijvoorbeeld:
Mijn vraag is, hoe werkt dit, en is dit mogelijk wat ik wil?
Gr. Jop
Ik ken deze structuur helemaal niet. Lijkt me van een template-engine af te komen?
staat dit binnen de php tags of tussen de HTML?
Dit wat hierboven staat staat binnen de head tags.
Het is inderdaad een template. Alles wat in de html gebeurt gaat langs de index.php.
Daarom werkt het javascript gedeelte niet. Alle scripts en css bestanden worden door de {if} aangeroepen.
Bij de zoomfunctie op afbeeldingen bijv.:
Code (php)
1
2
3
4
2
3
4
{if $LV_CLOUDZOOM==1}
<script type="text/javascript" src="{$http_pref}images/cloud-zoom.1.0.2.min.js"></script>
<script type="text/javascript" src="{$http_pref}images/cloud-zoom.css"></script>
{/if}
<script type="text/javascript" src="{$http_pref}images/cloud-zoom.1.0.2.min.js"></script>
<script type="text/javascript" src="{$http_pref}images/cloud-zoom.css"></script>
{/if}
Nu denk ik zelf als ik mijn functie wil invoegen, ook met de {if} moet werken, omdat hij anders de site niet meer doet laden.
Kijk eens in je browser naar de bron van de pagina
De code kan ik nu zonder dat de site blanco word onder de div plaatsen.
Het ziet er nu zo uit:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
{literal}
<script>
// DOM Ready
$(function(){
$(window).scroll(function(){
console.log(window.scrollY)
if(window.pageYOffset >= 100 ) {
$(".nav").css({
position: "fixed",
top: 0
});
} else {
$(".nav").css({
position: "absolute",
top: 100
});
}
});
});
</script>
{/literal}
<script>
// DOM Ready
$(function(){
$(window).scroll(function(){
console.log(window.scrollY)
if(window.pageYOffset >= 100 ) {
$(".nav").css({
position: "fixed",
top: 0
});
} else {
$(".nav").css({
position: "absolute",
top: 100
});
}
});
});
</script>
{/literal}
Ik ben al blij dat de site blijft draaien, alleen werkt de code niet :(
Plaats het volgende eens in je header?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<script type="text/javascript">
$(document).ready(function() {
$(window).scroll(function(){
console.log(window.scrollY)
if(window.pageYOffset >= 100 ) {
$(".nav").css({
position: "fixed",
top: 0
});
} else {
$(".nav").css({
position: "absolute",
top: 100
});
}
});
});
</script>
$(document).ready(function() {
$(window).scroll(function(){
console.log(window.scrollY)
if(window.pageYOffset >= 100 ) {
$(".nav").css({
position: "fixed",
top: 0
});
} else {
$(".nav").css({
position: "absolute",
top: 100
});
}
});
});
</script>
Dit voert jou functie uit als het document klaar is met laden.
het {if} statement heb je niet nodig tenzij je dit niet altijd wil uitvoeren.
Aan de syntax te zien draai je smarty template engine, en de laatste keer dat ik daar mee werkte deed een if in een template in essentie het zelfde als een if in php.
Let er alleen wel op dat je hem binnen je <head> plaatst maar buiten alle {if}{/if} blokken
Bedankt voor de reactie. Helaas deed hij dit ook niet, maar heb het anders kunnen oplossen.
De javascriptcode heb ik tussen {literal} tags geplaatst, waardoor de site de code wel pakt.
Bedankt allemaal voor het meedenken :)
Groetjes Jop