javascript - 使用 iScroll 将类添加到当前页面

标签 javascript jquery iscroll

正如标题所示,我正在尝试向当前的“捕捉到”元素添加一个类。有了这个:

var verticalScroll;
verticalScroll = new IScroll('#wrapper', {
    snap: true
});
verticalScroll.on('scrollEnd', function(){
    alert(this.currentPage);
});

滚动完成后我收到此警报:

[object Object]

所以我想我可以使用这样的东西来添加一个类:

verticalScroll.on('scrollEnd', function(){
    var newPage = this.currentPage;
    $(newPage).addClass('current');
});

但没有喜悦。进行了大量搜索以尝试找到相同的情况。这一定是相当简单的事情。

最佳答案

是的,这有点棘手。前段时间我尝试向链接和页面添加一个“事件”类。我最终得到了这个:

滚动结束后:

myScroll.on('scrollEnd', function () {
    addActiveClass();
});

功能:

function addActiveClass() {

    // get current page with iScroll
    var currentSection = myScroll.currentPage.pageY;

    // get current link and page
    var activeLink = $('nav a[href="' + currentSection + '"] span');
    var activeSection = $('section[class="' + currentSection + '"]');

    // remove active class from all links and pages
    $('nav a span, section').removeClass('active');

    // add active class to current link and page
    $(activeLink).addClass('active');
    $(activeSection).addClass('active');
}

只有一件事让我烦恼,你必须为每个部分提供一个页码作为一个类:

<section class="0"> … <section>
<section class="1"> … <section>
<section class="2"> … <section>

与链接相同:

<a href="0"></a>
<a href="1"></a>
<a href="2"></a>

但也许可以以某种方式动态添加。

不要忘记选项:

snap: 'section'

jsfiddle demo

关于javascript - 使用 iScroll 将类添加到当前页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23529484/

相关文章:

javascript - 围绕圆对齐元素

javascript - 动态添加dijit日期文本框

jquery - 如果我按住鼠标左键单击按钮 10 秒,mousemove 太快然后突然松开左键单击,在 JQuery 中没有触发 mouseup 事件?

css - 如何制作带有边框半径的外部div以切断内部div

javascript - 为什么 iScroll 没有初始化?

javascript - 以设备像素为单位的浏览器视口(viewport)大小

javascript - 列表项样式 |动态添加 |更新样式

jquery - 无法让 jQuery 调整大小来工作 : What am I doing wrong?

javascript - 使用 jQuery 遍历嵌套对象

JavaScript - iScroll - mousedown 不触发