1. Web Design
  2. UX/UI
  3. UX Design

Führen Sie Benutzer mit Bootstrap Tour durch Ihre Website

Wenn Sie eine Webanwendung haben, an die sich Ihre Benutzer erst gewöhnen müssen, ist eine exemplarische Vorgehensweise für die Benutzeroberfläche angebracht. Das Erstellen einer exemplarischen Vorgehensweise direkt über der Benutzeroberfläche macht die Dinge sehr klar. Deshalb werden wir diese mithilfe von Bootstrap Tour erstellen.
Scroll to top

German (Deutsch) translation by Alex Grigorovich (you can also view the original English article)

Wenn Sie eine Webanwendung haben, an die sich Ihre Benutzer erst gewöhnen müssen, ist eine exemplarische Vorgehensweise für die Benutzeroberfläche angebracht. Das Erstellen einer exemplarischen Vorgehensweise direkt über der Benutzeroberfläche macht die Dinge sehr klar. Deshalb werden wir diese mithilfe von Bootstrap Tour erstellen.

tour-introtour-introtour-intro

Fragen, Fragen

Bootstrap Tour ist ein jQuery-basiertes Plugin für Twitter Bootstrap, mit dem Sie auf einfache Weise interaktive exemplarische Vorgehensweisen mit einem Minimum an deklarativer JavaScript-Konfiguration in Verbindung mit Ihrer vorhandenen DOM-Struktur erstellen können.

Wenn das für Sie keinen Sinn ergibt, lesen Sie weiter - wir werden es aufschlüsseln, damit Sie wertvolle, ansprechende Anweisungen für Ihre Benutzer erstellen können.

Warum möchte ich, die Anweisungen erstellen?

Wenn Ihre Website ein gewisses Maß an Vertrautheit erfordert, kann es sehr hilfreich sein, Ihren Benutzern zu zeigen, was zu tun ist. Nach Abschluss des Vorgangs kann der Benutzer in gewisser Weise den "Schatten" der Anweisung sehen, die Sie in der exemplarischen Vorgehensweise angegeben haben. Dies vermeidet den Benutzer, die Anweisungen interpretieren, wenn Sie ein weniger klares Medium wie Video oder noch schlimmer Textanleitungen verwenden.

Ein weiterer Anwendungsfall für eine interaktive Tour ist die Beschreibung eines Fotos. Stellen Sie sich vor, Sie bauen eine Website, auf der Sie wunderschöne Panoramen von Städten auf der ganzen Welt zeigen können. Wenn ein Benutzer auf eine Stadt klickt, können Sie auf einer interaktiven Tour auf Elemente des Fotos hinweisen, die sonst möglicherweise unbemerkt bleiben.

Es gibt viele Anwendungsfälle, wenn Sie eine Tour verwenden möchten.

Wann sollte ich eine Tour vermeiden?

Wenn Ihre Benutzeroberfläche sehr klaren Konventionen folgt und Sie keine Beschwerden über Verwirrung gehört haben, kann das Hinzufügen einer Tour Ihre Benutzer daran hindern, das zu tun, was sie am meisten tun möchten: Verwenden Sie Ihre Anwendung.

Während wir uns mit dem Thema befassen, was zu vermeiden ist, ist es ratsam, Ihre Tour so kurz wie möglich zu halten. Die Benutzer möchten alle erforderlichen Informationen sammeln, um Ihre Anwendung zu verwenden oder Ihre Story anzuzeigen. Sie möchten jedoch auch, dass dies so schnell wie möglich geschieht. Die einzige Ausnahme von dieser Regel wäre eine Site, die sich fast ausschließlich auf eine Tour als Kernmerkmal stützt (die beschriebene Foto-Site wäre ein mögliches Beispiel), aber selbst in diesen Fällen sollte es für einen Benutzer einfach sein, die Tour zu verlassen. Zum Glück wird das in Bootstrap Tour standardmäßig unterstützt. Bei jedem Schritt ist eine Schaltfläche "Tour beenden" vorhanden.


Erste Schritte, schnell

Für die Bootstrap-Tour sind neben jQuery natürlich auch Elemente von Twitter Bootstrap sowie eine eigene CSS- und JavaScript-Datei erforderlich. Aus der Dokumentation sind hier die erforderlichen Assets.

1
<!DOCTYPE html>
2
<html>
3
<head>
4
    ...
5
    <link href="bootstrap-tour.css" rel="stylesheet">
6
    <!--[if lt IE 9]><script src="html5shiv.js"><![endif]-->
7
</head>
8
<body>
9
    ...
10
    <script src="jquery.js"></script>
