أود أن يكون الرأس شفافًا عند أعلى الصفحة، ثم يصبح أبيض عندما يقوم المستخدم بالتمرير لأسفل.
حاولت إضافة كود JavaScript هذا في قسم “تحرير CSS/HTML” داخل وسم </body> على النحو التالي:
<script>
// عندما يضغط المستخدم لأسفل بمقدار 100 بكسل من أعلى المستند، غيّر الخلفية إلى الأبيض
$(document).ready(function($){
$(function(){
$(window).scroll(function(){
if ($(this).scrollTop() > 100){
document.getElementsByClassName("d-header").style.backgroundColor = "white";
document.getElementsByClassName("d-header").style.boxShadow = "0 1px 8px rgba(0,0,0,0.18)";
} else {
document.getElementsByClassName("d-header").style.backgroundColor = "transparent";
document.getElementsByClassName("d-header").style.boxShadow = "unset";
}
});
});
});
</script>
لكن يبدو أن هذا لا يعمل. هل لديك أي أفكار؟
أفضل حالًا أن يحدث هذا التغيير في نفس الوقت الذي يصل فيه الصفحة إلى #main-outlet ويتحول .d-header إلى وضع التموضع الثابت، لكنني لا أعرف كيفية القيام بذلك.
إعجاب واحد (1)
I managed to get this working well enough.
js:
<script>
var dHeaderWhite = document.createElement('style');
dHeaderWhite.innerHTML = `
/*.docked. .d-header {
position:fixed;
}*/
.d-header {
background-color: white;
box-shadow: 0 1px 8px rgba(0,0,0,0.18);
-webkit-animation: fadein 0.5s;
animation: fadein 0.5s;
}`;
var dHeaderTransparent = document.createElement('style');
dHeaderTransparent.innerHTML = `
/*.docked .d-header {
position:absolute;
}*/
.d-header {
background-color:transparent;
box-shadow: unset;
-webkit-animation: fadeout 0.5s;
animation: fadeout 0.5s;
}`;
// When the user scrolls down the document, change from transparent background to white
$(document).ready(function($){
$(function(){
$(window).scroll(function(){
if ($(".extra-info-wrapper")[0]) {
// White if class exists
document.head.appendChild(dHeaderWhite);
} else if ($(this).scrollTop() > 150) {
// class doesn't exist but user has scrolled
document.head.appendChild(dHeaderWhite);
} else {
// Transparent if class doesn't exist
document.head.appendChild(dHeaderTransparent);
}
});
});
});
</script>
css:
.d-header {
background-color: transparent;
box-shadow:unset;
}
.d-header-icons .d-icon {
color: #9c9c9c;
}
I want the header to start off as scrollable and switched to fixed on scroll, but this doesn’t work yet. I’ll keep hacking away.
إعجاب واحد (1)