【问题标题】:Best way to provide a "tooltip tour" [closed]提供“工具提示之旅”的最佳方式[关闭]
【发布时间】:2012-02-19 20:27:52
【问题描述】:

使用上下文工具提示快速浏览 Web 应用程序的最佳方式是什么?

用例:

  • 用户导航到 webapp
  • 某种形式的弹出窗口询问用户是否想要界面导览
  • 用户可以在每个工具提示上单击下一步以显示下一个
  • 用户可以通过单击某种退出 X 或按钮随时取消游览

有没有一个简单的库可以做到这一点?

谢谢!

【问题讨论】:

  • 我写了一篇简短的 [review][1] 关于页面上的指导和 webapp 导览,最近在dailyjs.com 上发布。在其中,您可以找到几个实现此功能的 DIY 解决方案。 欢迎您在 iridize.com 上查看我们的 [页面上的指导即服务][2]。我希望这是向您的用户提供此功能的最佳方式,而且我很确定这将是最简单的。 [1]:dailyjs.com/2012/11/02/on-screen-guidance-intro[2]:iridize.com

标签: javascript tooltip jquery-tooltip


【解决方案1】:

最简单的方法是使用 Jeff Pickhardt 的 Guider-JS javascript 工具提示演练库。它非常易于使用(尽管它也有几个非常高级的功能),并且完全符合您的描述。

您可以查看this excellent example 使用 Guider-JS 制作的工具提示演练。

如果您想在生产站点上查看工作示例,optimizely.com 广泛使用它来为用户界面提供帮助和演练指南。

更新: ZURB 基金会现在正在维护出色的 "Joyride" tooltip tour javascript 库。

【讨论】:

  • 正是我所希望的!
  • 如果它回答了您的问题,请记得将其标记为“已接受”。
  • Joyride 是一个绝佳的选择 - 只需将我的开发时间缩短一半!
【解决方案2】:

您也可以使用带有迭代器的链表自己编写游览部分,该迭代器始终调用回调来设置工具提示并关闭它。然后,您可以使用任何您想要的工具提示脚本。这是一个概念的快速证明,应该可以向您展示我的意思:

var toolTipList = {
    tooltips: [],
    currentTooltip: {},
    addTooltip: function(tooltip){
        var currentTail = this.tooltips.length > 0 ? this.tooltips[this.tooltips.length - 1] : {};
        var newTail = {
            tooltip: tooltip,
            prev: currentTail
        };
        currentTail.next = newTail;
        this.tooltips.push(newTail);
    },

    initialize: function(){
        this.currentTooltip = this.tooltips[0];
        this.currentTooltip.tooltip.callback();
    },

    next: function(){
        if(this.currentTooltip.next){
            this.currentTooltip.tooltip.close();
            this.currentTooltip = this.currentTooltip.next;
            this.currentTooltip.tooltip.callback();        
        }   
    }           
};


for(var i = 0; i < 10; i++){
    toolTipList.addTooltip({
        callback: function(){ 
            // called every time next is called
            // open your tooltip here and 
            // attach the event that calls 
            // toolTipList.next when the next button is clicked
            console.log('called'); 
        },
        close: function(){ 
            // called when next is called again
            // and this tooltip needs to be closed
            console.log('close'); 
        }
    });
}

toolTipList.initialize();

setInterval(function(){toolTipList.next();}, 500);

​JSFiddle link

【讨论】:

    猜你喜欢
    • 2010-09-21
    • 2011-09-21
    • 2010-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-28
    • 1970-01-01
    相关资源
    最近更新 更多