Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/463.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在向下滚动时添加不同的徽标?_Javascript_Css - Fatal编程技术网

Javascript 如何在向下滚动时添加不同的徽标?

Javascript 如何在向下滚动时添加不同的徽标?,javascript,css,Javascript,Css,我已经做了一个页面,其中有一个透明的标题和白色的标志。 但当我向下滚动时,我的徽标不可见,因为车身颜色为白色。我想在向下滚动时添加黑色徽标。怎么做 这是我的密码 $(window).on('scroll', function () { if ($(this).scrollTop()) { $('.navbar').addClass("shrink"); //$('.navbar-brand img').attr('src', 'images/logo.png'); }else{

我已经做了一个页面,其中有一个透明的标题和白色的标志。 但当我向下滚动时,我的徽标不可见,因为车身颜色为白色。我想在向下滚动时添加黑色徽标。怎么做

这是我的密码

$(window).on('scroll', function () {
if ($(this).scrollTop()) {
    $('.navbar').addClass("shrink");
    //$('.navbar-brand  img').attr('src', 'images/logo.png');
}else{
    $('.navbar').removeClass("shrink");
    //$('.navbar-brand  img').attr('src', 'images/logo.png');
}
});

但是它不起作用

看看这个,它会帮你的

$(函数(){var logo=$(“.lrg logo”);$(窗口)。滚动(函数(){
var scroll=$(窗口).scrollTop();
如果(滚动>=500){
如果(!logo.hasClass(“sml logo”)){
logo.hide();
logo.removeClass(“lrg-logo”).addClass(“sml logo”).fadeIn(“慢”);
}
}否则{
如果(!logo.hasClass(“lrg logo”)){
logo.hide();
logo.removeClass(“sml logo”).addClass(“lrg-logo”).fadeIn(“慢”);
}
}
});
});
.wrapper{
高度:2000px;
位置:相对位置;
背景:绿色;
}
标题{
位置:固定;
宽度:100%;
高度:50px;
背景:灰色;
}
.lrg标志{
宽度:300px;
高度:50px;
文本对齐:居中;
背景:红色;
}
.sml标志{
宽度:200px;
高度:20px;
文本对齐:居中;
背景:红色;
}

标志

您需要添加滚动量。用这个替换你的代码

$(window).on('scroll', function () {
if ($(this).scrollTop() > 70) { // Set position from top
    $('.navbar').addClass("shrink");
    //$('.navbar-brand  img').attr('src', 'images/logo.png');
}else{
    $('.navbar').removeClass("shrink");
    //$('.navbar-brand  img').attr('src', 'images/logo.png');
}
});

希望它能起作用。谢谢

scrollTop
将返回一个值,而此行
if($(this).scrollTop())
将查找布尔值

因此,在循环条件中测试该值

if ($(this).scrollTop()===someNumber) {
//rest of code
}

试试这个:

$(窗口)。滚动(函数(){
如果($(this).scrollTop()>70){
$('#header img').attr('src','https://upload.wikimedia.org/wikipedia/commons/thumb/f/fa/Apple_logo_black.svg/600px-Apple_logo_black.svg.png');
}
否则{
$('#header img').attr('src','https://www.seeklogo.net/wp-content/uploads/2012/12/apple-logo-eps-logo-vector-400x400.png');
}
})
正文{
高度:1500px;
}
#标题{
高度:70像素;
背景色:#ccc;
位置:固定;
宽度:100%;
左:0;
排名:0;
}  
#收割台img{
宽度:50px;
}

谢谢兄弟,工作顺利。:)别忘了删除注释行(我很高兴:)@dipankardas此解决方案存在问题<代码>滚动
事件随页面中的每个滚动动作一起激发。如果您从
scrollTop=90
移动到
scrollTop=120
,您的条件将得到满足,img更换代码将运行,即使它不应该运行,因为徽标已经更改。您需要添加一些控件,以便仅当值从<70变为>70时检测更改,或者当值从<70变为>70时检测更改。如果
$(this).scrollTop()
从未获取值
someNumber
,该怎么办?当使用鼠标滚轮滚动时,
scrollTop
的值将跳跃大约25个单位,因此可能永远不会满足条件,即使用户实际滚动到OP希望更改徽标的点以下。