我必须创建这种奇怪的蜂窝式导航,理想情况是当一个用途悬停在每个'蜂窝'时,它会改变颜色。也许是透明的橙色覆盖物或其他东西。
我做了一个有点工作的JS小提琴,但不知道如何突出悬停时的形状。我没有看过长时间使用的图像地图,但这是我所知道的唯一解决方案。还有其他更现代的解决方案吗?
http://jsfiddle.net/dmathisen/v9wZV/
注意:这仅适用于宽屏幕。我不知道如何在较小的显示器中处理这个问题,但我想这将是我未来的担心。
除了使用图像映射之外,还有更好的方法吗?
<map id="honeycomb" name="honeycomb">
<area shape="poly" alt="" title="" coords="493,23,572,65,573,159,491,204,415,158,415,67" href="" target="" />
<area shape="poly" alt="" title="" coords="651,22,732,66,732,158,652,203,574,158,573,66" href="" target="" />
...
</map>
答案 0 :(得分:3)
如果你利用现有的背景图片并做一些半透明颜色的叠加,那么你可以让它像......一样工作......
<强> THIS FIDDLE SHOWS 强>
哪个用...
<强> HTML 强>
<div class="home-banner home-banner-matrix">
<div class="matrix-links">
<a href="#">One</a>
<a href="#">Two</a>
<a href="#">Three</a>
<a href="#">Four</a>
<a href="#">Five</a>
<a href="#">Six</a>
<a href="#">Seven</a>
<a href="#">Eight</a>
<a href="#">Nine</a>
</div>
</div>
<强> CSS 强>
.home-banner {
position: relative;
color: #fff;
text-align: center;
}
.home-banner-matrix {
position: relative;
height: 372px;
background: #000 url(https://dl.dropboxusercontent.com/u/104402909/home-img-matrix.jpg) no-repeat 50% 50%;
}
.matrix-links {
width: 805px;
margin: 0 auto;
padding: 67px 0 0 30px;
}
.matrix-links > a {
position: relative;
display: block;
width: 158px;
height: 92px;
z-index: 0;
float: left;
margin: 0 0 45px 1px;
text-decoration: none;
color: #fff;
line-height: 92px;
font-size: 14px;
}
.matrix-links > a:nth-of-type(6) {
margin-left: 81px;
}
.matrix-links > a:hover {
text-decoration: none;
background: rgba(255,255,0,.1);
color: #C7612C;
}
.matrix-links > a:hover:before {
content: '';
position: absolute;
top: 100%;
left: 0;
width: 0;
height: 0;
border-width: 44px 79px 0;
border-color: rgba(255,255,0,.1) transparent transparent transparent;
border-style: solid;
z-index: -1;
}
.matrix-links > a:hover:after {
content: '';
position: absolute;
bottom: 100%;
left: 0;
width: 0;
height: 0;
border-width: 0 79px 44px;
border-color: transparent transparent rgba(255,255,0,.1) transparent;
border-style: solid;
z-index: -1;
}
主要警告是:
因此,最好继续使用SVG或图像映射解决方案,但作为概念验证,您可以使用纯CSS获得您想要的东西(尽管有限)。
答案 1 :(得分:1)
我认为,图像地图与以往一样令人敬畏。要明确的是,他们遇到的问题与他们一直存在的问题完全相同,也就是说,从易用性和辅助技术的角度来看,很容易使用它们创建一个绝对不可接受的网站。
所以,尽可能避免任何这样的事情 - 如果只是为了看起来不错,那么可用性建议就是“不要 - 你的用户不要该死的”。
有了这个巨大的警告 - 用户根本不在乎你的导航在99.9%以上的情况下看起来“酷” - 我们此后将假设你知道这一点并且你有一个有效的用例。
对我来说,我使用了先进的,丰富的图像映射来复制应用程序需求,否则需要闪存或本机移动应用程序开发 - 因为它们比图像映射的辅助技术要少得多,所以使用它是有意义的-lovin'图像地图。
对于丰富,低痛苦的图像映射,我不能更多地推荐一个名为ImageMapster的JQuery插件。它改变了图像映射,内置支持相当复杂的多边形和近乎通用的浏览器支持,并有选择地改进它们以支持图像分层,翻转,分组(选择一个热点来触发其他热点的行为)等。我已将它用于绘图,目录,剧院座位映射等。
它可以很好地跨浏览器工作(非常旧的浏览器并不总是支持某种图形功能,但它通常会无痛地降低),移动设备,并且使用起来非常轻松。它在支持时使用HTML5 Canvas技术,或者自动回退到VML和其他渲染技术,以便为不支持所请求功能的浏览器完成工作。