2012-06-25 2 views
0

Я использую scrollto, и я хочу, чтобы класс был добавлен, когда он прокручивается до следующего div. Использование removeClass/addClass будет работать? Я не знаю, где бы я разместил его, когда scrollto, прокручивается до текущего .column div, добавляет также «выбранный» класс.jquery scrollto + addclass to div

Coles notes version: Я ищу текущий div, выделенный при прокрутке.

Это код scrollto Я использую:

function scrollToPosition(element) { 
    if (element !== undefined) { 
     $(".wrap").scrollTo(element, 800, { 
      margin: true 
     }); 
    } 
} 

$(function() { 

    //Create an Array of posts 
    var posts = $('.column'); 
    var position = 0; //Start Position 
    var next = $('#rightControl'); 
    var prev = $('#leftControl').hide(); 

    //Better performance to use Id selectors than class selectors 
    next.click(function(evt) { 
     //Scroll to next position 
     prev.show(); 
     scrollToPosition(posts[position += 1]); 
     if (position === posts.length - 1) { 
      next.hide(); 
     } 
    }); 

    prev.click(function(evt) { 
     //Scroll to prev position  
     next.show(); 
     scrollToPosition(posts[position -= 1]); 
     if (position === 0) { 
      prev.hide(); 
     } 
    }); 

}); 

HTML:

<div id="menu"></div> 
<div class="arrows"> 
<div class="nav_arrow"> 
    <div class="control" id="leftControl"></div> 
     <div class="control" id="rightControl"></div> 
</div> 
</div> 
<div class="wrap"> 
    <div class="content"> 
     <div class="column"></div> 
     <div class="column"></div> 
     <div class="column"></div> 
     <div class="column"></div> 
     <div class="column"></div> 
    </div> 
</div> 

ответ

0

попробовать этот непроверенный код!

function scrollToPosition(element) { 
if (element !== undefined) { 
    $(element).addClass('selected') 
    $(element).siblings().removeClass('selected') 
    $(".wrap").scrollTo(element, 800, { 
     margin: true 
    }); 

} 
} 
+0

К сожалению, это не прокрутка после реализации этого изменения. Я под ним непроверен, я буду продолжать играть. Любая помощь будет принята с благодарностью! - EDIT: помещены .addClass и .siblings. ниже .scrollto –

+0

Он не удаляет класс из предыдущего div. –

+0

@frayed_dna Извините, опечатка, 'siblings' должно быть' siblings() ' – undefined

0

Конечно, вы просто должны быть в состоянии сделать:

$('.someclass').removeClass('someclass');  
posts[position].addClass('someclass'); 

сразу после вызова scrollToPosition.