У меня сложное фоновое изображение с большим количеством небольших областей, которые нуждаются в подсветке иллюстраций, а также дополнительный текстовый дисплей и связанные ссылки для каждого из них. Последняя иллюстрация содержит несколько статических изображений с прозрачностью с использованием z-индекса, а иллюстрации подсветки подсветки должны отображаться на одном из промежуточных слоев "сэндвич" для достижения желаемого эффекта.
После неудачной игры с блоками я решил, что это может быть сделано с картой изображений старой школы. Я сделал схематическую тестовую карту с четырьмя контурами геометрической формы и "заполнил" их с помощью png rollovers. Идея состоит в том, чтобы связать карту изображения с нижним фоновым слоем, инициализировать все опрокидывания с помощью css {visibility: hidden} и использовать метод наведения Jquerys, чтобы сделать их видимыми, а также выявить связанный текст в отдельном div. Отдельная текстовая функция - это то, почему я не пытаюсь это сделать с помощью: hover pseudoclass вместо jQuery hover. Поскольку я использовал карту изображений, я сделал все параметры png (с прозрачным фоном) для полного размещения контейнера для точного размещения, чтобы все было точно.
У меня есть работы... на самом деле! Карта изображения правильно отображена, чтобы активировать только геометрические области. Но href из каждой области опрокидывания работает только с перерывами, и использование JQuery hover с видимостью css испорчено. Желаемое поведение заключается в том, что скатывание в область просто сделает форму твердой. На самом деле происходит любое движение внутри формы, что позволяет быстро переключаться между видимыми и скрытыми; когда курсор останавливается внутри фигуры, он может быть видимым или может не отображаться. Любые идеи оценены!
настройка паттерна для образца (в конечном счете, используйте массивы для реальных опрокидываний, связанных ссылок и текста):
$('#triangle').hover(
function() {
$('#ID_triangle').css({'visibility' : 'visible'});
},
function() {
$('#ID_triangle').css({'visibility' : 'hidden'});
}
)
карта изображения:
<div id="container">
<img src="images/testMap_w.png" width="800" height="220" alt="TestMap W" usemap="#testMap">
<map name="testMap">
<area shape="polygon" coords="20,20,106,20,106,106,20,106" href="#" onclick="location.href='http://www.stackoverflow.com'; return false;" id="box" />
<area shape="polygon" coords="216,50,339,50,277,156" href="#" onclick="location.href='http://www.google.com'; return false;" id="triangle" />
<area shape="polygon" coords="460,0,574,0,460,220" href="#" onclick="location.href='http://www.cnn.com'; return false;" id="bordertriangle" />
<area shape="polygon" coords="704,65,769,115,744,196,665,196,640,115" href="#" onclick="location.href='http://slashdot.org'; return false;" id="pentagon" />
</map>
<img src="images/testMap_box.png" width="800" height="220" alt="TestMap Box" id="ID_box">
<img src="images/testMap_triangle.png" width="800" height="220" alt="TestMap Triangle" id="ID_triangle">
<img src="images/testMap_border_triangle.png" width="800" height="220" alt="TestMap Border Triangle" id="ID_bordertriangle">
<img src="images/testMap_pentagon.png" width="800" height="220" alt="TestMap Pentagon" id="ID_pentagon">
</div>