2012-06-25 124 views
0

我正在使用scrollto,並且我希望在滾動到下一個div時添加一個類。使用removeClass/addClass會起作用嗎?我不知道在哪裏放置它,所以當scrollto滾動到當前的.column div時,它也會添加「selected」類。jquery scrollto + addclass to div

科爾斯筆記版本:我正在尋找滾動時突出顯示的當前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

不幸的是,它在實施該更改後不會滾動。我在它下面沒有被測試,我會繼續玩。任何幫助將不勝感激! - 編輯:放置.addClass和.siblings。如下。滾動到 –

+0

它不會從前一個div中刪除該類。 –

+0

@frayed_dna對不起,一個錯字,'兄弟姐妹'應該是'兄弟'()' – undefined

0

當然,你應該能夠做到:

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

您的來電scrollToPosition之後。