2015-06-14 36 views
7

Ancora lavorando sul mio sito: http://i333180.iris.fhict.nl/p2_vc/Javascript smoothscroll non funziona

C'è un pulsante per spostarsi verso il basso TE pagina, l'azione è immediata ma scorrimento continuo è molto più bello.

Così, ho cercato su google, e lo script più breve che ho trovato è questo su: Ma non riesco a farlo funzionare.

$(function() { 
     $('a[href*=#]:not([href=#])').click(function() { 
     if (location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'') && location.hostname == this.hostname) { 

      var target = $(this.hash); 
      target = target.length ? target : $('[name=' + this.hash.slice(1) +']'); 
      if (target.length) { 
      $('html,body').animate({ 
       scrollTop: target.offset().top 
      }, 1000); 
      return false; 
      } 
     } 
     }); 
    }); 

Rif: https://css-tricks.com/snippets/jquery/smooth-scrolling/

Ecco come ho aggiunto al mio codice tra

<head> 
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> 
    <script> 
    $(function() { 
     $('a[href*=#]:not([href=#])').click(function() { 
     if (location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'') && location.hostname == this.hostname) { 

      var target = $(this.hash); 
      target = target.length ? target : $('[name=' + this.hash.slice(1) +']'); 
      if (target.length) { 
      $('html,body').animate({ 
       scrollTop: target.offset().top 
      }, 1000); 
      return false; 
      } 
     } 
     }); 
    }); 
    </script> 
    </head> 

Button:

<body> 
    <a id='button_down' href='#section' onclick="document.getElementById('moodvideo').pause()"><img src='scroll.png' alt='Scroll'></a> 
</body> 

ho controllato l'esempio è stato dato alle streghe sito e ha aggiunto che allo stesso modo per il mio html. Rif ispezionato link: https://css-tricks.com/examples/SmoothPageScroll/ ma non posso farlo funzionare ..

Inoltre, ho un altro script, strega ha bisogno della stessa azione, dopo la fine di un video. script per che ora è:

<script> 
     function videoEnded() { 
      window.location.href="#section"; 
     } 
    </script> 

Questo ha a che fare la stessa cosa; scorrere bene.

Spero di averlo spiegato in modo comprensibile, in caso contrario, mi piacerebbe provare di nuovo. Saluti

EDIT sceneggiatura isnt aggiunto al sito on-line perché lo script isnt lavorando ancora, se lo renderebbe easer potrei aggiungere online.

aggiornamento sito è online con gli script non lavorano

risposta

2

Lo script funziona sui link la vostra copia dal vivo come destinato, in modo da credo significa la tua funzione videoEnd().

Lo script di scorrimento uniforme trovato funziona solo per i tag di ancoraggio (<a>).

Come window.location.href = "#section" non è un tag di ancoraggio, non verrà modificato dallo script.

Quello che puoi fare è prendere i bit importanti di quello script e usarlo nella tua funzione videoEnd() in questo modo.

function videoEnded() { 
 
    $('html,body').animate({ 
 
     scrollTop: $("#section").offset().top 
 
    }, 1000); 
 
}

EDIT:

La ragione non sta funzionando per voi è perché si sta navigando la pagina utilizzando il protocollo file:// e la fonte script che collega a jQuery è

//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js

Quale utilizza lo // schema relativo, il che significa che il browser aggiungerà il sistema di navigazione corrente, trasformandolo in questo ..

file://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js

che non esiste. Se si specifica http:// funzionerà

http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js
0

Questo pezzo di <script> è molto meglio:

$(document).ready(function() { 
    $("a[href*='#']").on("click", function(event) { 
     event.preventDefault(); 
     var href = event.target.href; 
     href = href.slice(href.indexOf("#"), href.length); 
     $("body").animate({ 
      scrollTop: $(href).get(0).offsetTop 
     }, 1000); 
    }); 
}); 
Problemi correlati