11
    <script src="bootstrap.tooltip.js"></script>
12
    <script src="bootstrap.popover.js"></script>
13
    <script src="bootstrap-tour.js"></script>
14
</body>
15
</html>

Beachten Sie, dass Sie auch die Basis-CSS-Datei von Bootstrap einschließen müssen, um das Bootstrap-Popover anzuzeigen.

Starten Sie die Tour

Um mit einer Tour zu beginnen, führen Sie als Nächstes Folgendes in Ihrer JavaScript-Datei aus (die wir in Kürze behandeln werden):

1
// Create a new tour
2
var tour = new Tour();
3
4
// Add your steps
5
tour.addSteps([
6
  {
7
    element: ".message.message-1", // element selector to show the popover next to;
8
    title: "Welcome to my tour!",
9
    content: "We're going to make this quick and useful."
10
  },
11
  {
12
    element: ".message.message-2",
13
    title: "Let's finish this thing off with a bang.",
14
    content: "Boom, bang, bam!"
15
  }
16
]);
17
18
// Initialize method on the Tour class. Get's everything loaded up and ready to go.
19
tour.init();
20
21
// This starts the tour itself
22
tour.start();

Dieses Beispiel wurde fast direkt aus der Dokumentation entnommen und ist der einfachste Weg, um mit Bootstrap Tour zu beginnen.


Lassen Sie uns weiter gehen?

Die Bootstrap-Tour bietet unzählige Optionen, um jeden Schritt der Tour, den Sie erstellen möchten, anzupassen. Standardmäßig unterstützt es localStorage (um Ihren Platz in der Tour zu erhalten, wenn Sie die Registerkarte schließen und später zurückkehren), nächste und vorherige Funktionen sowie alle Arten von Rückrufen, die Sie einrichten können, um auf Benutzeraktionen zu reagieren. Es bietet auch nette polnische Funktionen wie einen Element-Textmarker, einen "Reflex-Modus" (wir werden weiter unten mehr erklären), automatisch fortschreitende Schritte und sogar mehrseitige Touren.

Starter-Thema

Für diese Demo beginnen wir mit einer kostenlosen Vorlage von StartBootstrap.com. StartBootstrap von Iron Summit Media Strategies ist eine Sammlung kostenloser und Premium-Bootstrap-Themen.

Sobald Sie die Projekte heruntergeladen haben, sollte Ihre Dateistruktur folgendermaßen aussehen.

.
├── css
│ ├── bootstrap-tour.min.css
│ ├── bootstrap.css
│ └── landing-page.css
├── font-awesome
...
├── fonts
│ ├── glyphicons-halflings-regular.eot
│ ├── glyphicons-halflings-regular.svg
│ ├── glyphicons-halflings-regular.ttf
│ └── glyphicons-halflings-regular.woff
├── img
│ ├── banner-bg.jpg
│ ├── doge.png
│ ├── intro-bg.jpg
│ ├── ipad.png
│ └── phones.png
├── index.html
└── js
├── bootstrap-tour.min.js
├── bootstrap.js
└── jquery-1.10.2.js

Hinweis: Wir haben die interne Struktur von FontAwesome übersprungen, da sie für dieses Tutorial nicht wichtig ist.

Assets einschließen

Als Nächstes möchten Sie das CSS und JavaScript von Bootstrap Tour in die Datei index.html aufnehmen. Der <head> Ihres Dokuments sollte folgendermaßen aussehen:

1
  <head>
2
    <meta charset="utf-8">
3
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
4
    <meta name="description" content="">
5
    <meta name="author" content="">
6
7
    <title>Landing Page Template for Bootstrap</title>
8
9
    <!-- Bootstrap core CSS -->
10
    <link href="css/bootstrap.css" rel="stylesheet">
11
12
    <!-- Custom Google Web Font -->
13
    <link href="font-awesome/css/font-awesome.min.css" rel="stylesheet">
14
    <link href='http://fonts.googleapis.com/css?family=Lato:100,300,400,700,900,100italic,300italic,400italic,700italic,900italic' rel='stylesheet' type='text/css'>
15
16
    <!-- Add custom CSS here -->
17
    <link href="css/bootstrap-tour.min.css" rel="stylesheet">
18
    <link href="css/landing-page.css" rel="stylesheet">
19
20
  </head>

Und am Ende des Dokuments sehen Sie das JavaScript kurz vor dem schließenden </body> -Tag. Sobald Sie das Setup zum Laufen gebracht haben, ist es Zeit, loszulegen! Natürlich müssen Sie Ihr eigenes benutzerdefiniertes JavaScript hinzufügen, damit wir eine "script.js" hinzufügen. nach der Bootstrap Tour-Datei.

