![]() |
|
Модераторы: Sardar, Aliance |
![]()
|
|
| Karta |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 117 Регистрация: 4.6.2009 Репутация: нет Всего: 0 |
Добрый день!
Сталкнулась с такой проблемой. Есть картинка, мне эту картинку нужно разделить на несколько частей, которые при наведении мышки должны изменять цвет на более яркий, а при клике на определенную часть должна открываться форма, где дается описание что это такое. Вот пример такой картинки. Как это можно сделать в javascript css может кто то сталкивался с подобным, у кото то есть готовые решения? Спасибо. Присоединённый файл ( Кол-во скачиваний: 19 )
2.gif 47,04 Kb |
|||
|
||||
| Arantir |
|
|||
|
Рыбак без удочки ![]() ![]() Профиль Группа: Участник Сообщений: 960 Регистрация: 18.11.2012 Репутация: 14 Всего: 55 |
Ни сss, ни javascripts.
Это нужно делать с помощью карт изображений. Делается это HTML-разметкой.
Для тега area можно задавать атрибут href, то есть делать заданные части изображения ссылками. В случае полигона (shape="poly") тег coords содержит координаты вершин в формате "X1, Y1, X2, Y2, ...". Таким образом можно задавать фигуры почти любой сложности, если их можно представить в виде полинома. Про другие атрибуты map и area можно почитать в любом справочнике по HTML Это сообщение отредактировал(а) Arantir - 14.12.2012, 16:39 -------------------- interface Жопа { // ATTENTION: has to be implemented by every class of the project for proper project work } |
|||
|
||||
| ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 84 Всего: 386 |
А такое как решить без javascript? -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
| Arantir |
|
|||
|
Рыбак без удочки ![]() ![]() Профиль Группа: Участник Сообщений: 960 Регистрация: 18.11.2012 Репутация: 14 Всего: 55 |
ksnk, хе-хе, ну это только половина вопроса. Но без карт js все равно не поможет.
На счет подсвечивания выход тоже есть, как ни странно. Есть плагин для jQuery "maphilight" (пример, сорсы). Раскрасить area, к сожалению, невозможно. На этом теге стили не работают. jQuery maphilight использует динамическое рисование через canvas для достижения желаемого результата. -------------------- interface Жопа { // ATTENTION: has to be implemented by every class of the project for proper project work } |
|||
|
||||
| Karta |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 117 Регистрация: 4.6.2009 Репутация: нет Всего: 0 |
Спасибо боьшое за помощь!
|
|||
|
||||
| tzirechnoy |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1173 Регистрация: 30.1.2009 Репутация: нет Всего: 16 |
Порезать на эти area, составить мозаикой табличку (с правильными ссылками для каждой ячейки), в табличке правильные ссылки поместить в <a href=""><img src=...></a>, а подсвеченные варианты -- в background. В CSS по :hover включать opacity, чтобы фоновое изображэние просвечивало.
|
|||
|
||||
| ksnk |
|
||||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 84 Всего: 386 |
Насчет map и картинки - можно такое предложить (мой давний проект)
в качестве пояснения - #cover - хранилище для картинок img/r_X.gif, которые выводятся по наведению на нужную область. Они устанавливаются абсолютно над этой областью. #map - это грубая нарезка исходной картинки на кусочки, чтобы определять какую картинку показывать. Номер в href - это порядковый номер картинки в #cover. Я делал исходную нарезку арей в Dreamweaver, вероятно, сейчас есть уже более удобные средства. #flag - изображение флажка, который выставляется по центру выделяемой области. Использовалась именно схема с разными картинками, так как "выделенная" область - картинка с другим изображением, чем на большой,с полутенями и деталями. В принципе, на dklab есть пример подобной прорисовки, использующий canvas и рисующий области по разметке в maparea. Этот пример требует очень точной разметки области в map/area, зато довольно компактен и эффектен ;) Это сообщение отредактировал(а) ksnk - 14.12.2012, 20:32 -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
||||
|
|||||
| Karta |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 117 Регистрация: 4.6.2009 Репутация: нет Всего: 0 |
У меня вопрос, а как я могу нарезать исходную картинку?
|
|||
|
||||
| ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 84 Всего: 386 |
Нарезались картинки обычным образом - с помощью фотошопа. Кусочки вырезались руками, на картинки навешивались тени-детали-красивости и они сохранялись в png-24.
Возможно, более удобным окажется вот такой вариант. -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
| Karta |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 117 Регистрация: 4.6.2009 Репутация: нет Всего: 0 |
Добрый день!
Карту я сделала, коряво получилась, но сама. Теперь столкнулась с такой проблемой: моя карта должна менять масштаб при прокрутке колесика мыши. Нашла d3js фреймворк похожий пример : http://bl.ocks.org/2206340 но мне не понятны две вещи: 1. Что значит projection = d3.geo.albersUsa() albersUsa - если это название самой карты, то можно ее заменить на произвольное название, например d3.geo.skelet_celoveka(), или эти карты уже находятся гдето в библиотеки d3js ? 2. В этом примере пути по которым чертятся границы штатов помещены в файл .json
у меня же прописаны эти пути просто в .js Мне здесь просто надо поменять типы файлов или это записывается как то по другому, например d3.js("skelet_celoveka.js, function(js)") Может кто работал с этим фреймворком, сможет что то подсказать. Ну или учитывая, что я совсем новичек, какой способ наиболее простой для изменения масштаба при прокрутки колесика мышки? Это сообщение отредактировал(а) Karta - 24.12.2012, 12:18 |
|||
|
||||
![]()
|
| Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | JavaScript: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |