首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何控制类何时添加到jQuery滚动中的元素中

如何控制类何时添加到jQuery滚动中的元素中
EN

Stack Overflow用户
提问于 2017-09-23 11:07:05
回答 1查看 40关注 0票数 0

在滚动页面时,我使用以下javascript来添加和删除类:

代码语言:javascript
运行
复制
(function($) {
  $.fn.timeline = function() {
    var selectors = {
    id: $(this),
    item: $(this).find(".timeline-item"),
    activeClass: "timeline-item--active",
    img: ".timeline__img"
  };
  selectors.item.eq(0).addClass(selectors.activeClass);

  var itemLength = selectors.item.length;

  $(window).scroll(function() {
    var max, min;
    var pos = $(this).scrollTop();
    selectors.item.each(function(i) {
      min = $(this).offset().top;
      max = ($(this).height() + $(this).offset().top);
      if (i == itemLength - 2 && pos > min + $(this).height() / 2) {
        selectors.item.removeClass(selectors.activeClass);
        selectors.item.first().addClass(selectors.activeClass);
        selectors.item.last().addClass(selectors.activeClass);
      } else if (pos <= max - 40 && pos >= min) {
        selectors.item.removeClass(selectors.activeClass);
        $(this).addClass(selectors.activeClass);
      }

    });
  });
 }

 $("#timeline-1").timeline();

 })(jQuery);

我已经把下面的jsfiddle放在一起:https://jsfiddle.net/gpzfhwfq/,我在这里试图实现的是,一旦这个时间线上的每个元素都出现在视图中,就会添加一个类。元素是模糊的,当它们进入视野时,模糊几乎应该立即消失,但在上面的琴弦上,元素仍然模糊了相当长的一段时间,当他们已经在视线中。我如何才能使它们变得可见,而不像滚动时进入视口时那样立即模糊?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-23 14:25:10

问题在于定位和"else if“语句。活动类应针对每个项目单独删除,而不是同时删除所有项。我稍微改变了定位:

代码语言:javascript
运行
复制
    } else if (pos <= max && pos >= min - window.innerHeight + $(this).height()/2) {
        $(this).addClass(selectors.activeClass);
    } else{
        $(this).removeClass(selectors.activeClass);
    } 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46378908

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档