Versetzen Sie die Benutzer mit den Bestätigungs-Feedback-Schaltflächen in die Kontrolle

In diesem Lernprogramm erfahren Sie, wie Sie eine responsive Webseite mit Schaltflächen erstellen, die je nach Interaktion des Benutzers unterschiedliche Status annehmen. Diese Art der Interaktion ist besonders nützlich für Links wie "Kaufen" oder "Löschen", bei denen es sinnvoll ist, zu bestätigen, dass der Benutzer tatsächlich eine bestimmte Aktion ausführen möchte.

Diese Interaktion ist eine, die viele kennen; Beim Kauf von Apps können Sie einen ähnlichen Effekt im App Store von Apple feststellen.


Entschuldigung für die Franzosen, Sie bekommen die Idee…

Die Seite, die wir in diesem Tutorial erstellen, funktioniert auch auf mobilen Geräten, da es sich um ein responsives Design handelt.


Einführung

Wir erstellen eine Musterseite basierend auf dem Tuts + -Netzwerk. Diese Seite enthält Bestätigungsschaltflächen. Obwohl in diesem Beispiel die Bestätigungsschaltflächen "Jetzt beitreten" verwendet werden, ist es denkbar, dass Sie diese Art der Interaktion überall dort einsetzen können, wo Sie einen Benutzer benötigen, um die Aktion zu bestätigen, die er ausführen möchte.

Wann und warum sollte ich diese Interaktion wählen?

Ein gutes UI-Design gibt den Benutzern ein verständliches Gefühl der Macht, das ihnen stets hilft, die Kontrolle zu behalten.

Ein wichtiger Aspekt der Mensch-Computer-Interaktion besteht darin, dem Benutzer ein Gefühl der Kontrolle zu vermitteln. Wenn Benutzer die Kontrolle haben, fühlen sie sich wohl. Wenn sie nicht die Kontrolle haben, werden sie frustriert. Aber wenn Sie darüber nachdenken, sind die Menschen es immer in der Kontrolle. Computer tun niemals etwas, ohne dass Sie sie zuerst dazu aufgefordert haben.

Hier kommt die Bedeutung guter Software und des UI-Designs ins Spiel. Ein gutes UI-Design gibt den Benutzern ein verständliches Gefühl der Macht, das ihnen stets hilft, die Kontrolle zu behalten. Sie werden nie fragen "Warten, warum ist das passiert?" oder "warte, wie bin ich hierher gekommen?"

Sie können dem Benutzer ein Gefühl der Kontrolle vermitteln, indem Sie ihm bei jeder Interaktion Einblicke vermitteln. Helfen Sie ihnen, Ursache und Wirkung im System zu verstehen. Wenn Sie ein grundlegendes Beispiel verwenden, wenn Sie etwas speichern, erhalten Sie vom System eine positive Nachricht mit dem Hinweis "Ihre Einstellungen wurden gespeichert". Daher werden Benutzer nie fragen "Ich frage mich, ob das gerettet wurde?"

Was hat das mit dem Tutorial zu tun??

Die Interaktion, die wir in diesem Lernprogramm erstellen, hilft dem Benutzer, ein Gefühl der Kontrolle zu bekommen. Durch das Ändern des Schaltflächenstatus und die Bestätigung der Kaufentscheidung durch den Benutzer stellen wir sicher, dass der Benutzer niemals unbeabsichtigt etwas unternimmt. Dies ist besonders nützlich, wenn Sie Benutzer bitten, sich von ihrem hart verdienten Geld zu trennen. Das Letzte, was jemand will, ist, versehentlich etwas zu bezahlen!

Das Schöne an dieser Interaktion ist, dass die Benutzer nicht über eine Popup-Eingabeaufforderung mit der Meldung "Sind Sie sicher, dass Sie sie kaufen möchten?" Erhalten, über die Schaltfläche Statusänderung benachrichtigt werden, dass sie etwas Wichtiges tun werden. Wenn sie es nicht wollen, können sie einfach weiter auf der Website surfen. Eine Warnmeldung würde den Benutzer jedoch ausdrücklich dazu zwingen, eine Ja / Nein-Entscheidung zu treffen.

Bevor du anfängst

