我有一个三角形,用一个JavaScript函数移动图像。
问题是该元素具有方形形状,因此单击和悬停状态在三角形外部触发(请参见下图中的红色部分):
x1c 0d1x的数据
如何在三角形外部禁止悬停和点击,而在三角形内部只允许点击/悬停状态?
现在我只有一个div和content:url('http://static.tumblr.com/g1c47pc/7iMn39g0v/tr1.png');
来做一个三角形,但是我不知道如何让它可以悬停/点击。如果有其他方法,我愿意接受。
https://jsfiddle.net/EdB27/1/
4条答案
按热度按时间wwtsj6pe1#
为了防止悬停和点击CSS三角形外面你可以使用变换来使三角形。
这种技术在这里描述:CSS三角形与transform旋转
关键是使用一个带有隐藏溢出的 Package 器,旋转可点击/可悬停元素,使其实际上具有三角形形状,并防止点击事件或悬停状态出现在三角形之外。
演示:Click and hover on a CSS triangle
个字符
另一种方法是使用带有可点击三角形的SVG:
的字符串
wmvff8tz2#
你应该能够使用一个图像贴图。只需创建一个多边形,通过将坐标设置为
(w/2, 0), (w, h), (0, h)
来覆盖三角形,其中w
和h
是宽度和高度。(假设一个等边三角形,就像你的例子一样。否则只需使用图像编辑器找到点。)字符串
演示:http://jsfiddle.net/QXv2c/
6l7fqoea3#
这应该是可行的: (基于Brian Nickel's answer到另一个问题)
字符串
示例:http://jsfiddle.net/FCf9d/
此解决方案假定三角形内部没有透明像素。
这个例子使用了jsfiddle logo而不是三角形,因为你不能使用远程图像。jsfiddle-logo可以工作,因为它在jsFiddle-domain上,但任何其他随机图像都不起作用。
但是,一旦你在自己的网站上实现了代码,这就不应该是一个问题。
我擅自为你添加了移动功能,这样你就可以看到所有的动作。如果你喜欢我的脚本,想添加边界到移动区域,看看我的另一个小提琴,它内置了这些:http://jsfiddle.net/SN8Ys/
fae0ux8s4#
这是一个简洁的解决方案,但是我不确定点击部分。也许你可以用它来屏蔽你所拥有的。
HTML:
字符串
CSS:
型
来源:http://css-tricks.com/snippets/css/css-triangle/