2016-01-06 3 views
1

У меня есть этот код для вычисления вершины элемента и сравнения с scrollTop и любого действия.Сравнить ScrollTop С offset.top элемента

Проблема заключается в том, что не входит в condicional «если»

Любая идея?

jQuery(document).ready(function() { 

    var h = parseInt(jQuery(".noticiasFoldsHome").height())/2 ; 

    var x = parseInt(jQuery(".noticiasFoldsHome").offset().top) - parseInt(h); 

    jQuery(window).scroll(function (event) { 
     var scroll = jQuery(window).scrollTop(); 
     //console.log(scroll); 

     if (parseInt(scroll) == parseInt(x)){ 
      console.log("entro"); 
     } 

    }); 



}); 

ответ

2

Вам нужно добавить высоту, а не вычесть ее.

var x = parseInt(jQuery(".noticiasFoldsHome").offset().top) + parseInt(h); 

Я предполагаю, что вы пытаетесь сделать что-то, когда пользователь вводит какой-то элемент, если так что вы можете использовать диапазон, если условия, как больше, чем сверху элемента и меньше той нижней части элемента.

событие прокрутки не вызывается для каждого пикселя, оно вызывается при прерывании прокрутки. он может идти так, как это 0, 79, 156, 210, 350 и так далее. в основном случайным образом. поэтому, пытаясь сравнить его с одним значением, вы на самом деле пытаетесь удачи. вам лучше использовать некоторый диапазон для этого. элемент должен находиться между верхней частью элемента и вершиной элемента + общая высота элемента

Кроме того, вы использовали имя класса для вашего селектора jquery, который указывает, что может быть более одного элемента с этим классом, но этот код может работать для только первый такой элемент. Поэтому будьте осторожны.

+0

Да, я пробовал, но не работает – user3810167

+0

, потому что прокрутка даже не вызывается для каждого пикселя, она вызывается, когда прокрутка прерывается. он может пойти так, как это 0, 79, 156, 210, 350 и т. д .. в основном случайным образом. поэтому, пытаясь сравнить его с одним значением, вы на самом деле пытаетесь удачи .. вам лучше использовать некоторый диапазон для него. Элемент должен быть между offset(). top() и offset(). top + total hieght элемента – Sachin

+0

хорошо я понял. я буду использовать «>», а не «==», я думаю, что это возможно – user3810167

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

  • Нет связанных вопросов^_^