Ils ont ajouté un JavaScript personnalisé qui ajoute la classe .scrolling à l’en-tête lors du défilement. Discourse ne le fait pas par défaut (ce qui a l’air sympa !).
Vous pouvez ajouter quelque chose comme ceci à l’onglet en-tête de votre thème :
<div class="header-anchor"></div>
<script type="text/discourse-plugin" version="0.8">
if (!"IntersectionObserver" in window) return;
const { on } = require("discourse-common/utils/decorators");
const stickyClass = "sticky";
api.modifyClass("component:site-header", {
@on("didInsertElement")
stickyHeaderCheck() {
const anchor = document.querySelector(".header-anchor");
const header = this.element;
new IntersectionObserver(entries => {
if (!entries[0].isIntersecting) {
header.classList.add(stickyClass);
} else {
header.classList.remove(stickyClass);
}
}).observe(anchor);
}
});
</script>
Cela ajoutera une classe sticky à l’élément conteneur de l’en-tête et vous permettra de définir un CSS personnalisé lorsque l’en-tête est « collé » en haut lors du défilement.
J’ai besoin de quelques détails supplémentaires pour déboguer ce problème.
Votre application PWA fonctionne-t-elle si vous supprimez le code ?
L’avez-vous ajoutée à l’onglet header de votre thème ?
Quel appareil et quel système d’exploitation utilisez-vous pour tester cela ?
Oui, ajoutez l’en-tête du thème. La PWA continue de fonctionner après la suppression du code. Je l’ai testé sur un serveur sous Ubuntu 20.04, installé selon les instructions officielles, sur le site en direct, sur un appareil Android 11 et sur le navigateur Chrome sur PC.