Stellen Sie sicher, dass Sie die Abhängigkeiten der Bilddateien für dieses Lernprogramm verwenden. Legen Sie sie in einen Ordner mit dem Namen "images". Alle anderen Dateien (HTML, CSS, JavaScript) werden im Hauptverzeichnis gespeichert. Am Ende des Tutorials sieht Ihre Dateistruktur folgendermaßen aus:


Schritt 1: Erste Schritte mit HTML

Beginnen wir mit der Erstellung eines einfachen HTML-Codes, der unsere Seitenstruktur definiert.

    Bestätigungsrückmeldungsschaltflächen   

Hier haben wir also unsere grundlegende HTML5-Seitenstruktur. Wir haben unseren DOCTYPE, unseren Seitentitel und einen Haupttext eingefügt

Element mit einer ID von #Container


Schritt 2: Verknüpfung mit Abhängigkeiten

Fügen wir nun die Links zu den Abhängigkeiten des Markups hinzu.

Zuerst fügen wir einen Link zu unserem CSS-Stylesheet hinzu (das wir bald erstellen werden). Das geht in die Element.

 

Als Nächstes fügen wir einen Link zur gehosteten Version von jQuery von Google sowie einen Link zu "script.js" hinzu, der den Javascript-Code enthält, den wir später erstellen. Lassen Sie uns diese kurz vor dem Abschluss setzen Etikett.

   

Weil wir HTML5-Elemente verwenden werden und

Wir müssen das HTML5-Shiv hinzufügen, damit unser Markup in IE8 funktioniert. Fügen Sie dies in Ihre Kopfzeile ein:

 

Schritt 3: Flexibel gestalten

Wir werden diese Seite so gestalten, dass sie flexibel und flexibel ist. Um sicherzustellen, dass mobile Browser unsere Seite richtig darstellen, müssen Sie die Meta-Ansichtsfenster-Eigenschaft festlegen. Um mehr darüber zu erfahren, lesen Sie den Artikel von Ian Yates über das Viewport-Meta-Tag. Andernfalls fügen Sie einfach dieses Codefragment in Ihr ein Element.

 

Schritt 4: Erstellen des Header-Markups

Beginnen wir damit, unserem Dokument einen Seitenkopf hinzuzufügen.

  

Der beste Weg, um kreative und technische Fähigkeiten wie Design, Entwicklung und mehr zu erlernen!

Unser Header (in verschiedenen Größen) ist ziemlich einfach und sieht so aus:


Schritt 5: Erstellen Sie das Listen-Markup

Jetzt erstellen wir eine ungeordnete Liste unter unserer Element. Wir verwenden dies, um unsere aufgelisteten Elemente in einzufassen.

Die ungeordnete Liste

 

Wie Sie sehen, haben wir unserer ungeordneten Liste eine Klasse von "Liste" gegeben, mit der wir ihre Stile mit CSS anvisieren.

