2016-08-14 1 views
0

Ich versuche glattes Scrollen auf der gleichen Seite mit PHP-Code in jQuery (versuchen, endgültige jQuery-Code mit PHP zu generieren) zu erreichen. Aber aus irgendeinem Grund nicht funktioniert, würde ich schätzen, wenn jemand die Fehler hinweisen kann oder warum es nicht funktioniertSmooth Scrolling auf der gleichen Seite funktioniert nicht

// When the Document Object Model is ready 
    jQuery(document).ready(function(){ 
    // 'scroll' is the amount of pixels destination 
    // is from the top of the document 
    var scroll = jQuery('<?php echo get_option('smooth_scroll'); ?>').offset().top; 

// When button is clicked 
    jQuery('.test').click(function(){ 
    // Scroll down to 'scroll' 
    jQuery('html, body').animate({scrollTop:scroll}, 'slow'); 
    // Stop the link from acting like a normal anchor link 
    return false; 
    }); 
}); 

Ich habe eine href Verbindung mit Klasse „test“ in ihm. Wenn diese Schaltfläche angeklickt wird, möchte ich, dass die Funktion blättern soll, um ein bestimmtes div der gleichen Seite aufzurufen [bis get_option ('smooth_scroll')] div wird von Benutzern aktualisiert).

+0

Generell sollten Sie vermeiden, Templating PHP innerhalb von Javascript oder jQuery, aber das ist eine Meinung. Damit jemand Ihnen bei Ihrem Problem helfen kann, müssen Sie den Wert ausgeben, der von get_option ('smooth_scroll) ausgegeben wird. Sie sollten sich auch die Konsole Ihres Browsers ansehen und eventuelle Fehler hinzufügen. – rdgd

+0

Ich habe "scrolltop.js: 82 Uncaught SyntaxError: fehlt) nach Argumentliste Fehler auf" .offset(). Top; " Linie –

Antwort

0

Zunächst einmal - versuchen Sie bitte die Scroll-Variablenzuweisung in dem Click-Ereignis zu bewegen:

jQuery(function(){ 
    jQuery('.test').on('click', function(e){ 
    e.preventDefault(); 
    var scroll = jQuery('<?php echo get_option('smooth_scroll'); ?>').offset().top; 
    jQuery('html, body').animate({scrollTop:scroll}, 'slow'); 
    }); 
}); 

Da zur Zeit können Sie eine Situation haben, wenn Ihr Element nicht auf seine endgültige Position ist - wie es berechnet wird Das Ereignis DOMContentLoaded, das nach dem Laden der vollständigen DOM-Struktur aufgerufen wird, aber CSS/JS/Bild-Assets, kann in diesem Moment nicht geladen werden, was sich auf das Berechnungsergebnis auswirken kann.

+0

Ich habe Ihren Punkt, aber ich bin ein bisschen neu in jQuery, so dass jede Übung, die Sie vorschlagen würden? Übrigens, ich erinnere mich an dich. Sie haben ein TinyMCE-Tutorial auf Ihrer Website und grundsätzlich habe ich von diesem Tutorial gelernt, danke :) –

+0

Wenn Sie jQuery besser verstehen möchten - lesen Sie bitte das [jQuery Enlightment free book] (http://jqueryenlightenment.com/). In Bezug auf das Tutorial - ja, ich schrieb ein paar über TinyMCE Verwendung in WordPress :) –

Verwandte Themen