1
    <!-- JavaScript -->
2
    <script src="js/jquery-1.10.2.js"></script>
3
    <script src="js/bootstrap.js"></script>
4
    <script src="js/bootstrap-tour.min.js"></script>
5
    <script src="js/script.js"></script>
6
7
  </body>
8
</html>

Sie möchten diese Dateien in Ihrem Erstellungsprozess verketten und minimieren. In diesem Lernprogramm werden Build-Prozesse nicht behandelt. Weitere Informationen hierzu finden Sie in den Empfohlene Vorgehensweise zur Steigerung der Website-Leistung oder in Meet Grunt: Das Build-Werkzeug für JavaScript.

Einige Schritte einrichten

Lassen Sie uns ein paar einfache Schritte mit dem folgenden Code in unserer "script.js" Datei einrichten.

1
(function(){
2
3
    var tour = new Tour({
4
        storage : false
5
    });
6
7
    tour.addSteps([
8
      {
9
        element: ".tour-step.tour-step-one",
10
        placement: "bottom",
11
        title: "Welcome to our landing page!",
12
        content: "This tour will guide you through some of the features we'd like to point out."
13
      },
14
      {
15
        element: ".tour-step.tour-step-two",
16
        placement: "bottom",
17
        title: "Main navigation",
18
        content: "Here are the sections of this page, easily laid out."
19
      },
20
      {
21
        element: ".tour-step.tour-step-three",
22
        placement: "top",
23
        backdrop: true,
24
        title: "Main section",
25
        content: "This is a section that you can read. It has valuable information."
26
      },
27
28
    ]);
29
30
    // Initialize the tour

31
    tour.init();
32
33
    // Start the tour

34
    tour.start();
35
36
}());

Dieser Code ist dem obigen Beispiel für den einfachen Start sehr ähnlich. Wir initiieren unsere Tour-Instanz und deaktivieren für unser Tutorial den Speicher, sodass die Tour am Anfang beginnt, wenn die Seite jedes Mal geladen wird. (Wenn Sie diese Option entfernen, sobald Sie Ihre Tour erstellt haben, funktioniert der Speicher einwandfrei.)

Anschließend definieren wir einige Schrittklassen und zugehörige Argumente. Beachten Sie das "Hintergrund" -Argument des dritten Schritts. Dies hebt das Element hervor, das wir ausgewählt haben, um das Popover oben anzuhängen.

Markup-Änderungen vornehmen

Als nächstes fügen wir die Schrittklassen zu den relevanten Elementen hinzu. Der obere Rand unserer Indexdatei sollte nun wie folgt aussehen.

1
<!DOCTYPE html>
2
<html lang="en">
3
  <head>
4
    <meta charset="utf-8">
5
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
    <meta name="description" content="">
7
    <meta name="author" content="">
8
9
    <title>Landing Page Template for Bootstrap</title>
10
11
    <!-- Bootstrap core CSS -->
12
    <link href="css/bootstrap.css" rel="stylesheet">
13
14
    <!-- Custom Google Web Font -->
15
    <link href="font-awesome/css/font-awesome.min.css" rel="stylesheet">
16
    <link href='http://fonts.googleapis.com/css?family=Lato:100,300,400,700,900,100italic,300italic,400italic,700italic,900italic' rel='stylesheet' type='text/css'>
17
18
    <!-- Add custom CSS here -->
19
    <link href="css/bootstrap-tour.min.css" rel="stylesheet">
20
    <link href="css/landing-page.css" rel="stylesheet">
21
22
  </head>
23
24
  <body>
25
26
    <nav class="navbar navbar-default navbar-fixed-top" role="navigation">
27
      <div class="container">
28
        <div class="navbar-header">
29
          <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-ex1-collapse">
30
            <span class="sr-only">Toggle navigation</span>
31
            <span class="icon-bar"></span>
32
            <span class="icon-bar"></span>
33
            <span class="icon-bar"></span>
34
          </button>
35
          <a class="navbar-brand" href="http://startbootstrap.com">Start Bootstrap</a>
36
        </div>
37
38
        <!-- Collect the nav links, forms, and other content for toggling -->
39
        <div class="tour-step tour-step-two collapse navbar-collapse navbar-right navbar-ex1-collapse">
40
          <ul class="nav navbar-nav">
41
            <li><a href="#about">About</a></li>
42
            <li><a href="#services">Services</a></li>
43
            <li><a href="#contact">Contact</a></li>
44
          </ul>
45
        </div><!-- /.navbar-collapse -->
46
      </div><!-- /.container -->
47
    </nav>
48
49
    <div class="intro-header">