Die Listenelementstruktur:

 
  • Wie Sie sehen können, in jedem

  • , Wir haben zwei Hauptelemente; ein
    und ein
    . Das figure-Element eignet sich ideal für das Symbol des Listenelements. Im div mit einer Klasse von "info" geben wir die mit dem Symbol verknüpften Informationen ein. Auch dies ist alles in einem enthalten
  • Element.

    Das Symbol

    Innen

    Wir setzen das Symbol des Elements mit der Etikett. Die Breite des Figurenelements wird gesteuert. Durch Festlegen, dass das Bild eine maximale Breite haben sollte, die der Figur entspricht, wird die Größe entsprechend dem übergeordneten Element angepasst!

     

    Die info

    Innen

    Wir werden drei Elemente haben:

    1. Die Kopfzeile des Artikels (mit der

      Element)

    2. Die Aktionstaste (mit der Element)
    3. Die Beschreibung des Artikels (mit der

      Element)

    Wir geben unseren Knopf (die Element) eine Klasse von "join" für späteres CSS-Styling.

     

    Aktivierungen+

    15,99 $

    Lorem ipsum dolor sitzt amet, consectetur adipisicing elit, temporäre Zwischenfälle und Labore et dolore magna aliqua.

    Endgültiger Code für jeden
  • Element
  •  
  • Aktivierungen+

    15,99 $

    Lorem ipsum dolor sitzt amet, consectetur adipisicing elit, temporäre Zwischenfälle und Labore et dolore magna aliqua.

  • Folgendes haben wir bisher:


    Schritt 6: Duplizieren und Ändern
  • Element
  • Jetzt haben wir die Grundstruktur für jeden

  • Element, alles, was wir tun müssen, ist es für jeden Tuts + -Eintrag zu duplizieren. Wir müssen für jeden Listenpunkt Folgendes ändern:

    1. Das

      Text

    2. Das Verknüpfung
    3. Das Dateiname

    Sie können den Listenelementcode für jede Tuts + Site kopieren und einfügen.

    Das haben wir jetzt:


    Schritt 7: Basic CSS

    Nachdem wir alle Markierungen abgeschlossen haben, beginnen wir mit dem Gestalten der Seite. Wir beginnen mit einigen grundlegenden Resets:

     / * quick reset * / body, h1, h2, p, ul, li Marge: 0; Polsterung: 0;  ul list-style-type: none;

    Lassen Sie uns nun die Hauptdarstellung gestalten Karosserie Element.

     Körper Hintergrund: #eee; Schrift: 16px / 1.4em Helvetica, Arial, serifenlos; Farbe: # 333; 

    Hier legen wir die Hintergrundfarbe und einige Standardwerte für unsere Typografie fest, z. B. Schriftgröße, Farbe und Zeilenhöhe.


    Schritt 7: Reaktionsschnell (flüssig)

    Wir möchten, dass unsere Seite bis hin zu mobilen Geräten flexibel ist. Die zwei Schlüsselkomponenten, die wir verwenden, um dies zu erreichen, sind die Prozentsätze und die maximale Breite Regel.

    Wenn Sie sich unser HTML ansehen, werden Sie sehen

    ist der Hauptcontainer für den Inhalt unserer Seite. Wir verwenden Prozentwerte für die Breite und fügen ein paar grundlegende Formatierungen hinzu, um sie visuell vom Seitenhintergrund zu trennen.

     #container width: 100%; Marge: 0 Auto 40px; Max-Breite: 600px; Hintergrund: #fff; Grenzradius: 0 0 3px 3px; Rand: 1px fest # d0d0d0; Border-Top: 0; Box-Schatten: 0 1px 0px #fff; 

    Hier legen wir die Breite unseres Containers auf 100% des Darstellungsbereichs des Browsers fest. Unsere Ränder zentrieren den Inhalt der Seite. Wir haben auch hinzugefügt Max-Breite: 600px weil wir nicht wollen, dass unsere Listenelemente größer werden.

    Wie Sie sehen können, bietet unser Container bei größeren Größen an den Seiten etwas mehr Platz und einen hellen Hintergrund. Bei kleineren Größen verschwindet dieser zusätzliche Platz und wir haben nur einen weißen Hintergrund für unseren Inhalt.

    Vergessen wir nicht, unsere Bilder ansprechbar zu machen:

     img max-Breite: 100%; 

    Schritt 8: Header-Styles

    Lassen Sie uns nun unser Hauptbild gestalten Element und den Inhalt darin.

     header text-align: center; Polsterung: 30px 20px;  header h1 margin-bottom: 20px;  header p color: # 413c38; Schriftgröße: 1.2em; Zeilenhöhe: 1.4em; 

    Unser Header-Element und sein Inhalt sind jetzt schön zentriert und dimensioniert.


    Schritt 9: Strukturelle Listenelementstile

    Jetzt werden wir unsere Listenelemente und ihre Geschwister gestalten. Lassen Sie uns zunächst einige grundlegende Strukturstile erstellen:

     .icon, .info Größenanpassung: Rahmen;  .icon float: left; Breite: 15%; Textausrichtung: rechts; Polsterung links: 3%;  .info Breite: 85%; Schwimmer: links; Polsterung: 0 5%; 

    Wenn Sie sich richtig erinnern, haben wir in jedem Listenelement zwei Hauptelemente: 'Symbol' und 'Info'. Die Symbolfigur wird nach links verschoben und erhält eine kleine Breite. Das Info-Div wird nach rechts verschoben und erhält die Mehrheit der übergeordneten Breite.

    Wie Sie sehen, haben wir das verwendet Box-Dimensionierung: Border-Box; Regel auf diesen beiden Divs. Auf diese Weise können wir unsere Gesamtbreite auf 100% aufaddieren und trotzdem die Auffüllung hinzufügen, ohne die Gesamtbreite von 100% zu überschreiten. (Weitere Informationen zu dieser Eigenschaft finden Sie unter Responsive Form-Elemente zum Spielen von Nizza.).


    Schritt 10: Artikelstile auflisten

    Nach unseren strukturellen CSS-Ergänzungen haben wir jetzt etwas, das folgendermaßen aussieht:

    Wie Sie sehen können, muss dies etwas aufgeräumt werden. Da wir unsere Elemente 'info' und 'icon' schweben lassen, müssen wir jedem Listenelement ein klares Zeichen hinzufügen. Jedem Listeneintrag werden wir ein wenig Styling hinzufügen.

     .list li padding: 20px 0; Border-Top: 1px fest #eee; Überlauf: Auto; Lösche beide;  .list li: hover background: # f7f7f7; 

    Als letztes werden wir die Informationen in jedem Listenelement formatieren:

     .info h2 Rand unten: 10px; Schriftgröße: 1.75em; Zeilenhöhe: 1em; Anzeige: Inline-Block;  .info p font-size: 14px; Farbe: # 777; 

    Jetzt haben wir etwas, das ziemlich solide aussieht.


    Schritt 11: Schaltflächenstile

    Lassen Sie uns nun ein wenig Styling auf unsere Knöpfe anwenden. Wir machen sie visuell prominent:

     eine Textdekoration: keine; Farbe: #fff;  .join Hintergrund: # 57a9eb; / * Alte Browser * / Hintergrund: -moz-linearer Gradient (oben, rgba (87,169,235,1) 0%, rgba (53,156,234,1) 100%); / * FF3.6 + * / Hintergrund: -webkit-Gradient (linear, links oben, links unten, Farbstopp (0%, rgba (87,169,235,1)), Farbstopp (100%, rgba (53,156,234,1 ))); / * Chrome, Safari4 + * / Hintergrund: -webkit-linearer Gradient (oben, rgba (87,169,235,1) 0%, rgba (53,156,234,1) 100%); / * Chrome10 +, Safari5.1 + * / Hintergrund: -o-linearer Gradient (oben, rgba (87,169,235,1) 0%, rgba (53,156,234,1) 100%); / * Opera 11.10+ * / Hintergrund: -ms-linearer Gradient (oben, rgba (87,169,235,1) 0%, rgba (53,156,234,1) 100%); / * IE10 + * / Hintergrund: linearer Gradient (oben, rgba (87,169,235,1) 0%, rgba (53,156,234,1) 100%); / * W3C * / filter: progid: DXImageTransform.Microsoft.gradient (startColorstr = "# 57a9eb", endColorstr = "# 359cea", GradientType = 0); / * IE6-9 * / border: 1px fest # 326fa9; Rahmenfarbe: # 3e80b1; Rahmenfarbe unten: # 1e549d; Farbe: #fff; Schriftdicke: fett; Text-Transformation: Großbuchstaben; Text-Schatten: 0 -1px 0 # 1e3c5e; Schriftgröße: 11px; Grenzradius: 5px; Box-Schatten: 0 1px 0 #bbb, 0 1px 0 # 9cccf3 Einschub; Leerraum: Nowrap; -webkit-Übergang: alle 0,25er-Leichtigkeit; -Moz-Übergang: alle 0,25s Leichtigkeit; Übergang: alle .25s Leichtigkeit; schweben rechts; Anzeige: Inline-Block; Polsterung: 1px 1em 0; / * lassen Sie den Mittelpunkt von 1px hervorheben * / Zeilenhöhe: 2.25em; 

    Was haben wir hier gemacht??

    Position
    Wir schwenkten unseren Knopf nach rechts. Dadurch wird die Schaltfläche rechts neben der Kopfzeile der Hauptliste angezeigt.
    Polsterung
    Wir haben die Line-Height-Eigenschaft verwendet, um den Button auf die gewünschte Höhe zu bringen. Wir haben auch 1px-Auffüllung auf der Oberseite hinzugefügt. Dies gleicht die 1px-Hervorhebung aus, die wir mit der box-shadow-Eigenschaft hinzugefügt haben.
    Visuelles Styling
    Wir haben einige visuelle Stile mit Rahmen, Rahmenschatten usw. hinzugefügt. Außerdem haben wir die CSS3-Hintergrundverlaufsfunktion verwendet (Sie können hilfreiche Generatorwerkzeuge wie ColorZilla verwenden, um Ihre Farbverläufe zu erzeugen)..

    Schritt 11: Alternative Button Styles

    Alles sieht gut aus. Was wir jetzt tun möchten, ist das Hinzufügen von Stilen für eine Klasse, die beim Klicken auf die Schaltfläche (n) angewendet werden. In diesem Tutorial fügen wir den Text "Jetzt verbinden" zum vorhandenen Schaltflächentext hinzu, wenn auf die Schaltfläche geklickt wird. Im Wesentlichen muss der Benutzer die Entscheidung treffen, zweimal "beizutreten".

    Um dies zu erreichen, verwenden wir ein paar CSS-Stile, einschließlich der CSS3-Pseudo-Klasse ::nach dem

    Geklickte Klassenstile

    Lassen Sie uns eine Klasse mit dem Namen "clicked" erstellen, zu der wir die Stile für "angeklickte" Schaltflächen hinzufügen können. Zu Entwicklungszwecken können Sie manuell eine Klasse von "clicked" hinzufügen 15,99 $).

     .join.clicked Hintergrund: # 24a501; / * Alte Browser * / Hintergrund: -moz-linearer Gradient (oben, rgba (30.183,0,1) 0%, rgba (36,165,1,1) 100%); / * FF3.6 + * / Hintergrund: -webkit-Gradient (linear, links oben, links unten, Farbstopp (0%, rgba (30.183,0,1)), Farbstopp (100%, rgba (36,165) 1,1))); / * Chrome, Safari4 + * / Hintergrund: -webkit-linearer Gradient (oben, rgba (30.183,0,1) 0%, rgba (36,165,1,1) 100%); / * Chrome10 +, Safari5.1 + * / Hintergrund: -o-linearer Gradient (oben, rgba (30.183,0,1) 0%, rgba (36,165,1,1) 100%); / * Opera 11.10+ * / Hintergrund: -ms-linearer Gradient (oben, rgba (30.183,0,1) 0%, rgba (36,165,1,1) 100%); / * IE10 + * / Hintergrund: linearer Gradient (oben, rgba (30.183,0,1) 0%, rgba (36,165,1,1) 100%); / * W3C * / filter: progid: DXImageTransform.Microsoft.gradient (startColorstr = "# 1eb700", endColorstr = "# 24a501", GradientType = 0); / * IE6-9 * / border: 1px fest # 1e8701; Rahmenfarbe unten: # 176701; Rahmenfarbe: # 24a501; Box-Schatten: 0 1px 0 #bbb, 0 1px 0 # acc63d Einschub; Polsterung: 1px 2em 0; Cursor: Zeiger;  .join.clicked: aktiv Box-Schatten: 0 0 8px # 777 Einfügung; 

    Wie Sie sehen, haben wir die Klasse "click" der Klasse "button" hinzugefügt. Auf diese Weise werden die Stile, die wir für "angeklickt" deklarieren, nur auf Elementen angezeigt, die auch eine Klasse von Schaltflächen haben. Was das Styling angeht, haben wir einfach die Farbe und die Ränder geändert. Möglicherweise haben Sie auch bemerkt, dass wir der Schaltfläche einen Box-Schatten hinzugefügt haben, wenn darauf geklickt wird. Dadurch wird ein eingerückter Schaltflächenstil hinzugefügt, der dem Benutzer den Eindruck vermitteln kann, dass auf die Schaltfläche geklickt wurde.

    ::nach dem Klassenstile

    Wenn der Benutzer auf die Preisschaltfläche klickt, möchten wir, dass die Schaltfläche erweitert und der Text "Jetzt beitreten" vorangestellt wird. Dazu verwenden wir die Pseudo-Klasse CSS3 ::nach dem um den gewünschten Text einzufügen.

     .join.clicked :: before content: 'Jetzt Mitglied werden'; 

    Jetzt haben wir so etwas:


    Schritt 12: Medienabfragen

    Wie Sie sehen können, beginnt der "Jetzt teilnehmen" -Button bei der mobilen Größe ein wenig eng. Wenn der Kopfzeilentext sehr lang ist, wird unser Button in unsere Kopfzeile eingefügt. Wir nutzen also die Möglichkeiten von Medienabfragen, um unsere Aktionstaste auf die nächste Stufe zu bringen, wenn wir kleinere Bildschirmgrößen verwenden.

    Erstellen Sie eine Medienabfrage zum Verschieben unserer Schaltfläche:

     @media screen und (max-width: 450px) .info h2 display: block;  .join float: none; Rand unten: 20px; 

    Jetzt wird unsere Schaltfläche bei kleineren Bildschirmgrößen unterhalb der Kopfzeile angezeigt!


    Schritt 13: Schaltflächeninteraktion mit jQuery

    Gehen wir nun in unsere "script.js" -Datei und schreiben ein Javascript, das die Schaltflächenstile ändert, wenn sie angeklickt werden.

    Lassen Sie uns zunächst unser Skript für jQuery einrichten

     $ (document) .ready (function () // code here);

    Schritt 14: Klassen wechseln

    Unser Skript ist eigentlich ziemlich einfach. Alles, was wir tun müssen, ist das Umschalten der Klasse von "Klick", wenn eine Schaltfläche angeklickt wird.

    Lass uns also eine Funktion einrichten:

     $ ('. join'). on ('click', function () // Code hier);

    Nun wollen wir prüfen, ob die Schaltfläche, auf die bereits geklickt wurde, eine Klasse von "angeklickt" hat (möglicherweise wurde sie zuvor angeklickt). Wenn die Klasse nicht angeklickt wurde, fügen wir sie hinzu und verhindern die href Attribut des Links ab gefolgt werden.

     // Wenn keine Klasse angeklickt wurde, // füge eine hinzu und verhindere, dass dem Link gefolgt wird if (! ($ (this) .hasClass ('clicked'))) // Entferne alle 'angeklickten' Klassen wenn es irgendwelche $ ('. clicked') gibt. removeClass ('clicked'); // Füge die angeklickte Klasse der Schaltfläche hinzu, auf die geklickt wurde $ (this) .addClass ('clicked'); // verhindern, dass der Link verfolgt wird return false; 

    Wenn auf die Schaltfläche, auf die bereits geklickt wurde, eine Klasse von "angeklickt" wurde href Wert wird vom Browser gefolgt. Dies funktioniert gut, denn wenn ein Benutzer auf diese Seite stößt und Javascript deaktiviert hat, kann er einfach nicht bestätigen, dass er sich "jetzt anmelden" entschieden hat. Stattdessen wird der Link einfach ohne Bestätigungsmeldung verfolgt.


    Schritt 15: Entfernen der angeklickten Klasse

    Wenn ein Benutzer auf die Preisschaltfläche klickt, wird der Status der Schaltfläche geändert. Was ist, wenn sie die Schaltfläche schließen möchten und sie außerhalb der Schaltfläche klicken? Wir werden diesen Klick registrieren und die Klasse "angeklickt" entfernen. Dies ist eine einfache Zeile von jQuery:

     // Wenn der Klick außerhalb der .buy-Schaltfläche erfolgt, entfernen Sie die Klasse $ ('body'). on ('click', function () $ ('. clicked'). removeClass ('clicked'););

    Schritt 16: Übergang hinzufügen

    Wir möchten ein wenig mehr Interaktivität hinzufügen, indem der Übergang zwischen den "geklickten" und den normalen Tastenzuständen sanfter gestaltet wird. Wir verwenden nur einen CSS3-Übergang und wenden ihn auf die Button-Klasse "join" an:

     -Webkit-Übergang: alle .25s Leichtigkeit; -Moz-Übergang: alle 0,25s Leichtigkeit; -ms-Übergang: alle .25s Leichtigkeit; -o-Übergang: alle .25s Leichtigkeit; Übergang: alle .25s Leichtigkeit;

    Das ist es!

    Sie haben jetzt eine schöne Bestätigungstaste. Es hilft Benutzern, ihre Entscheidung zu bestätigen, eine wichtige Entscheidung mit Ihrer Webseite / Anwendung zu treffen. Fühlen Sie sich frei, mit diesem Konzept herumzuspielen, es besser zu machen und mehr zu lernen!