Using HTML Elements to Trigger Actions in index.html

Im Rahmen des VC Story Plugins können Sie HTML-Elemente verwenden, um Aktionen auszulösen, die in der Datei items.json definiert sind. Dies ermöglicht ein interaktiveres Storytelling-Erlebnis.

1. ToDos in items.json

1.1. 1. Definieren Sie die Aktion

Zuerst müssen Sie die Aktion in der Datei items.json unter dem Schlüssel actions definieren. Wenn Sie beispielsweise eine Viewpoint-Aktion erstellen möchten, könnte dies wie folgt aussehen:

{
    "actions": [
        {
            "id": "viewpoint-PotsdamerPlatz",
            "type": "viewpoint",
            "viewpoint": {
                "distance": 533.79,
                "groundPosition": [13.375510, 52.509600, 35.240790],
                "heading": 263.71,
                "pitch": -44.86,
                "roll": 0,
                "animate": true
            }
        }
    ]
}

Dieses Beispiel definiert eine Viewpoint-Aktion mit einer eindeutigen ID und spezifischen Parametern für die Kameraposition und Animation.

1.2. 2. Verknüpfen Sie die Aktion

Als Nächstes müssen Sie diese Aktion mit einem HTML-Element in der Datei index.html verknüpfen. Dies geschieht, indem Sie Objekte zum Schlüssel items in der Datei items.json hinzufügen.

{
    "items": [
        {
            "htmlID": "#story_start",
            "scrollInteraction": ["startview"],
            "clickInteraction": []
        },
        {
            "htmlID": "#demo-viewpoint",
            "scrollInteraction": ["geojson-nbs-site", "nbs-pilot"],
            "clickInteraction": []
        },
        {
            "htmlID": "#switch-layer",
            "scrollInteraction": [],
            "clickInteraction": ["layer-disable"]
        },
        {
            "htmlID": "#switch-map",
            "scrollInteraction": [],
            "clickInteraction": ["map-switch"]
        },
        {
            "htmlID": "#demo-flight",
            "scrollInteraction": [],
            "clickInteraction": ["flight-demo"]
        }
    ]
}

Es gibt zwei Möglichkeiten, eine Aktion auszulösen: entweder durch eine Scroll- oder durch eine Klick-Interaktion. Die Art der Interaktion wird innerhalb dieser Objekte festgelegt. In der Datei items.json gibt der Schlüssel htmlID das HTML-Element an, das die Aktion auslöst. Der Schlüssel scrollInteraction wird für durch Scrollen ausgelöste Aktionen verwendet, während der Schlüssel clickInteraction für durch Klicken ausgelöste Aktionen genutzt wird.

2. ToDos in index.html

In der Datei index.html müssen Sie sicherstellen, dass die HTML-Elemente die entsprechenden Attribute besitzen, um die in der Datei items.json definierten Aktionen auszulösen.

2.1. index.html öffnen

Navigieren Sie zum div <div id="story-box" class="ui-scroll-content"> innerhalb von <div id="story-frame" class="tour"> und fügen Sie den Inhalt hinzu, den Sie in der VC Story anzeigen möchten. Dieser Inhalt kann Text, Bilder und andere HTML-Elemente umfassen, die Teil Ihrer Story sind.

<div id="story-frame" class="tour">
  <!-- Content Tour -->

  <div id="tour-frame" style="display: block; /*overflow: hidden;*/">
    <nav class="tour-top-navi">
    <!-- Place here your html content from old story from <nav> section to display all buttons -->
    </nav>
    <div id="story-box" class="ui-scroll-content">
        <!-- Place here your html content from old story from story section -->
    </div>
  <!-- End of: Content Tour -->
</div>

2.2. scroll interactions

In der Regel werden Scroll-Interaktionen mit div-Elementen verknüpft, Klick-Interaktionen mit Button-Elementen.

 <div id="story_start" class="story-content">
    <h2>Willkommen zur VC Story</h2>
    <p>Dies ist die Einführung zu Ihrer Story.</p>
    </div>

Wie oben gezeigt, besitzt das div-Element mit der ID story_start die Klasse story-content, die für Scroll-Interaktionen erforderlich ist. Dieses Element löst die in der Datei items.json definierte Aktion aus, wenn es beim Scrollen in den sichtbaren Bereich gelangt. Um eine Scroll-Interaktion auszulösen, muss das Attribut class="story-content" dem entsprechenden HTML-Element hinzugefügt werden.

Das Klassenattribut class="story-content" ist für Scroll-Interaktionen erforderlich. Außerdem muss die Element-ID eine Aktion im scrollInteraction-Array des htmlID-Eintrags im Schlüssel items der Datei items.json haben.

2.3. click interactions

    <div class="w3-bar w3-margin-top w3-margin-bottom">
        <button id="switch-map" class="w3-button w3-orange"><i class="fa fa-eye"></i>
        <span class="i18n_btn_science">Map 2D / 3D</span></button>
        <button id="switch-layer" class="w3-button w3-orange"><i class="fa fa-eye"></i>
        <span class="i18n_btn_science">Show layer</span></button>
        <button id="demo-flight" class="w3-button w3-orange"><i class="fa fa-eye"></i>
        <span class="i18n_btn_science">Fly-through</span></button>
    </div>

Die Voraussetzung für eine Klick-Interaktion ist, dass das anklickbare Element eine id besitzt.

Das anklickbare Element muss eine id haben, die in der Datei items.json verwendet wird, um die Aktion mit dem HTML-Element zu verknüpfen. Das Array clickInteraction in der Datei items.json enthält die Aktions-IDs, die beim Klicken auf den Button ausgelöst werden sollen.