2015-01-26 6 views
0

Итак, я определенно новичок в js, и это, вероятно, просто, но я не знаю, почему это не работает. Я пытаюсь получить div, чтобы появиться, когда страница Y Offset больше 30, но она не работает.window.pageYOffset не работает в Chrome

// JS ниже

var x = document.getElementById('play'); 
var ypos = window.pageYOffset; 

var see = function() { 
    if (ypos > 30) { 

    x.style.opacity = 1; 

    } else { 

     console.log('not working'); 
    } 
} 

window.addEventListener("scroll", see); 

ответ

2

Поскольку первоначальный YPos является 0.It не updating.It остается нулевой все время независимо от того, сколько вы перечисляете down.To обновить его, он должен быть внутри функция see(). Каждый раз, когда вы прокручиваете окно, оно будет обновляться. И это работает. Не путайте его с инструкцией «не работает». Это было просто потому, что переменная ypos была присвоена тому же значению «0». Посмотрите на мой пример. Я изменил его. Он установит непрозрачность до 0,4 при ypos>30

var x = document.getElementById('play'); 
 

 

 
var see = function() { 
 
var ypos = window.pageYOffset; 
 
    if (ypos > 30) { 
 

 
    x.style.opacity = '0.4'; 
 

 
    } else { 
 

 
     alert('scrolled more than 30 !!'); 
 
    } 
 
} 
 

 
window.addEventListener("scroll", see);
<div style='width:600px;height:2000px;background:red;border:1px solid black;' id='play'>lol</div>

+0

Awesome! Спасибо, я все еще учусь. Цените объяснение, мне разумно знать =) – Bbleds

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