3

私はjqueryを初めて使用し、http://www.airbnb.com/jobs/のようにブラウザの特定の位置を下にスクロールした後、divを上にスクロールして上部を修正することを検討しています。

4

4 に答える 4

5

次のデモを試す

これは、いくつかの値が変更された他の回答 ( Answer ) と同じです。ネイティブ JS ソリューション。

コードは次のとおりです。

JS:

window.onscroll=function () {
var top = window.pageXOffset ? window.pageXOffset : document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop;
var head = document.getElementById("header")
if(top > 550){
    head.style.position = "fixed";
    head.style.height="50px"
    head.style.top="0px"
    }
    else {
if(head.getAttribute("style"))
 head.removeAttribute("style")                
    }
}

HTML:

<div class="container">
  <div id="header" class="header">
    Hello World
  </div>
</div>

CSS:

.container{
 height:2000px;
 width:100%;
 background-color:yellow;
}

.header{
 text-align:center;
 background-color:red;
 height:100px;
 position:relative;
 min-height:50px;
 width:100%;
 top:500px;
}

</p>

それが役に立てば幸い

于 2012-07-24T09:26:36.277 に答える
4

次のように書きます。

$(window).scroll(function () {
                    var height = $('body').height();
                    var scrollTop = $(window).scrollTop();

                      if(scrollTop>500){
                          $('#header').css({ 'position': 'fixed', 'top' : '0' });
                    }
                      else{
                         $('#header').css({ 'position': 'relative', 'top': '500px'});
                       }
                });

これをチェックしてくださいhttp://jsfiddle.net/68eXM/14/

于 2012-07-24T10:04:14.607 に答える
2

フィドルデモ:http ://jsfiddle.net/collabcoders/PZp8R/3/

jqueryアニメーションを含めるように拡張するには、jquery、jquery.effects.core.min.js、jquery.effects.slide.min.js、およびjquery.effects.transfer.min.jsファイルを含める必要があります。

CSSでは、divの上部マージンを、アニメーションの開始点となる負の数にオフセットする必要があります。

CSS

.tophead {  
    width:100%;
    height: 100px;
    color:#fff;
    background-color:#111;
}

.container {
    height:2000px;
    width:100%;
    margin-top:-100px;
}

.header{
    text-align:center;
    background-color:#000;
    height:100px;
    position:relative;
    min-height:100px;
    width:100%;
    top:500px;
    color: #fff;
}​

あなたのJavaScriptでは、これは3秒で-100ピクセルから0までのdiv全体をアニメーション化します

Javascript

$(document).ready(function () {
    $(".container").animate({
         marginTop: "0"
    },2000);
});

$(window).scroll(function () {
    var height = $('body').height();
    var scrollTop = $(window).scrollTop();
    if(scrollTop>500){
         $('#header').css({ 'position': 'fixed', 'top' : '0' });
    } else {
         $('#header').css({ 'position': 'relative', 'top': '500px'});
   }
});

HTML

<div class="container">
    <div id="tophead" class="tophead">
      Sliding Down Container
    </div>
  <div id="header" class="header">
    Hello World
  </div>
</div>​
于 2012-07-24T09:44:52.743 に答える
0

それは簡単です..この例のように:

$(window).scroll(function () {
    var height = $('body').height();
    var scrollTop = $(window).scrollTop();
    if(scrollTop>100){
        $('#header').css({ 'position': 'fixed', 'top' : '0', 'opacity': '0.7'});
    } else {
         $('#header').css({ 'position': 'relative', 'top': '100px', 'opacity': '1'});
    }
});

http://jsfiddle.net/PZp8R/55/

于 2014-05-07T08:33:57.647 に答える