Jquery 在滚动时更改属性,但在滚动回顶部时返回默认属性

Jquery 在滚动时更改属性,但在滚动回顶部时返回默认属性,jquery,attr,Jquery,Attr,我正在尝试更改scroll上图像的URL,我可以使用这个jQuery和一个只显示在scroll.png上的新图像来更改这个URL $( '.div img' ).attr( 'src',"scroll.png" ); } else { $( '.div img' ).attr( 'src',"no-scroll.png" ); } 工作正常,但我需要在向上滚动时将其删除,我可以使用以下操作: $( '.div img' ).attr( 's

我正在尝试更改scroll上图像的URL,我可以使用这个jQuery和一个只显示在scroll.png上的新图像来更改这个URL

        $( '.div img' ).attr( 'src',"scroll.png" );

    } else {

        $( '.div img' ).attr( 'src',"no-scroll.png" );

    }
工作正常,但我需要在向上滚动时将其删除,我可以使用以下操作:

$( '.div img' ).attr( 'src',"no-scroll.png" );
但是,我想知道的是,我是否可以使用另一种方法来显示原始图像,而不是将其添加回jQuery中,因为它已经使用PHP代码添加了,所以我不想使用jQuery将其重新添加

我是这样想的:

  $( '.div img' ).attr( 'src',"scroll.png" );

} else {

    $( '.div img' ).removeAttr( 'src',"no-scroll.png" );

}
但是当我使用removeAttr时,它会删除使用PHP代码添加的默认图像,因此可能需要使用类似return的东西

更新:默认html包含一个用于加载的属性,也许可以在jQuery中使用该属性在用户回滚时返回此图像

<img src="scroll.png" loading="lazy">

您想要的是无法通过PHP实现的DOM更改,客户端需要javascript/jquery

您可以通过jquery以多种方式实现这一点

1-有2个图像,一个有class/id noscroll,另一个有滚动条。最初,其中一个是隐藏的(通过在样式attr中添加display:none或在jquery中添加.hide()),另一个是显示的。滚动时,可切换其显示值

<div class="div">
    <img src="no-scroll.png" id="no-scroll">
    <img src="scroll.png" id="scroll" style="display: none">
</div>


<script type="text/javascript">
    if(someScrollEvent){
        $('.div #scroll').show();
        $('.div #no-scroll').hide();
    } else {
        $('.div #scroll').hide();
        $('.div #no-scroll').show();
    }
</script>

if(事件){
$('.div#scroll').show();
$('.div#无滚动条').hide();
}否则{
$('.div#scroll').hide();
$('.div#无滚动条').show();
}
2-通过PHP加载图像并设置其src时,设置一个额外的属性,即“initial src”等于图像的初始src,然后当您将src更改为no scroll并希望恢复原始src时,将其设置为初始src attr值

<div class="div">
    <img src="no-scroll.png" initial-src="no-scroll.png">
</div>


<script type="text/javascript">
    if(someScrollEvent){
        $('.div img').attr('src',"scroll.png");
    } else {
        $('.div img').attr('src',$('.div img').attr("initial-src"));
    }
</script>

if(事件){
$('.div img').attr('src','scroll.png');
}否则{
$('.div img').attr('src',$('.div img').attr(“初始src”);
}

1。在HTML源代码中输出2个我不喜欢的图像。2.如果(!someScrollEvent){$('.div img').attr('src',$('.div img').attr('src'),$('.div img').attr('initial src'));}否则{$('.div img').attr('src'),'scroll.png');}我只想在用户回滚时恢复原始图像,而无需再次加载图像。所以我需要一个方法来取消图像URL的更改,而不是一个方法来添加图像回来。这就是问题的关键所在,不过还是要谢谢你。我明白你的意思,我指出你不能这么做,因为原始图像在更改之前没有“记忆”。如果它是背景图像,您可以通过添加一个类来替换背景图像并删除类来恢复初始图像来实现这一点,但这不是您的情况。我不能在滚动回顶部时删除新图像吗?