【问题标题】:Incremental bullet points with HTML5 or jQuery?使用 HTML5 或 jQuery 的增量项目符号?
【发布时间】:2011-06-30 09:14:00
【问题描述】:

我的 HTML 知识很少,所以这可能是一个非常琐碎的问题。非常感谢任何帮助!

当我使用 LaTeX beamer 类创建演示文稿时,有一个非常有用的命令:

\begin{itemize} 
\item<x-> Alpha
\item<x-> Beta
\item<x-> Gamma  
\end{itemize}

这会创建三个项目符号点,在鼠标单击或向前/向后箭头后递增显示,例如在 Powerpoint 中。

我想在 .html 文件中为很长的列表(可能超过 50 个项目)提供相同的功能。所以它真的不能在幻灯片环境中工作,而只能在浏览器中向下滚动。

有没有一种简单的方法可以通过 HTMl5 或 jQuery 或其他方式实现这一点?谷歌搜索抛出了数以千计的演示工具,我真的不知道从哪里开始。

【问题讨论】:

    标签: jquery html presentation


    【解决方案1】:

    使用 jQuery,您可以将 keypress 事件绑定到窗口,并在每次按下键时显示下一个列表项:

    var curIndex = 0;
    $(window).keypress(function() {
       $("li").eq(curIndex).show();
       curIndex++;
    });
    

    要使这项工作仅使用箭头键,需要稍作更改(您需要使用keydown 而不是keypress):

    var curIndex = 0;
    $(window).keydown(function(e) {
        if(e.keyCode === 37) {
            if(curIndex > 0) curIndex--;
            $("li").eq(curIndex).hide();
        }
        else if(e.keyCode === 39) {
            $("li").eq(curIndex).show();
            if(curIndex < 3) curIndex++; 
        }
    });
    

    您的 HTML 列表将如下所示:

    <ol>
        <li>1</li>
        <li>2</li>
        <li>3</li>
    </ol>
    

    默认情况下需要隐藏列表项,在 CSS 中使用 li { display:none } 之类的内容。

    另请注意,上面的示例未处理显示最后一个元素的情况 - 您打算在这种情况下发生什么?

    这里有一个example fiddle 展示了它的实际效果(您需要单击“结果”框架以使其获得焦点,然后按任意键来触发事件处理程序)。

    【讨论】:

    • 非常感谢!这正是我想要的功能。显示最后一个项目后,我不需要任何事件。有什么功能可以倒退吗?例如,如果“1) 2) 3)”显示为通过按向左箭头或类似的方式返回“1) 2)”?
    • 这里有一个版本(左箭头/右箭头)。也不使用计数器变量:) jsfiddle.net/CBknU
    • @Elip - 这是一个仅适用于左/右箭头键按下的示例:jsfiddle.net/ekHJH/8
    • @AKX - 我认为你发布了错误的链接......这和我原来的小提琴一样!
    • 太棒了!感谢您的帮助,这真的为我节省了很多时间!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-05-27
    • 2020-01-31
    • 1970-01-01
    • 1970-01-01
    • 2018-08-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多