0

scrolltoを使用していて、次のdivにスクロールするときにクラスを追加したいと思っています。removeClass / addClassを使用すると機能しますか?どこに配置するかわからないので、scrolltoすると、現在の.column 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>
4

2 に答える 2

0

このテストされていないコードを試してください!

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

}
}
于 2012-06-25T18:43:22.550 に答える
0

もちろん、次のことができるはずです。

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

scrollToPosition への呼び出しの直後。

于 2012-06-25T21:11:03.840 に答える