Page 1 of 12
Code - Fragen
Posted: Sun Nov 26, 2017 10:24 am
by lck
Kann man das auch zusammenfassen/kürzer schreiben?
Code: Select all
$(function(){
$(window).scroll(function() {
if($(window).scrollTop() >= 100) {
$('body').addClass('is-scrolled');
}
else {
$('body').removeClass('is-scrolled');
}
});
$(window).scroll(function() {
if($(window).scrollTop() >= 200) {
$('body').addClass('is-scrolled-2');
}
else {
$('body').removeClass('is-scrolled-2');
}
});
});
Re: Code - Fragen
Posted: Sun Nov 26, 2017 10:32 am
by frase
evtl. könnte toggleClass das Ganze etwas vereinfachen:
http://api.jquery.com/toggleclass/
Re: Code - Fragen
Posted: Sun Nov 26, 2017 12:37 pm
by cmb
lck wrote:Kann man das auch zusammenfassen/kürzer schreiben?
Sollte man sogar, damit nicht zwei Eventhandler bei jedem Scrollen aufgerufen werden müssen, also:
Code: Select all
$(function () {
$(window).scroll(function () {
if ($(window).scrollTop() >= 100) {
$('body').addClass('is-scrolled');
} else {
$('body').removeClass('is-scrolled');
}
if ($(window).scrollTop() >= 200) {
$('body').addClass('is-scrolled-2');
} else {
$('body').removeClass('is-scrolled-2');
}
});
});
Weiter vereinfachen kann man wohl nicht, wenn wirklich beide Klassen gebraucht werden. Es ist allerdings denkbar, dass man CSS Selektoren auf ein data-Attribut anwendet, und ggf. dessen Wert berücksichtigt:
Code: Select all
$(function () {
$(window).scroll(function () {
if ($(window).scrollTop() >= 200) {
document.body.setAttribute('data-scrolled', 2);
} else if ($(window).scrollTop() >= 100) {
document.body.setAttribute('data-scrolled', 1);
} else {
document.body.removeAttribute('data-scrolled');
}
});
});
frase wrote:evtl. könnte toggleClass das Ganze etwas vereinfachen:
In diesem Fall wohl eher nicht, da toggle() immer umschaltet, aber Scrollevents ja für 110, 120, 130 etc. aufgerufen werden könnten.
Re: Code - Fragen
Posted: Sun Nov 26, 2017 1:23 pm
by lck
cmb wrote:In diesem Fall wohl eher nicht, da toggle() immer umschaltet, aber Scrollevents ja für 110, 120, 130 etc. aufgerufen werden könnten.
Stimmt. Getestet, das geht nicht.
cmb wrote:Sollte man sogar, damit nicht zwei Eventhandler bei jedem Scrollen aufgerufen werden müssen, also:
...
Weiter vereinfachen kann man wohl nicht, wenn wirklich beide Klassen gebraucht werden.
Ich brauche alle 2 Klassen, passt danke.
Re: Code - Fragen > XH_ADM && ...
Posted: Sun Nov 26, 2017 2:05 pm
by lck
Ob man sich gerade im Admin&Edit-Mode befindet, kann mann ja so abfragen und dann etwas ausgeben:
Code: Select all
<?php if (XH_ADM && $edit):?>
<?php echo ... ; ?>
<?php endif;?>
Ist es auch möglich eine Abfrage zu erstellen, wenn man sich unter Plugins in irgendeinen Administrationsmenü befindet? So nach dem Schema:
Code: Select all
<?php if (XH_ADM && $xh_plugins):?>
<?php echo ... ; ?>
<?php endif;?>
Re: Code - Fragen
Posted: Sun Nov 26, 2017 2:25 pm
by frase
lck wrote:Ist es auch möglich eine Abfrage zu erstellen
Du weißt, dass ich nicht gerade ein PHP-Guru bin
Trotzdem möchte ich dir berichten, dass ich eine Javascript-Lösung neulich entdeckte, mit der das ganz gut geht.
Kannste sehen in der script.min.js (die noch nicht minifiziert ist) aus dem Template von
hier.
Dort ganz unten ab: // read url params
Ich bin ganz stolz auf mich, dass ich das selbst gefunden habe
Bin aber ziemlich sicher, dass mir das ein erfahrener Programmierer um die Ohren schlagen würde/wird.
Es funktioniert aber.
Du kannst also mit getUrlParameter die Parameter des gewünschten Plugins vergleichen und dann etwas ausführen.
Willst du aber unbedingt PHP haben, dann schau mal im hi_admin-Plugin in admintemplate.inc.php.
Dort wird auch in der ersten Funktion nach solchen Dingen abgefragt.
Re: Code - Fragen
Posted: Sun Nov 26, 2017 2:53 pm
by lck
Danke Frank.
Sehe gerade, dass wir
das Thema schon mal hatten. Muss ich erst noch testen, hoffe aber, es gibt eine einfachere Methode.
Re: Code - Fragen
Posted: Sun Nov 26, 2017 3:17 pm
by frase
Code: Select all
<?php
function wantsAnyPluginAdministration() {
foreach (XH_plugins(true) as $plugin) {
if (XH_wantsPluginAdministration($plugin)) {
return true;
}
}
return false;
}
if (XH_ADM && wantsAnyPluginAdministration()) {
echo 'Du befindest dich jetzt in der Pluginadministration.';
}
?>
So klappt es, wenn du dich in irgendeiner Plugin-Administration befindest.
Re: Code - Fragen
Posted: Sun Nov 26, 2017 3:57 pm
by cmb
frase wrote:So klappt es, wenn du dich in irgendeiner Plugin-Administration befindest.
Nicht schön, aber es erfüllt den Zweck.
Re: Code - Fragen
Posted: Sun Nov 26, 2017 8:22 pm
by lck
frase wrote:So klappt es, wenn du dich in irgendeiner Plugin-Administration befindest.
cmb wrote:... erfüllt den Zweck.
Danke. Ganz schön umständlich, aber wenn's funktioniert. Wie bringe ich nun die beiden zusammen, zwecks Hochzeit:
Code: Select all
<?php if (XH_ADM && $edit):?>
<?php echo ... ; ?>
<?php endif;?>
und
Code: Select all
if (XH_ADM && wantsAnyPluginAdministration()) {
echo 'Du befindest dich jetzt in der Pluginadministration.';
}