Schweben und klicken Sie auf CSS-Dreieck
Ich habe ein Dreieck mit einer javascript-Funktion, bewegt sich das Bild.
Das Problem ist, dass das element hat eine quadratische Form, so Klick und hover-Zustand ausgelöst werden, außerhalb des Dreiecks (siehe Roter Rahmen im folgenden Bild) :
Wie kann ich verhindern, dass schweben und klicken Sie außerhalb des Dreiecks Form und ermöglichen click/hover-Zustand nur innerhalb des Dreiecks-Form?
- Ist das eine gültige Lösung? fileformat.info/info/unicode/char/25b2/index.htm
- Frambach leider Nein, aber danke für die Idee
- Ist dieses Bild ein PNG mit einigen transparenten Teile? Sie sind auf der Suche um zu erkennen, ob die pixel der Benutzer geklickt hat, ist transparent oder Opak? Kann das Bild etwas, oder ist es immer ein Dreieck genau dieser Form?
- Ich kenne eine Lösung für Sie, aber könnten Sie fügen Sie einige code, um in der Lage zu verstehen, Ihr problem?
- ok, danke für die Antwort, hier das fiddle: jsfiddle.net/EdB27/1
Du musst angemeldet sein, um einen Kommentar abzugeben.
Zu verhindern schweben und klicken Sie außerhalb des CSS-Dreieck können Sie verwenden verwandelt, um den das Dreieck.
Diese Technik ist hier beschrieben : CSS-Dreiecke mit Transformation drehen
Der Punkt ist, verwenden Sie einen wrapper mit verstecktem überlauf, und drehen Sie den klickbaren/hoverable-element so, daß es tatsächlich hat eine dreieckige Form und verhindern, dass das Ereignis click oder hover-Status außerhalb des Dreiecks.
Demo: Klicken Sie auf und bewegen Sie die Maus über eine CSS-Dreieck
CSS:
HTML:
Ein anderer Ansatz wäre, eine SVG mit einem anklickbaren Dreieck :
CSS:
HTML:
Sollten Sie in der Lage sein, um Sie nur ein Bild anzeigen. Erstellen Sie einfach eine poly deckt, dass das Dreieck durch die Einstellung der Koords zu
(w/2, 0), (w, h), (0, h)
wow
undh
sind Breite und Höhe. (Ausgehend von einem gleichseitigen Dreieck, wie in deinem Beispiel. Ansonsten finden Sie einfach die Punkte mit einem Bild-editor.)Demo: http://jsfiddle.net/QXv2c/
Sollte dies funktionieren: (basierend auf Brian Nickel die Antwort zu einer weiteren Frage)
Beispiel: http://jsfiddle.net/FCf9d/
Diese Lösung setzt allerdings Voraus, dass keine transparenten Pixel im Innern des Dreiecks.
Dieses Beispiel verwendet die jsfiddle-logo statt eines Dreiecks, da Sie nicht verwenden können, remote-Bilder. Der jsfiddle-logo funktioniert, weil es auf der jsFiddle-Domäne, aber alle anderen random image funktioniert nicht.
Aber das sollte nicht das problem sein, sobald Sie implementieren Sie den code auf Ihrer eigenen website.
Ich nahm mir die Freiheit hinzuzufügen, move-Funktion, um die Geige für Sie, damit Sie alles sehen konnte, in Aktion. Wenn Sie wie mein Skript und möchte hinzufügen Grenzen, um das verschieben-Bereich, ein weiteres fiddle von mir, das diese build-in: http://jsfiddle.net/SN8Ys/
Genommen von CSS-tricks. Dies ist eine saubere Lösung aber ich bin mir nicht sicher über das Klick-Teil. Vielleicht können Sie es verwenden, um die Maske über das, was Sie haben.
HTML:
CSS:
Quelle: http://css-tricks.com/snippets/css/css-triangle/