Probier mal:
Code: Select all
<?php if ($plugin_cf['onepage']['use_javascript']):?>
<p>onepage.js loaded!</p>
<?php endif?>
Probier mal:
Code: Select all
<?php if ($plugin_cf['onepage']['use_javascript']):?>
<p>onepage.js loaded!</p>
<?php endif?>
Super, funktioniert. Danke Christoph!cmb wrote: ↑Sun Feb 10, 2019 9:20 pmProbier mal:Code: Select all
<?php if ($plugin_cf['onepage']['use_javascript']):?> <p>onepage.js loaded!</p> <?php endif?>
Bin jetzt wieder auf dieses Problem gestoßen, bei der Anpassung vorhandener OnePage-Templates für XH 1.7. Betrifft Onepage_XH1.0beta2 und ist auch unter Windows nachvollziehbar.
Verstehe ich jetzt nicht .
Pack' halt dein eigenes JS ins Template, dokumentiere es und gut ist.
Genau um diese Templates geht es, op_ihaveadream (Problembeschreibung siehe hier), op_mypiano, weiter bin ich noch nicht.
Ok, könnte ich natürlich machen und habe das auch schon ins Auge gefasst. Das ist aber für mich schon sehr aufwendig, alle älteren OnePage-Templates umzubauen. Eine Lösung ist das auch nicht wirklich.
Da gab's von mir Zustimmung in diesem Thread.Holger wrote: ↑Fri Mar 01, 2019 12:49 pmWie wäre es, wenn ich PRs machen würde
- für eine anpassbare Seitenstruktur per Template (und auch wenn nur ich das will )
- für das Laden einer alternativen onepage.js
Vielleicht etwa so: wenn in /templates/templatename/js/ eine onepage.js liegt wird diese geladen, anstatt der Datei aus dem Plugin-Ordner. Dann würde nach wie vor der Schalter Load_JS noch funktionieren.
Bei diesem Problem geht es doch darum, dass Menüpunkte und der Toplink nicht zur richtigen Position scrollen, oder? Das passiert wohl unter iOS Webkit. Nun schreibst du, es sei auch unter Windows nachvollziehbar. Mit welchem Browser/in welchen Fällen?
PRs finde ich grundsätzlich gut – allein schon, weil man dann genau sehen kann, wie etwas gedacht ist. Also bitte, ja!
Mit Chrome, Version 72.0.3626.81.
Super hilfreich – vielen Dank, Ludwig. Das Problem ist der Fix für Issue #14; das Scrollen funktioniert wie gewünscht, wenn dieser rückgängig gemacht wird:lck wrote: ↑Fri Mar 01, 2019 9:21 pmMit Chrome, Version 72.0.3626.81.
Nachvollziehbar, beim mobilen Menü (Viewport kleiner 980px).
Beispiel: befindet man sich auf der Seite "Demo-Page 6" und klickt auf den Hamburger, so scrollt erstmal fast nichts, beim 2. Klick scrollt die Seite ganz nach oben und beim 3. Klick erst, öffnet sich das Menü.
In Firefox, IE11 nicht nachvollziehbar. Toplink funktioniert in Chrome ohne Probleme.
Ich habe dazu eine Testversion online gestellt (XH 1.7.2 mit Onepage_XH 1.0beta2).
Das Problem mit dem Menü scheint aber ein BUG in Chrome zu sein (eventuell auch in iOS, Safari?), Stichwort transition max-height. Deaktiviere ich die transition, so tritt oben beschriebener Fehler nicht auf.
Andererseits, mit Onepage_XH 1beta1 läuft es ohne Probleme, wie hier zu sehen
Code: Select all
onepage.js | 12 ++++--------
1 file changed, 4 insertions(+), 8 deletions(-)
diff --git a/onepage.js b/onepage.js
index 1469bfa..933e577 100644
--- a/onepage.js
+++ b/onepage.js
@@ -106,8 +106,7 @@
* @returns {undefined}
*/
function scrollToId(id) {
- var element, master, duration, start, delta, startOffset, endOffset,
- oldOffset;
+ var element, master, duration, start, delta, startOffset, endOffset;
/**
* Calculates the easing.
@@ -135,7 +134,7 @@
* @returns {undefined}
*/
function step(timestamp) {
- var progress, offset, percentage, EPSILON = 1;
+ var progress, offset, percentage;
if (!start) {
start = timestamp;
@@ -144,10 +143,7 @@
percentage = Math.min(progress / duration, 1);
percentage = ease(percentage);
offset = percentage * delta;
- if (Math.abs(master.scrollTop - oldOffset) > EPSILON) {
- return;
- }
- oldOffset = master.scrollTop = startOffset + offset;
+ master.scrollTop = startOffset + offset;
if (progress < duration) {
window.requestAnimationFrame(step);
}
@@ -157,7 +153,7 @@
element = document.getElementById(id);
endOffset = element ? getElementTop(element) : 0;
if (typeof window.requestAnimationFrame !== "undefined") {
- oldOffset = startOffset = master.scrollTop;
+ startOffset = master.scrollTop;
delta = endOffset - startOffset;
duration = ONEPAGE.scrollDuration * Math.abs(delta) / master.scrollHeight;
if (duration) {