To pytanie może być głupie dla wielu tutaj. Robię lepki div po przewinięciu w czystym JS. Niektórzy ludzie mogą doradzić, aby zrobić to w jQuery, ale nie jestem nim zainteresowany. Potrzebuję czegoś podobnego do this. Tutaj div przesuwa się aż do góry, ale potrzebuję go mieć 60 pikseli. Zrobiłem scenariusz, ale nie działa. Czy ktoś może mi pomóc rozwiązać ten problem?JavaScript lepki div po przewinięciu
Oto mój kod.
HTML
<div id="left"></div>
<div id="right"></div>
CSS
#left{
float:left;
width:100px;
height:200px;
background:yellow;
}
#right{
float:right;
width:100px;
height:1000px;
background:red;
margin-top:200px;
}
JS
window.onscroll = function()
{
var left = document.getElementById("left");
if (left.scrollTop < 60 || self.pageYOffset < 60) {
left.style.position = 'fixed';
left.style.top = '60px';
} else if (left.scrollTop > 60 || self.pageYOffset > 60) {
left.style.position = 'absolute';
left.style.margin-top = '200px';
}
}
to co potrzebne do osiągnięcia. Lewy div musi mieć margin-top:200px
i position:absolute
podczas ładowania strony. Gdy użytkownik przewija stronę, w lewo div należy przewinąć i gdy osiągnie top:60px;
jego pozycja i margin-top powinien zmienić się position:fixed
i margin-top:60px;
Oto FIDDLE
JavaScript jest wielkość liter. 'document.getElementByID' jest niepoprawny. Powinien to być 'document.getElementById'. I masz łotra ',' na końcu tej linii. I nie zdefiniowałeś zmiennej o nazwie "left". Prawdopodobnie chciałeś użyć ciągu '" left "' – Ian
Zobacz http://jsfiddle.net/bud4S/1/ dla poprawionej wersji z poprawkami powyższego komentatora. – mash
nadal nie działa – Kishore