jQuery插件,使用键快速导航帖子

时间:2013-06-18 13:53:59

标签: jquery jquery-plugins

在facebook中,我们可以使用“J”和“K”键来浏览帖子,我想要一个jQuery插件为我的网站做同样的事情。我的逻辑是我将帖子的标题命名为1,2,3,4 ...并且在按下“J”或“K”键时,它将自动滚动到相应的命名标题。我无法编码。我需要一个插件。我试图谷歌它,但不能用词来表示搜索。任何帮助都提前感谢。谢谢!

3 个答案:

答案 0 :(得分:1)

如果你真的想要一些扩展程序,那么最接近你所做的扩展名听起来像thisthis

编辑:或者PageScroller

但是如果你不介意做一点编码,那么JQuery可以提供你需要的大部分内容,你可以编写自己的扩展。类似的东西:

$(document).on('keypress', function(ev)
    {
        if (ev.which == '106')
        {
            $('html,body').scrollTop($("#nextPost").offset().top);
        } else if (ev.which == '107')
        {
            $('html,body').scrollTop($("#prevPost").offset().top);
        }
    });

更短的版本:

$(document).on('keypress',function(e)
{
    id = (e.which == '106') ? getNextPost() :
         (e.which == '107') ? getPrevPost() : undefined;
    if (id) $('html,body').scrollTop($(id).offset().top);
}

您可以将#nextPost和#prevPost替换为跟踪哪个帖子是"活跃的功能。"我经常通过定义微小的实用程序扩展来启动我的js文件,如:

$.extend({
    postRegister : {
        registry : '#defaultInitiallyActivePost',
        next : function() {
            this.registry = $(this.registry).next('.post').attr('id');
            return this.registry;
        },
        prev : function() {
            this.registry = $(this.registry).prev('.post').attr('id');
            return this.registry;
        }
    }
});

编辑:如果您希望页面检测用户何时手动滚动到其他帖子,您只需添加一个功能来检查滚动条当前的位置,循环浏览页面上的post元素,检查它们的偏移量确定正在查看哪个帖子。

答案 1 :(得分:0)

我会使用某些DOM元素作为跳跃点来代替数字。除此之外,它应该易于实施。听取键盘事件并使用scrollTo()和position()来做魔术。

看看http://firedev.com/jquery.keynav/。我想你可以改变触发键。

或google https://www.google.com/search?q=jquery+keyboard+navigation+plugin&ie=utf-8&oe=utf-8

答案 2 :(得分:0)

不知道你在追求什么,我的keynavigator plugin可能会帮助你。 你能告诉我们一些代码或你所追求的例子吗?