Опитвам се да пресъздам ефект като lazy loading
[js] $(document).ready(function(){
/* всеки път когата се скролва надоло ... */
$(window).scroll( function(){
/* проверяване на позицията на всеки елемент */
$('.hidden').each( function(i){
var bottom_of_object = $(this).position().top + $(this).outerHeight();
var bottom_of_window = $(window).scrollTop() + $(window).height();
/* ако е скролнато то обекта да му се променя opacity */
if( bottom_of_window > bottom_of_object ){
$(this).delay(200).animate({'opacity':'1'},2000);
}
});
});
}); [/js]
Проблема идва от там, че ако не се показват елементите все скрола на страницата седи така все едно тези елементи са показани..
Задавам на .hidden - display: none; за да премахна показването на скрола и всичко е наред.. Обаче когато променя с JS display на inline това афектира всички обекти с клас hidden и се показват всичките при единичен скрол..
[js] $(document).ready(function(){
/* всеки път когата се скролва надоло ... */
$(window).scroll( function(){
/* проверяване на позицията на всеки елемент */
$('.hidden').each( function(i){
var bottom_of_object = $(this).position().top + $(this).outerHeight();
var bottom_of_window = $(window).scrollTop() + $(window).height();
/* ако е скролнато то обекта да му се променя opacity */
if( bottom_of_window > bottom_of_object ){
// промяна на display на inline
$(this).delay(200).css('display', 'inline');
$(this).delay(200).animate({'opacity':'1'},2000);
}
});
});
});[/js]
[js] $(document).ready(function(){
/* всеки път когата се скролва надоло ... */
$(window).scroll( function(){
/* проверяване на позицията на всеки елемент */
$('.hidden').each( function(i){
var bottom_of_object = $(this).position().top + $(this).outerHeight();
var bottom_of_window = $(window).scrollTop() + $(window).height();
/* ако е скролнато то обекта да му се променя opacity */
if( bottom_of_window > bottom_of_object ){
$(this).delay(200).animate({'opacity':'1'},2000);
}
});
});
}); [/js]
Проблема идва от там, че ако не се показват елементите все скрола на страницата седи така все едно тези елементи са показани..
Задавам на .hidden - display: none; за да премахна показването на скрола и всичко е наред.. Обаче когато променя с JS display на inline това афектира всички обекти с клас hidden и се показват всичките при единичен скрол..
[js] $(document).ready(function(){
/* всеки път когата се скролва надоло ... */
$(window).scroll( function(){
/* проверяване на позицията на всеки елемент */
$('.hidden').each( function(i){
var bottom_of_object = $(this).position().top + $(this).outerHeight();
var bottom_of_window = $(window).scrollTop() + $(window).height();
/* ако е скролнато то обекта да му се променя opacity */
if( bottom_of_window > bottom_of_object ){
// промяна на display на inline
$(this).delay(200).css('display', 'inline');
$(this).delay(200).animate({'opacity':'1'},2000);
}
});
});
});[/js]