【问题标题】:Is there a way for changing different images at different scrolling point?有没有办法在不同的滚动点更改不同的图像?
【发布时间】:2019-10-26 03:13:41
【问题描述】:

我试图在滚动页面时一次更改一张图像。 当我们到达滚动的那个点时,这段代码实际上改变了所有的图像类。 有没有其他方法可以在滚动时单独更改图像?

谢谢。

jQuery(function($) {
    var show = $(".show");
    var hide = $(".hide");
    $(window).scroll(function() {    
        var scroll = $(window).scrollTop();

        if($(window).scrollTop() >= 500){
            show.removeClass('show').addClass("hide");
            hide.removeClass('hide').addClass("show");
        } else {
          show.removeClass("hide").addClass('show');
          hide.removeClass('show').addClass("hide");
        }

    });
});

【问题讨论】:

  • 我需要查看小提琴或 HTML 结构。但与此同时,我会发布一个可能的解决方案。
  • 您的代码中有一个断点,请记住滚动事件触发太频繁,因此,您的 show 类被更改为隐藏,然后是 new hide 类改回show,然后一切都变为show,反之亦然。

标签: javascript jquery css scroll


【解决方案1】:

由于您正在检查windowhiding/showing 的滚动位置,这将hide/show 具有指定类名的所有元素。

为达到您的目的,请将 css position: relative 添加到所有图像(如果尚未指定 position),

然后,按如下方式遍历每个图像...

jQuery(function($) {
    //var show = $(".show");
    //var hide = $(".hide");
    $(window).scroll(function() {    
        /*var scroll = $(window).scrollTop();

        if($(window).scrollTop() >= 500){
            show.removeClass('show').addClass("hide");
            hide.removeClass('hide').addClass("show");
        } else {
          show.removeClass("hide").addClass('show');
          hide.removeClass('show').addClass("hide");
        }*/
        var images = $('img');//or any other selector
        $.each(images, function () {
            if($(this).offset().top <= -500) {
                $(this).hide();
            }
            else {
                $(this).show();
            }
        });

    });
});

【讨论】:

  • 您好,谢谢您的回答,我正在一个带有图像和类的 WordPress 项目中工作,有 3 个图像,我的目标是当我滚动过去第一个图像时,它会变为动画,然后滚动到第二个并发生相同的效果,依此类推。我正在使用类,但我遇到了上述问题,使用此代码图像闪烁但实际上并没有改变。如果您需要任何代码来帮助理解我可以在这里粘贴的结构。
  • 我假设您为 .hide.show 类定义了一些动画?如果是这种情况,您需要在添加 show 类之前设置一个超时,以允许第一个动画在开始第二个动画之前运行到最后。如果我能看到一些 HTML/CSS,那么我将能够提出更好的解决方案
  • 嘿,我用我正在使用的代码创建了一个 pastebin,希望它对 pastebin.com/GfL10t9m 有所帮助。谢谢
猜你喜欢
  • 1970-01-01
  • 2020-04-24
  • 1970-01-01
  • 2020-09-23
  • 1970-01-01
  • 2012-11-27
  • 2012-05-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多