2017-02-09 3 views
0

Ich style eigentlich meine App. Ich habe Container zwischen meiner Kopfzeile und Fußzeile, wenn ich die Seite blättern, wenn der Container die Kopfzeile erfüllt, möchte ich die Position geändert von relativ zu ändern.Ändern Sie die Position meines div-Container basierend auf Bildlauf

Anfangseinstellung:

.div { 
     position: relative; 
     zoom: 1; 
     z-index: auto; 
    } 

einmal der div Container ist neu der Header i die Position des div auf feste geändert werden soll.

.div { 
     position: fixed; 
     zoom: 1; 
     z-index: 1; 
     top: 0px; 
     padding-top: 10px; 
     left: 400px; 
    } 

Wie erreiche ich das? kann mir helfen.

danke.

+0

"wenn der Container den Header trifft" - was bedeutet das? "sobald der div container neu ist der header" - was heißt das? Und wo ist dein Markup? –

+0

Mein Header ist behoben. wenn ich nach oben scrolle, scrollt mein div-container auch hoch und wenn es darum geht, den unteren Teil meines Headers zu treffen. Ich möchte, dass die Position des Div-Containers geändert wird. – user7508299

+0

Jetzt verstehe ich Ihre Frage, und ich aktualisierte meine Antwort, bitte überprüfen Sie es – imudin07

Antwort

0

Verwenden onscroll für Behälter:

<div class="div" id="content" onscroll="onScroll()"> 
... 
<div id="container"></div> 
... 
</div> 

Sie haben Javascript zu verwenden und überprüfen, ob der Behälter den Header oder nicht erfüllt:

function onScroll() { 
    var content = document.getElementById('content'); 
    var container = document.getElementById('container'); 
    var scrollTop = content.scrollTop; 
    var elOffsetTop = container.offsetTop; 
    var elHeight = container.offsetHeight; 
    if ((scrollTop > elOffsetTop)&&(scrollTop<elOffsetTop+elHeight)) { 
     content.classList.add("on-top"); 
    } else { 
     content.classList.remove("on-top"); 
    } 
    } 

Und in CSS:

.on-top { 
    position: fixed; 
    ... 
} 

Hier ist ein Beispiel: https://jsfiddle.net/en7Lf2wz/6/

Verwandte Themen