HTML-Canvas als Seitenhintergrund festlegen

7

Ich habe eine JS-Animation gemacht, die ich als Hintergrund meiner Homepage verwenden möchte: Ссылка . Aber ich bin ziemlich neu in der Webentwicklung und es ist unklar, wie man verhindern kann, dass das Canvas-Element ein Inline-Objekt auf der Seite ist und es hinter anderen HTML-Elementen platziert. Sehr dankbar für den Rat. Das HTML ist:

%Vor%     
geotheory 26.12.2012, 16:33
quelle

2 Antworten

12
%Vor%     
Muhammad Talha Akbar 26.12.2012, 16:35
quelle
11

Im Jahr 2016 würde ich

verwenden %Vor%

Hier ist warum:

Viele Leute benutzen canvas { width: 100%; height: 100% } , aber das macht wohl keinen Sinn. Sie möchten nicht, dass die Leinwand zu 100% aus dem Körper besteht. Sie wollen es zu 100% des Bildschirms / Fensters. Das macht canvas { width: 100vw; height: 100vh; } . Es ist 100% der Breite des Darstellungsbereichs und der Höhe des Darstellungsbereichs.

Das bedeutet, dass Sie den Körper nicht auf Höhe einstellen müssen: 100%, was auch keinen Sinn ergibt, besonders wenn die Seite größer als das Fenster / der Bildschirm ist

display: block; behebt einige Probleme mit Bildlaufleisten in bestimmten Browsern. Einige Seiten verwenden html, body { overflow: none; } , aber das macht wiederum keinen Sinn, wenn Ihre Seite größer als der Bildschirm / das Fenster sein muss.

Mit

position: fixed; wird die Canvas-Position relativ zum oberen Fensterrand festgelegt, sodass sie nicht mit der Seite blättert. Wenn Sie position: absolute verwenden, wird der Canvas-Bereich von oben nach unten verschoben, wenn die Seite größer als der Bildschirm / das Fenster ist. Zum Beispiel diese Seite .

top: 0; left 0; setzt es oben links. Ohne diese würde es standardmäßig auf seine Standardposition innerhalb der Körperränder gesetzt werden. Oft wird dies durch das Setzen von body { margin: 0; } gelöst, aber das bedeutet, dass Sie am Ende einen anderen Container benötigen, um einen Rand hinzuzufügen, ansonsten wird Ihr normaler Inhalt am Rand des Fensters positioniert.

z-index: -9999; ist dazu da, um es weiter zurückzuzwingen als alles andere, nur für den Fall, dass die Seite selbst negative Werte für z-index

verwendet

Hier ist ein Beispiel als Ausschnitt

%Vor% %Vor% %Vor%

Und hier ist ein Beispiel außerhalb von SO , damit Sie es einfacher in voller Größe sehen können.

iframe s funktionieren auch

Beachten Sie, dass bei einer interaktiven Leinwandanimation die Elemente vor der Leinwand die Maus- / Berührungsereignisse verzehren. Es gibt keine einfache Lösung, die ich dafür kenne. Sie können alles außer diesem Canvas / Iframe als pointer-events: none markieren und den Canvas / Iframe als pointer-events: auto markieren, aber dann stoßen Sie auf das Problem, dass kein Text auf Ihrer Seite ausgewählt werden kann und keine Links angeklickt werden können. Sie könnten dann sagen <a> -Tags setzen, um pointer-events: auto zu haben, also funktionieren Links, aber ich bin mir sicher, dass es hier und da Probleme geben wird, abhängig davon, welche Informationen auf Ihrer Seite sind (versuchen, eine E-Mail-Adresse oder eine Adresse zu kopieren). usw. ...)

    
gman 20.07.2016 06:26
quelle

Tags und Links