2014-10-24 4 views
0

Я хочу написать javascript-код, чтобы переместить мой текст вверх, уменьшив margin-top (по умолчанию 0), когда окно прокручивается вверх. Но когда я прокручиваю вниз, маржа-топ моего текста не равно 0. Пожалуйста помогитеКак уменьшить и увеличить маржу на прокрутке

Fiddle Example

HTML:

<div id="h"> 
    <div id="t">Hello</div> 
    <div id="content"></div> 

CSS:

#h { 
    background:green; 
    width:550px; 
    height:200px; 
    position:fixed; 
    top:0; 
    padding:50px 0 0 100px; 
} 
#t { 
    font-size:40px; 
    color:white; 
} 
#content { 
    background:blue; 
    width:550px; 
    height:700px; 
    margin:200px 0; 
    position:relative; 
} 

JS:

var pos = 0; 
var el = document.getElementById("t"); 
var m = 0; 
window.addEventListener("scroll", function() { 
    if (window.pageYOffset > pos) { 
     m -= 1; 
     el.style.marginTop = m + "px"; 
    } else { 
     m += 1; 
     el.style.marginTop = m + "px"; 
    } 
    pos = window.pageYOffset; 
}, false); 
+2

Покажите нам, что вы делали до сих пор. –

+1

Вы хотели бы объяснить, почему именно вы хотите изменить поле текста на странице прокрутки? текст пойдет в любом случае, какова ваша логика? – Banana

+0

Вы знаете, как опубликовать ссылку jsfiddle здесь, так как я здесь новичок? то я могу показать вам свой код – Pagna

ответ

1

Вам не нужно добавлять пиксель за пикселем. вы можете просто установить текст маржу непосредственно из scrollTop:

var pos = 0; 
var el = document.getElementById("t"); 
var m = 0; 
window.addEventListener("scroll", function() { 
    el.style.marginTop = -window.pageYOffset/2 + "px"; 
    pos = window.pageYOffset; 
}, false); 

Fixed Example

+0

Спасибо вам большое !!! – Pagna

+0

вас больше всего приветствуют :) Пожалуйста, подумайте о принятии моего ответа, если это поможет. (зеленый V слева) – Banana

+0

Исключена ссылка jsfiddle. пожалуйста исправьте – basZero

Смежные вопросы