Добрый день. Подскажите каким образом реализовать задуманное.
Пришла в голову идея сделать схему-каталог (по типу схемы метро). То есть картинка - карта с 20(например пунктами)точками. Выглядит как схема метро (в идеале вообще background). Каждая точка(станция) является ссылкой. проблема даже не в том как это сделать, а как прикрепить к конкретной точке на картинке и при этом что бы при масштабировании оно не сползло. Отдаленно как раз должно напоминать http://mosmetro.ru/metro-map/ это. Подскажите открытые примеры если есть или хоть направление. Спасибо.
Маркеры надо позиционировать на карте абсолютно в процентах. При этом очень важно держать соотношение сторон карты, см. как сделано в сниппете. Само соотношение сторон задается padding-bottom.
.map {
position: relative;
display: block;
width: 100%;
height: 0;
padding-bottom: 50%;
overflow: hidden;
}
.map img {
position: absolute;
display: block;
width: 100%;
height: auto;
top: -80%; // выставляем видимый участок карты
left: 0;
}
.marker {
position: absolute;
display: block;
color: red;
width: 10px;
height: 10px;
}
.paris {
left: 27%;
top: 63%;
}
.moscow {
left: 80%;
top: 18%;
}
<div class="map">
<img src="http://mapeurope.ru/wp-content/uploads/konturnaya-karta-evropy-10klass.jpg">
<div class="marker paris">x</div>
<div class="marker moscow">x</div>
</div>
Свойство top: -80% выставляет видимый участок для данной конкретной карты и не является обязательным.
Есть 2 варианта решения вашей проблемы:
1 Вариант - вы используете jpg\png, тогда вам необходимо воспользоваться возможностью задавать area для картинки пример можете посмотреть здесь и здесь и уже при нажатии на area вы можете делать все что душе угодно
2 Вариант - использовать SVG для схемы метро. Тогда вы можете задать каждому элементу на картинке id (или, предпочтительно, некий атрибут) и уже при нажатии\наведении\любом_другом_событии делать всё что вашей душе угодно с помощью js+css - для SVG (если она вставлена в сам html, а не картинкой) будут работать все селекторы как в css, так и в js.
Лично для меня, 2-й вариант наиболее предпочтителен, так как в первом варианте еще может всплыть проблема с адаптивностью, да и впринципе вырисовывать area на картинках - довольно трудозатратно, в SVG проще на этапе её рисования сразу необходимые аттрибуты прописать и всё. Да и к тому же, на сайте, приведенном вами в качестве примера, используется как раз-таки 2-й вариант
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Необходимо вместить название в одну строкуВ разметке есть блок див фиксированного размера
Как с помощью css сделать резиновый шрифт? тоесть чтоб он расстягивался не пропорционально
Имеем три таблицы pictures, movies, storiesКаждая таблица имеет одинаковые столбцы status, created_at
Есть веб-сервис, а точнее сервлет, который принимает только HTTP POST запросыURL обращения к сервису один и представляет из себя ссылку на сервлет,...