2015-09-30 2 views
5

Ich baue ein 3D Css Cube-Menü. Code here.Elemente innerhalb einer Fläche eines 3D-Css-Würfels können nicht ausgewählt werden. Seltsame

<button id="btn">flip button</button>  
<div class="signup-viewport"> 
    <div id="cube" class="cube animation"> 
     <div class="front">front <a href="">front link</a></div> 
     <div class="back">Back</div> 
     <div class="left">Left</div> 
     <div class="right">Right <a href="">right link</a></div> 
     <div class="bottom">Bottom</div> 
     <div class="top">Top</div> 
    </div> 
</div> 

Wenn das Gesicht durch die ‚Flip-Taste‘ -Taste, die Verbindung von der rechten Seite des Würfels angeklickt werden kann, nicht umgedreht wird.

Irgendwelche Ideen, warum? In Firefox funktioniert die Verbindung, aber auf Chrom und Chrom nicht.

+0

Es sieht so aus, als würden Sie die 'left-rotate'-Klasse nirgends hinzufügen, wenn Sie erneut auf die Schaltfläche klicken. –

+0

@Sterling Bogenschütze den Knopf nur den Würfel auf die rechte Seite drehen. Auf der Vorderseite kann der Link angeklickt werden, aber nachdem der Flip-Button angeklickt wurde, kann der Link von der rechten Seite nicht angeklickt werden. Wenn Sie die Maus über diesen Link bewegen, wird der Cursor nicht zum Zeiger. – Cristian

Antwort

1

Nach sehr sehr viel Mühe habe ich es schließlich geschafft, das nicht anklickbare und nicht auswählbare Problem zu umgehen.

Um die Seiten des Würfels auswählbar zu machen, wird die Eigenschaft 'Perspektive' benötigt (wie @Cedric Reichenbach verdichtet); aber als Nebeneffekt kommt es aufgrund des perspektivischen Renderings zu einer Verpixelung. Ich versuchte, die Pixelierung mit einer großen Perspektivennummer (10000px) loszuwerden, aber die Verpixelung war immer noch da. Wenn man also die Anzahl der Perspektiven erhöht, geht die Rendering-Z-Ebene "weiter weg", was den Anschein von weniger Perspektive erweckt.

Nach zwei Tagen des Experimentierens aller Arten von Sachen, wie ich "Perspektive" austrickst, wurde eine extrem große Zahl für die Perspektive verwendet. (perspective: 10000000px;) Jetzt ist der Verpixelungseffekt weg und die Seiten des Würfels sind anklickbar und auswählbar.

Here ist eine Demonstration der Lösung.

1

Es ist, weil Ihre Oberflächen eine height von hatten, wodurch der Text in Padding-Bereich gerendert wird. Firefox und Chrome scheinen solche Elemente in Bezug auf Mausereignisse unterschiedlich zu behandeln.

Wenn Sie height: auto verwenden, funktioniert es wie erwartet, aber Sie sollten darauf achten, dass die Höhe konsistent mit sich ändernden Inhalten bleibt.

Hier ist Ihre modifizierte JSFiddle demonstriert es.

Update:

Offenbar Chrom verhält sich anders auf verschiedenen OS‘(oder Versionen).

Das Problem scheint jedoch mit der 3D-Natur Ihrer Transformationen in Zusammenhang zu stehen (transform-style: preserve-3D). Wenn ich eine explizite Perspektive einstelle, funktioniert es auf meinem Rechner, obwohl es immer noch ein wenig wackelig ist.

Updated JSFiddle

Sie könnten auch feststellen, dass jetzt alles ein bisschen verschwommen aussieht, da die 3D „lösen“ Inhalt aus dem Netz Pixel transformiert durch nahezu Ebene näher an den Betrachter zu heben.

+0

danke für die Antwort. Ich habe den Link besucht, aber es scheint, dass ich immer noch nicht auf den "richtigen Link" klicken kann. Ich habe diesen Höhen-Hack verwendet, um die Höhe = Breite für reaktionsfähige Dinge zu erhalten. Hoffe, ich werde damit mit Höhe = 0 durchkommen. – Cristian

+0

Das ist komisch; Ich hatte auf Linux getestet und es funktionierte, aber unter Windows scheint es sich anders zu verhalten ...Nun, Sie könnten immer ein anderes Element mit absoluter Positionierung und Z-Index> 1 verwenden, um sich nicht mit der Höhe der Eltern zu messen. –

+1

(Ich habe eine Lösung gefunden und die Antwort aktualisiert.) –

Verwandte Themen