50
51
      <div class="container">
52
  
53
        <div class="row">
54
          <div class="col-lg-12">
55
            <div class="intro-message">
56
              <h1>Landing Page</h1>
57
              <h3>A Template by Start Bootstrap</h3>
58
              <hr class="intro-divider">
59
              <ul class="list-inline intro-social-buttons">
60
                <li><a href="https://twitter.com/SBootstrap" class="btn btn-default btn-lg"><i class="fa fa-twitter fa-fw"></i> <span class="network-name">Twitter</span></a></li>
61
                <li class="tour-step tour-step-one"><a href="https://github.com/IronSummitMedia/startbootstrap" class="btn btn-default btn-lg"><i class="fa fa-github fa-fw"></i> <span class="network-name">Github</span></a></li>
62
                <li><a href="#" class="btn btn-default btn-lg"><i class="fa fa-linkedin fa-fw"></i> <span class="network-name">Linkedin</span></a></li>
63
              </ul>
64
            </div>  
65
          </div>
66
        </div>
67
  
68
      </div><!-- /.container -->
69
70
    </div><!-- /.intro-header -->
71
72
    <div class="content-section-a tour-step tour-step-three">
73
74
      <div class="container">
75
  
76
        <div class="row">
77
          <div class="col-lg-5 col-sm-6">
78
            <hr class="section-heading-spacer">
79
            <div class="clearfix"></div>
80
            <h2 class="section-heading">Death to the Stock Photo: <br>Special Thanks</h2>
81
            <p class="lead">A special thanks to Death to the Stock Photo for providing the photographs that you see in this template. <a target="_blank" href="http://join.deathtothestockphoto.com/">Visit their website</a> to become a member.</p>
82
          </div>
83
          <div class="col-lg-5 col-lg-offset-2 col-sm-6">
84
            <img class="img-responsive" src="img/ipad.png" alt="">
85
          </div>
86
        </div>
87
  
88
      </div><!-- /.container -->
89
90
    </div><!-- /.content-section-a -->
91
    <!-- ... omitted ... -->
92
    </body>
93
</html>

Und unsere Seite sollte beim Laden ungefähr so aussehen:

tour-welcometour-welcometour-welcome

Im dritten Schritt können wir die backdrop funktion in Aktion sehen:

tour-main-sectiontour-main-sectiontour-main-section

Toll! Wir haben eine funktionierende Tour in ungefähr dreißig Zeilen JavaScript gemacht.


Dynamischen Inhalt verwenden

Touren sind viel besser, wenn sie personalisiert sind. Fragen wir also unseren Benutzer, wie sie zu Beginn der Tour heißen, und verwenden Sie sie für die restlichen Schritte der Tour. Hier ist das JavaScript, mit dem wir dies erreichen.

1
(function(){
2
    var name = "Friend";
3
    var tour = new Tour({
4
        storage : false
5
    });
6
7
    tour.addSteps([
8
      {
9
        element: ".tour-step.tour-step-one",
10
        placement: "bottom",
11
        title: "Welcome to our landing page!",
12
        content: "What's your name? <br><input class='form-control' type='text' name='your_name'>",
13
        onNext : function(tour){
14
            var nameProvided = $("input[name=your_name]").val();
15
            if ($.trim(nameProvided) !== ""){
16
                name = nameProvided;
17
            }
18
        }
19
      },
20
      {
21
        element: ".tour-step.tour-step-two",
22
        placement: "bottom",
23
        title: function(){ return "Welcome, " + name; },
24
        content: "Here are the sections of this page, easily laid out."
25
      },
26
      {
27
        element: ".tour-step.tour-step-three",
28
        placement: "top",
29
        backdrop: true,
30
        title: "Main section",
31
        content: "This is a section that you can read. It has valuable information."
32
      },
33
      {
34
        element: ".tour-step.tour-step-four",
35
        placement: "top",
36
        orphan: true,
37
        title: "Thank you.",
38
        content: function(){ return "We can't wait to see what you think, "+name+"!" }
39
      },
40
41
    ]);
42
43
    // Initialize the tour

44
    tour.init();
45
46
    // Start the tour

47
    tour.start();
48
49
}());

Beachten Sie, dass die Argumente für content und title entweder eine Zeichenfolge oder eine Funktion sein können, sodass sie zum Zeitpunkt der Anzeige des Popovers ausgewertet werden können. Der Rückruf für den ersten Schritt erhält den Namen des Benutzers (unter Verwendung der in Bootstrap integrierten Klassen für das Styling), und dann zeigen wir diesen Namen im zweiten und letzten (neuen) Schritt an. Wenn der Benutzer keinen Namen oder nur Leerzeichen eingibt, setzen wir den Standardnamen auf "Friend".

