2015-11-16 4 views
0

Я хочу, чтобы изображение внутри div перемещалось вертикально вниз всякий раз, когда пользователь прокручивается. Он должен заканчиваться только в конце страницы. Вы использовали нижеприведенное решение скрипта из другого сообщения, однако оно не помогает.Перемещение div на свиток с чистым javascript

HTML

<div id="wrapper"> 
    <img src="images/samp_scroll.png" class="ïmage"> 
</div> 

CSS:

#wrapper { 
    position: absolute; 
} 
.image { 
    width: 560px; 
    height: 700px; 
} 

Сценарий:

window.onscroll = function (e) { 
    var vertical_position = 0; 
    if (pageYOffset)//usual 
    vertical_position = pageYOffset; 
    else if (document.documentElement.clientHeight)//ie 
    vertical_position = document.documentElement.scrollTop; 
    else if (document.body)//ie quirks 
    vertical_position = document.body.scrollTop; 
console.log(vertical_position); 
    var your_div = document.getElementById('wrapper'); 
    your_div.top = (vertical_position + 200) + 'px';//200 is arbitrary.. just to show you could now position it how you want 
} 

Что, что я здесь делаю неправильно ?? Верно ли это, хотя я мог получить значение консоли vertical_position Я не могу переместить div, используя приведенный ниже код.

var your_div = document.getElementById ("wrapper"); your_div.top = 400 + 'px';

Есть ли другой лучший способ справиться с перемещением элементов html с помощью DIV? Любые статьи, которые объясняют? Я действительно новичок в этом. Пожалуйста, помогите мне.

Добавить стиль перед верхней, работал. Однако похоже, что стиль применяется только один раз, поскольку он перемещается только один раз, когда я прокручиваю. Есть идеи.

+0

попробовать это. http://stackoverflow.com/questions/5616335/moving-div-with-scroll –

+0

Это точный фрагмент кода, который я использовал здесь, как вы видите. – Ashwin

+0

Используйте 'your_div.style.top'. –

ответ

1

Один небольшой промах, он должен быть style.top:

your_div.style.top = (vertical_position + 200) + 'px'; 
+0

Спасибо, что сделал работа. Что делать, если я хочу, чтобы мой div двигался вместе со свитком. Похоже, это только один раз! – Ashwin

+0

Попробуйте переместить этот код 'var your_div = document.getElementById ('wrapper'); your_div.top = (vertical_position + 200) + 'px'; 'после и вне' else if'. В настоящее время значение 'top' обновляется только тогда, когда значение' else if' истинно. –

+0

Не так ли? Но я вижу, что мой console.log часто обновляется каждый раз, когда я прокручиваю. Вряд ли это будет правильно? – Ashwin

0

Заменить

var your_div = document.getElementById('wrapper'); 
your_div.top = (vertical_position + 200) + 'px';//200 is arbitrary.. just to show you could now position it how you want 

с

$("#wrapper").css("top",(vertical_position + 200) + 'px'); 
Смежные вопросы