Ich habe ein Dreieck mit einer JavaScript-Funktion, die das Bild bewegt.
Das Problem besteht darin, dass das Element eine quadratische Form hat, so dass click und der Hover-Status außerhalb des Dreiecks ausgelöst werden (siehe den roten Teil im folgenden Bild):
Wie kann ich den Mauszeiger halten und außerhalb der Dreiecksform klicken und den Klick / Hover-Status nur innerhalb der Dreiecksform zulassen?
Um Hover zu verhindern und außerhalb des CSS-Dreiecks zu klicken können Sie Transformationen verwenden, um das Dreieck zu erstellen.
Diese Technik wird hier beschrieben: CSS-Dreiecke mit transformieren drehen
Es geht darum, einen Wrapper mit verstecktem Überlauf zu verwenden und das anklickbare / verschiebbare Element so zu drehen, dass es tatsächlich eine dreieckige Form hat und das Klickereignis oder den Hover-Status außerhalb des Dreiecks verhindert.
Demo: Klicken Sie auf ein CSS-Dreieck und halten Sie den Mauszeiger darüber
Ein anderer Ansatz wäre, ein SVG mit einem anklickbaren Dreieck zu verwenden:
Sie sollten nur eine Imagemap verwenden können. Erstellen Sie einfach ein Poly, das das Dreieck abdeckt, indem Sie die Coords auf (w/2, 0), (w, h), (0, h)
setzen, wobei w
und h
Breite und Höhe sind. (Nehmen Sie ein gleichseitiges Dreieck wie in Ihrem Beispiel an. Ansonsten finden Sie die Punkte nur mit einem Bildeditor.)
Demo: Ссылка
Das sollte funktionieren: (basierend auf Brian Nickels Antwort auf eine andere Frage) p> %Vor%
Arbeitsbeispiel: Ссылка
Bei dieser Lösung wird davon ausgegangen, dass sich innerhalb des Dreiecks keine transparenten Pixel befinden.
In diesem Beispiel wird das jsfiddle-Logo anstelle eines Dreiecks verwendet, da Remote-Bilder nicht verwendet werden können. Das jsfiddle-Logo funktioniert, weil es auf der jsFiddle-Domain ist, aber kein anderes zufälliges Bild funktioniert.
Aber das sollte kein Problem sein, sobald Sie den Code auf Ihrer eigenen Website implementieren.
Ich habe mir die Freiheit genommen, die Move-Funktion für dich auf die Geige zu legen, damit du alles in Aktion sehen kannst. Wenn dir mein Skript gefällt und ich dem Bewegungsbereich Grenzen hinzufügen möchte, schau dir eine andere Geige an, auf der diese installiert sind: Ссылка
Tags und Links css svg css3 geometry css-shapes