修复了带有HTML和CSS的滚动页面上的横幅

时间:2013-07-10 09:24:20

标签: javascript jquery html css

我需要创建一个横幅占位符,它需要与页面一起向上滚动,直到它到达浏览器的顶部边缘,然后它应该固定在顶部。当页面向下滚动时,横幅还需要再次滚动页面。我不确定我是否足够清楚,所以你可以在Watch Critic看到这个例子。你会注意到右栏中的横幅就像我描述的那样。

我没有使用JavaScript的经验,所以只能用HTML和CSS实现吗?

2 个答案:

答案 0 :(得分:0)

活生生的例子:http://jsfiddle.net/KXXhQ/

您需要使用jQuery的scroll事件,然后在标题中添加一个新类以修复它:

<强>的jQuery

  //by default, the static menu is hidden
  var showStaticMenuBar = false;

  //when scrolling...
  $(window).scroll(function () {

      //if the static menu is not yet visible...
      if (showStaticMenuBar == false) {
          //if I scroll more than 200px, I show it 
          if ($(window).scrollTop() >= 200) {
              //showing the static menu
              $('#header').addClass('fixed');

              showStaticMenuBar = true;
          }
      }
      //if the static menu is already visible...
      else {
          if ($(window).scrollTop() < 200) {
              $('#header').removeClass('fixed');

              //I define it as hidden
              showStaticMenuBar = false;
          }
      }
  });

<强> CSS

#header{
    display:block;
    width: 100%;
    height:50px;
    background: #ddff00;
}
#header.fixed{
    position:fixed; 
    top: 0;  /*fixing it at the top*/
    z-index: 999;  /* over any other element*/
}

活生生的例子:http://jsfiddle.net/KXXhQ/

答案 1 :(得分:0)

This是如何在CSS中设置要修复的位置的。如果要实现更多行为,可以将它们定义为CSS类,当需要更改行为时,只需使用jQuery添加和删除类。