首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RWD中的Stellar.js

RWD中的Stellar.js
EN

Stack Overflow用户
提问于 2013-05-17 21:23:22
回答 1查看 330关注 0票数 0

我一直在和stellar.js胡闹。在我的设计中,为了节省水平空间,导航需要变成一个select

我想这个html应该类似于:

代码语言:javascript
复制
<select>
   <option data-slide="1">Accueil</option>
   <option data-slide="2">Services</option>
   <option data-slide="3">Réalisations</option>
   <option data-slide="4">Contact</option>
</select>

但是,我不确定应该如何更改.js文件才能做到这一点。我相信这就是奇迹发生的地方,但我不是百分之百的相信:

代码语言:javascript
复制
slide.waypoint(function (d, e) {
    dataslide = c(this).attr("data-slide");
    if (e === "down") {
        c('.navigation li[data-slide="' + dataslide + '"]').addClass("active").prev().removeClass("active")
    } else {
        c('.navigation li[data-slide="' + dataslide + '"]').addClass("active").next().removeClass("active")
    }
});

有没有人这样做过?谢谢!

EN

回答 1

Stack Overflow用户

发布于 2013-10-18 07:51:22

从您发布的代码可以看出,您正在学习Tutsplus中发布了一段时间的教程,对吧?

好吧,这段Javascript代码利用waypoint插件将视区中与幻灯片对应的链接标记为选中(从而在视觉上增强它)。但是,由于您将使用下拉列表,因此上面的方法是无用的。要完成任务,您首先需要确保用户在更改选择框值时正确滚动。这样就可以了(您最好更改下面的jQuery选择器,以确保此处理程序不会影响页面中除主要dropdown导航小部件之外的任何其他输入控件):

代码语言:javascript
复制
$('select').on('change', function() {
    var slide = $(this).find(':selected').data('slide');
    goToByScroll(dataslide);
});

好的,现在我们需要确保列表框在用户执行滚动时更改其默认值。我们将利用您发布的一些代码。这样的东西就足够了:

代码语言:javascript
复制
slide.waypoint(function (d, e) {
    var dataslide = c(this).attr("data-slide");
    $('select').prop('selectedIndex', parseInt(dataslide)-1);
});

需要注意的是,上面的代码假设所有aslide都有一个从1到n的数字数据幻灯片值,并且每个列表框索引都引用页面中具有相同索引的匹配幻灯片,加上1,其排序顺序与它表示的数据幻灯片相同。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16610204

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档