我一直在尝试找到一种方法,使粘贴式标头仅应用于Shopify网站的移动版本,向下滚动时缩小标头徽标。然后滚动回最顶部时,将标题徽标调整为原始大小。当然,如果这样可以缩小移动滚动条上整个标题的大小,则有效!
最初使用此徽标,但是在完全滚动时,徽标无法正确调整为原始尺寸。相反,当在移动网站上的不同页面上浏览时,它会奇怪地变小:
$(window).scroll(function(){
if ($(this).scrollTop() > 10){
$('.site-header__logo-image img').addClass("manage_width");
}
else{
//back to default styles
$('.site-header__logo-image img').removeClass("manage_width");
}
});
我尝试了JS,CSS和HTML的变体,但到目前为止似乎还没有任何效果。如果有人拥有我们只能将其应用于移动网站的代码,我将不胜感激!谢谢!!
答案 0 :(得分:0)
我不知道您的确切设置,但听起来您需要在javascript中添加事件侦听器以检测用户何时滚动。
要更改徽标的大小,可以在滚动时向其添加一个新类。
您还必须检测用户何时滚动到顶部,以便将徽标更改回其原始大小。
代码应如下所示:
CSS
.logo {
width: 200px;
height: 100px;
}
.logo--small {
width: 100px;
height: 50px;
}
JS
// get logo
var logo = document.getElementById('logo');
// listen for scroll
window.addEventListener("scroll", function() {
// add small size class
logo.classList.add('logo--small');
// if user is at top of screen and has the small class, then remove it
if (window.scrollTop == 0 && logo.classList.contains('logo--small')) {
logo.classList.remove('logo--small');
}
});
您当然可以对类应用css转换以使其获得更好的体验,并且还可以检测用户是否在向上或向下滚动,并相应地缩放徽标,而不是在调整大小时进行简单调整用户到达最高位置。