{if} functie

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Jop B

Jop B

02/05/2014 10:06:07
Quote Anchor link
Hallo,

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)
PHP script in nieuw venster Selecteer het PHP script
1
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>
in de head of wel onder de juiste div plaats word de pagina wit. Dit omdat hij ergens mee een confict heeft. Nu wil ik deze via een {if} functie aanroepen. Is dit juist, of hoe kan ik dit anders doen?

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
 
PHP hulp

PHP hulp

27/11/2024 00:44:57
 
Frank Nietbelangrijk

Frank Nietbelangrijk

02/05/2014 10:52:22
 
Jop B

Jop B

02/05/2014 13:25:09
Quote Anchor link
Beste Frank,

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:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
{if $LV_navbar} en dan de link naar mijn code{/if}


Mijn vraag is, hoe werkt dit, en is dit mogelijk wat ik wil?

Gr. Jop
 
Frank Nietbelangrijk

Frank Nietbelangrijk

02/05/2014 14:08:32
Quote Anchor link
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?
 
Jop B

Jop B

02/05/2014 14:51:51
Quote Anchor link
Beste Frank,

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)
PHP script in nieuw venster Selecteer het PHP script
1
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}


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.
 
Frank Nietbelangrijk

Frank Nietbelangrijk

02/05/2014 14:56:32
Quote Anchor link
of juist buiten de if?

Kijk eens in je browser naar de bron van de pagina
 
Jop B

Jop B

02/05/2014 16:57:37
Quote Anchor link
Heb nu het volgende gedaan:
De code kan ik nu zonder dat de site blanco word onder de div plaatsen.
Het ziet er nu zo uit:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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}


Ik ben al blij dat de site blijft draaien, alleen werkt de code niet :(
 
Jacco Engel

Jacco Engel

08/05/2014 12:30:48
Quote Anchor link
Jop ,

Plaats het volgende eens in je header?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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>


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
 
Jop B

Jop B

08/05/2014 16:56:21
Quote Anchor link
Beste Jacco,

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
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.