jquery - 粘性菜单 - 如何让图像在 "sticks"时立即显示?

标签 jquery html css

我有一个粘性菜单栏,当它滚动到我放置 anchor 的标题下方时,它就会开始粘住。

它运行良好,但我希望在它开始“粘住”后在其左侧显示一个图像。我在 newyorker.com 上看到了同样的效果。

我该怎么做?

这是我的代码,让它坚持下去:

$(window).scroll(function(e) {
   var scroller_anchor = $(".scroller_anchor").offset().top;

   if ($(this).scrollTop() >= scroller_anchor && $('.scroller').css('position') != 'fixed')
   {    
      $('.scroller').css({
         'position': 'fixed',
         'top': '0px'
      });

      $('.scroller_anchor').css('height', '50px');
   }
   else if ($(this).scrollTop() < scroller_anchor && $('.scroller').css('position') != 'relative')
   {    

      $('.scroller_anchor').css('height', '0px');

      $('.scroller').css({
        'position': 'relative'
      });
   }
});

最佳答案

CSS 为您做这件事.. 只需在“粘贴”时将类 showed 添加到图像中,然后在不“粘贴”时将其删除

CSS

.home_image{
    display: none;
    float: left;
    height: 50px;
    width: 50px;
}

.home_image.showed{
    display: block;
}

JavaScript

$(window).scroll(function(e) {
   var scroller_anchor = $(".scroller_anchor").offset().top;

   if ($(this).scrollTop() >= scroller_anchor && $('.scroller').css('position') != 'fixed')
   {    
      $('.scroller').css({
         'position': 'fixed',
         'top': '0px'
      });

      $('.home_image').addClass('showed');

      $('.scroller_anchor').css('height', '50px');
   }
   else if ($(this).scrollTop() < scroller_anchor && $('.scroller').css('position') != 'relative')
   {    

      $('.scroller_anchor').css('height', '0px');

      $('.scroller').css({
        'position': 'relative'
      });

      $('.home_image.showed').removeClass('showed');
   }
});

另一种不加类的方式:

CSS

.home_image{
    display: none;
    float: left;
    height: 50px;
    width: 50px;
}

JavaScript

$(window).scroll(function(e) {
   var scroller_anchor = $(".scroller_anchor").offset().top;

   if ($(this).scrollTop() >= scroller_anchor && $('.scroller').css('position') != 'fixed')
   {    
      $('.scroller').css({
         'position': 'fixed',
         'top': '0px'
      });

      $('.home_image').css({
        'display': 'block'
      });

      $('.scroller_anchor').css('height', '50px');
   }
   else if ($(this).scrollTop() < scroller_anchor && $('.scroller').css('position') != 'relative')
   {    

      $('.scroller_anchor').css('height', '0px');

      $('.scroller').css({
        'position': 'relative'
      });

      $('.home_image').css({
        'display': 'none'
      });
   }
});

关于jquery - 粘性菜单 - 如何让图像在 "sticks"时立即显示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31528536/

相关文章:

jquery - OnClick,显示div,然后跳转到正确的位置

html - 如何删除 ionic 中每个单词后的换行符

css - 使用浏览器大小调整 div 的大小? (不是一个简单的问题)

css - vue-路由器 : how to remove underline from router-link

当嵌套在动态添加的 <div> 中时,JavaScript 事件不会触发

javascript - 使用 jQuery 加载脚本

java - 将 jquery-ajax 与 play 2.0 框架结合使用

Jquery Mobile 不会隐藏元素

javascript - 如何在JQuery中获取总数

jquery 序列淡出然后删除