2015-05-26 2 views
0

У меня было несколько разделов динамического контента. Каждая секция имеет заголовок заголовка.jquery scrollto top высота выпуск

First section h2 class name is "bounceInRight" 
First section h2 class name is "bounceInLeft" 
third section h2 class name is "bounceInRight" 
Fourth section h2 class name is "bounceInLeft" and goes on. 

Если я достиг этого класса, мне нужно добавить класс в другое имя div «blink».

Для этого я использовал следующий код:

var eyemoveright = $(".bounceInRight h2").offset().top; 
var eyemoveleft = $(".bounceInLeft h2").offset().top; 
$(window).scroll(function() { 

    if($(window).scrollTop() > eyemoveright) { 

     $('.blink').addClass("move-right"); 
     $('.blink1').addClass("move-right"); 
    } 

    if($(window).scrollTop() > eyemoveleft) { 

     $('.blink').addClass("move-left"); 
     $('.blink1').addClass("move-left"); 
    }        
}); 

Пожалуйста, см скрипку.

http://jsfiddle.net/zvkjfk6r/

Для первых двух секций работают отлично. Классы добавляются правильно. Если третий контентный блок достигнут, классы добавления не работают. Потому что я использовал два условия if. Как вызвать первое условие If, если достигнуто третье содержимое блока?

ответ

1

и должны использовать цикл по каждой секции и установить флаг для уже достигнутой секции.

$(window).scroll(function() { 
    $(".bounceInRight h2").each(function(){ 
     var eyemoveright = $(this).offset().top; 
     if($(window).scrollTop() > eyemoveright && !$(this).hasClass('reached')) { 
      console.log('right'); 
      $(this).addClass('reached'); 
      $('.blink').addClass("move-right"); 
      $('.blink1').addClass("move-right"); 
      $('.blink').removeClass("move-left"); 
      $('.blink1').removeClass("move-left"); 
     } 
    }) 

    $(".bounceInLeft h2").each(function(){ 
     var eyemoveleft = $(this).offset().top; 
     if($(window).scrollTop() > eyemoveleft && !$(this).hasClass('reached')) { 
      console.log('left'); 
      $(this).addClass('reached'); 
      $('.blink').addClass("move-left"); 
      $('.blink1').addClass("move-left");   
      $('.blink').removeClass("move-right"); 
      $('.blink1').removeClass("move-right"); 
     } 
    }) 


}); 

http://jsfiddle.net/ashish1bhagat/zvkjfk6r/7/

+0

Спасибо. Я попробовал ваш код. Я не добираюсь до содержимого блока, но классы добавляются. – Akash

+0

О! удалите '$ (window) .height()' из обоих условий, попробуйте использовать 'var eyemoveleft = $ (this) .offset(). top;' и 'var eyemoveright = $ (this) .offset(). top' only –

+0

Спасибо. Я использовал ваш код и немного изменил его.Он работает хорошо. – Akash

3

Есть ли какие-либо проблемы, если второе, если условие записывается внутри первого Потому что он никогда не пойдет на второй, если

if($(window).scrollTop() > eyemoveleft) { 

      console.log("seconfif"); 
      $('.blink').addClass("move-left"); 
      $('.blink1').addClass("move-left"); 
     } 

JSFIDDLE

Второй метод

if(eyemoveright< $(window).scrollTop() && $(window).scrollTop() > eyemoveleft) { 

      console.log("seconfif"); 
      $('.blink').addClass("move-left"); 
      $('.blink1').addClass("move-left"); 
     } 

2nd Method JSFIDDLE

After removing class

+0

Я попробовал ваш код. Если я дойду до третьего, мне нужно добавить класс, как 1-й блок. – Akash

+0

На самом деле эта анимация - человеческий глаз. Человек следует за заголовком. поэтому глазной шар перемещается, чтобы увидеть заголовок. Заголовок отображается слева или справа. – Akash

+0

Для этого необходимо удалить Class, когда это не нужно. –

0

Вы должны добавить следующее:

if($(window).scrollTop() < eyemoveright) { 
    $('.blink').removeClass("move-right"); 
    $('.blink1').removeClass("move-right"); 
} 

, как показано ниже.

var eyemoveright = $(".bounceInRight h2").offset().top; 
 
    var eyemoveleft = $(".bounceInLeft h2").offset().top; 
 
    $(window).scroll(function() { 
 
    
 
    if($(window).scrollTop() > eyemoveright) { 
 
     
 

 
     $('.blink').addClass("move-right"); 
 
     $('.blink1').addClass("move-right"); 
 
    } 
 

 
    if($(window).scrollTop() < eyemoveright) { 
 
     
 

 
     $('.blink').removeClass("move-right"); 
 
     $('.blink1').removeClass("move-right"); 
 
    } 
 

 
    if($(window).scrollTop() > eyemoveleft) { 
 
     
 
     
 
     $('.blink').addClass("move-left"); 
 
     $('.blink1').addClass("move-left"); 
 
    }    
 
    });
.blink, .blink1{ background-color:#fff; width:3px; height:3px; position:absolute; animation: blink 2s steps(5, start) infinite; -webkit-animation: blink 2s steps(5, start) infinite; left:90px; top:64px; } 
 
    .blink1{ left:124px; top:65px; } 
 
    @keyframes blink { 
 
    to { 
 
     visibility: hidden; 
 
    } 
 
    } 
 
    @-webkit-keyframes blink { 
 
    to { 
 
     visibility: hidden; 
 
    } 
 
    } 
 
    
 
    .blink.move-right{left:50px;} 
 
    .blink1.move-right{left:56px;} 
 

 

 
    .blink.move-left{left:10px;} 
 
    .blink1.move-left{left:15px;} 
 
    .animation-image{ width:200px; height:100px;}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="animation-image text-center" style="position:fixed; background-color:red;"><span class="blink1 hidden-mob"></span><span class="blink hidden-mob"></span></div> 
 
<br><br><br><br> 
 
<p>Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum. <p>Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum. 
 

 
</p> 
 

 
<div class="clearfix"></div> 
 
<div class="col-sm-5 bounceInRight"> 
 
    <h2>Letraset sheets containing Lorem Ipsum pa</h2> 
 
</div> 
 

 
<div class="clearfix"></div> 
 

 
<p>Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum. 
 
    Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.</p> 
 
    <div class="col-sm-5 bounceInLeft"> 
 
    <h2>Letraset sheets containing Lorem Ipsum pa</h2> 
 
    </div> 
 

 
    <p>Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum. 
 
    Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.</p> 
 
    <div class="col-sm-5 bounceInRight"> 
 
     <h2>Letraset sheets containing Lorem Ipsum pa</h2> 
 
    </div> 
 

 
    <p>Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum. 
 
    Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.</p> 
 
    <div class="col-sm-5 bounceInRight"> 
 
     <h2>Letraset sheets containing Lorem Ipsum pa</h2> 
 
    </div> 
 

 
    <p>Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum. 
 
    Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.</p> 
 
    <div class="col-sm-5 bounceInRight"> 
 
     <h2>Letraset sheets containing Lorem Ipsum pa</h2> 
 
    </div>