Im letzten Schritt wird auch eine neue Eigenschaft eingeführt, orphan. Dadurch kann der Schritt von einem bestimmten Element getrennt werden. Wir haben die Elementklassen nur aus Gründen der Kontinuität belassen, und falls wir diesen Schritt irgendwann an ein Element anhängen möchten. So sieht der letzte Schritt aus:

tour-thankstour-thankstour-thanks

Seien Sie kreativ!

Wenn Sie möchten, dass Ihre Tour nützlich ist, benötigen Sie eine gute Content-Strategie. Fügen Sie nicht einfach ein paar Sätze in Ihre JavaScript-Konfiguration ein und nennen Sie es erledigt. Überlegen Sie, was Sie versuchen, den Benutzer zu _inspire_, ob Sie Ihre Anwendung verwenden oder einfach nur begeistert sein möchten.

Schreiben Sie eine Erzählung

Bevor Sie Ihre Tour schreiben, schreiben Sie die Geschichte des Benutzers auf, der die Tour erleben wird. Finden Sie heraus, wer der Benutzer ist und was er während des gesamten Prozesses denken und tun wird. Eine Tour ist von Natur aus auf eine Art Zeitachse festgelegt. Nutzen Sie dies. Entwickeln Sie eine Handlungslinie mit einer dynamischen Einführung, einem Anstieg und einem Abschluss und wenden Sie das Konzept auf die Tour an.

Informieren und erfreuen

Horace sagte einmal:

Das Ziel des Dichters ist es, in dem, was er sagt, sowohl Freude als auch Anwendbarkeit auf das Leben zu informieren oder zu erfreuen oder miteinander zu verbinden.

Der berühmte Designer Milton Glaser erweiterte dies mit den Worten:

Der Zweck der Kunst ist zu informieren und zu erfreuen.

Auch dies kann das Ziel einer guten Website-Tour sein. Finden Sie heraus, wie Sie nicht nur Informationsinhalte erstellen, sondern den Benutzer während des Vorgangs unterhalten können. Geben Sie dem Benutzer ein Gefühl der Leistung, wenn er die Tour abgeschlossen hat:

1
var tour = new Tour({
2
    onEnd : function(tour){
3
        giveAward();
4
    }
5
});
6
7
function giveAward(){
8
    $(".award").addClass("show");
9
    setTimeout(function(){
10
        $(".award").removeClass("show");
11
    })
12
}

Dieses Snippet könnte dem Benutzer am Ende der Tour etwas als eine Art "Dankeschön" des Reiseleiters (das sind Sie) für den Abschluss der Reise zeigen.

Verwenden Sie das Medium

HTML ist biegsam. Mach die Dinge nicht nur Schritt für Schritt; Tauchen Sie ein in die Verwendung von Rückrufen und beobachten Sie das Benutzerverhalten, um Erlebnisse wie Touren interaktiver zu gestalten. Sie können diese Bibliothek beispielsweise verwenden, um mithilfe der goTo() -Methode eine Erzählung im Stil "Wählen Sie Ihr eigenes Abenteuer" zu erstellen, die zwischen den Schritten springt. Verwenden Sie Rückrufe, um ein umfangreiches Verhalten wie Animationen oder iFrame-Injektionen auszulösen. Seien Sie kreativ und erinnern Sie sich an die Kraft des Mediums.

1
<script>
2
// initialize/start tour, etc

3
// listen for a click on any element with the class "go-to",

4
// And take the tour to a step matching the data-go-to-step attribute

5
$(document).on("click", ".go-to", function(e){
6
    // just be sure we have an integer instead of a string,

7
    // to match the documentation

8
    var step = parseInt($(this).data("go-to-step"));
9
    tour.goTo(step);
10
});
11
</script>
12
<!-- inside a popover: -->
13
<button data-go-to-step="42">Get to the meaning!</button>

Abschluss

Bootstrap Tour ist ein leistungsstarkes Plugin, mit dem Sie schnell loslegen können. Wenn Sie Best Practices für UX und Content Design anwenden, ist eine Tour möglicherweise genau das Richtige, um auf leistungsstarke Weise mit Ihrem Publikum in Kontakt zu treten. Die Bootstrap Tour bietet noch mehr Flexibilität als hier beschrieben. Wenn Sie also einen zweiten Artikel wünschen, der noch weiter mit der Bootstrap Tour geht, teilen Sie uns dies bitte in den Kommentaren mit! Welche anderen Verwendungszwecke können Sie sich einfallen lassen? Lassen Sie alle unten kennen!