HTML5 / CSS3 - wie man "endlosen" rotierenden Hintergrund macht - 360 Grad Panorama

8

Ich habe ein JPG-Bild mit der 360-Grad-Ansicht der Stadt (9000px um 1000px). Ich muss eine Seite mit endlos rotierendem Hintergrund erstellen, die dem Benutzer beispielsweise den Eindruck einer rotierenden Webkamera vermittelt.

Der erste Teil - Scrollen von links nach ganz rechts vom Bild ist sehr einfach - verwenden Sie einfach jQuery.animate (...). Aber wie kann ich nahtlos zum Anfang des Bildes zurückkehren (nachdem es 359 Grad gedreht hat), so dass der Benutzer "Sprung" oder ähnliches nicht bemerken wird?

Gibt es wahrscheinlich Beispiele im Internet?

Ich ziele nur auf HTML5 / CSS3 (Webkit) Browser, und ich kann die neueste jQuery verwenden.

Danke.

    
avs099 23.06.2012, 14:14
quelle

6 Antworten

11

Die Hauptidee hinter dem rotierenden Hintergrund ist, dass Sie zwei Bilder zeichnen: eins in (x, 0) und ein anderes in (x - w, 0) mit w als Breite des Bildes. Sie können x im Laufe der Zeit erhöhen und sobald x === w Sie x = 0 zurücksetzen. Sie werden diesen Reset nicht visuell sehen, da das zweite Bild genau an der gleichen Position positioniert ist wie das erste. Nach dem Zurücksetzen können Sie wieder von vorne beginnen, so dass das rotierende endlos aussieht.

(Ich verwende zwei Bilder unter der Annahme width of container <= width of image .)

Sie könnten z. B. verwenden:

pimvdb 23.06.2012, 14:51
quelle
5

Sie können dies ohne jQuery mithilfe von CSS3-Animationen tun. Ich gehe davon aus, dass das Hintergrundbild der Stadt so eingestellt ist, dass es nahtlos auf dem Container wiederholt wird.

Sie richten Ihre Keyframes ein, um das Hintergrundbild mit der Breite des wiederholbaren Bildes zu animieren, und weisen Sie an, dass die Schleife unbegrenzt und ohne Verzögerung wiederholt werden soll. Zum Beispiel ist mein Bild der treibenden Wolken 1456 px breit und wiederholt x:

%Vor%

Stellen Sie sicher, dass Sie @ -webkit-keyframes, @ -moz-keyframes, @ -o-keyframes und -webkit-animation, -moz-animation, -o-animation auf FF, Safari und Chrome einstellen.

Ссылка

    
sgoldman 20.09.2012 18:48
quelle
2

Es gibt da draußen Lösungen, die sie "Bild-Stitching" nennen, für die die Leute Plugins gemacht haben.

Ссылка

Dieser funktioniert auch für Handys. Ссылка

    
xivo 23.06.2012 14:54
quelle
1

Sie können mit der Hintergrundposition und der jquery animate Funktion spielen, siehe das Beispiel:

Ссылка

Nimm einen endlosen Hintergrund und animiere von 0 bis zur Breite des Hintergrunds im kompletten Event, setze die Hintergrundposition auf 0 und feuere die Animation erneut.

    
rfranr 23.06.2012 14:55
quelle
1

Wenn Sie nur Webkit-Browser verwenden, können Sie dies nur mit CSS3 erreichen. CSS3 hat integrierte Unterstützung für Animationen. Durch Angabe von 'infinite' mit der iteration-count -Eigenschaft wird Ihre Animation für immer und ewig fortgesetzt und ... Sie erhalten den Punkt; -)

%Vor%

Und natürlich das Bild in Ihrem HTML:

%Vor%     
J.P. ten Berge 23.06.2012 14:25
quelle
0

Sie könnten CSS-Animationen verwenden, um einen solchen "Look-around" -Effekt zu erzielen - ideal für Parallaxe!

Anstatt mehrere Bilder hinzuzufügen und deren left etc zu animieren, könntest du einfach einen Hintergrund setzen und sein background-position :

animieren %Vor%

Dies würde mit neuen Gecko / Chromium Browsern funktionieren (w / vendor prefix adjusted); fiedled

    
o.v. 25.06.2012 00:32
quelle

Tags und Links