Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 03.06.2021, 00:57
Кандидат Javascript-наук
Отправить личное сообщение для Was-Ja Посмотреть профиль Найти все сообщения от Was-Ja
 
Регистрация: 20.09.2020
Сообщений: 130

Как сделать :hover filter: brightness(130%); на какой-то объект в картинке?
Добрый день,

хочу во весь экран на страничке нарисовать картинку с блок-схемой прибора, но так, что когда юзер водит мышью по элементам или соединениям, то они подсвечиваются, а если нажимает, то появляется подсказка.

Также хочу, чтобы это все работало одинаково и на десктопе, и на мобильнике.

Часто такое делают на онлайн выставках, там даже когда мышкой на человека за стендом наводишь, от начинает светиться (от счастья) и что-то лепетать о своем продукте.

Сходу не нашел, чтобы в сорсы подсмотреть...

Понимаю, что можно загрузить картинку в канвас, забиндить в нее pointermove, pointerdown, pointerup, руками считать координаты где я сейчас и потом в зависимости от этого или на zIndex рисовать подсказку, или через

ctx.globalAlpha=.50;
ctx.fillRect(0,0,cw,ch);
ctx.restore();
...
ctx.save();
ctx.beginPath();
ctx.clearRect(300,100,200,100);
ctx.rect(300,100,200,100);
ctx.clip();
ctx.drawImage(img,0,0,cw,ch);
ctx.restore();

подсвечивать, но, как-то совсем не просто получается.

Скажите, пожалуйста, может это можно через CSS, или еще как-то проще сделать?

Спасибо!
Ответить с цитированием
  #2 (permalink)  
Старый 03.06.2021, 07:31
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,135

Was-Ja,
map css hover
https://codepen.io/solipsistacp/pen/Cbdeg
Ответить с цитированием
  #3 (permalink)  
Старый 03.06.2021, 11:59
Кандидат Javascript-наук
Отправить личное сообщение для Was-Ja Посмотреть профиль Найти все сообщения от Was-Ja
 
Регистрация: 20.09.2020
Сообщений: 130

Спасибо, рони!!!
Именно то, что и хотел!!!
Ответить с цитированием
  #4 (permalink)  
Старый 09.06.2021, 13:18
Кандидат Javascript-наук
Отправить личное сообщение для Was-Ja Посмотреть профиль Найти все сообщения от Was-Ja
 
Регистрация: 20.09.2020
Сообщений: 130

Пожалуйста, можно задать вопрос вдогонку на ту же тему.

Сделал по аналогии примера у себя ( https://www.elegant-nmr.com/mdb.html?r ) . Все вроде классyо получается, но есть один нюанс.

Если мышкой быстро по фрейму елозить, попадая из одной зоны в другую, то происходит эффект мигания экрана. Пытался добавить transition-property: all; transition-duration: 4.0s; в свойства всего, что связано с этой отрисовкой, но, не помогло.

Скажите, пожалуйста, можно ли как-то по-другому замедлить, чтобы не было эффекта моргания экрана?

Спасибо!
Ответить с цитированием
  #5 (permalink)  
Старый 09.06.2021, 13:52
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,135

Was-Ja,
паузу добавьте -- либо во всё transition-delay: .7s- либо только в hover transition-delay: .7s- либо только в изначальное transition-delay: .7s hover transition-delay: 0s
1 вариант
.класс{transition-delay: .7s};
2 вариант
.класс:hover{transition-delay: .7s};
3 вариант
.класс{transition-delay: .7s};
.класс:hover{transition-delay: 0s};
Ответить с цитированием
  #6 (permalink)  
Старый 09.06.2021, 16:22
Кандидат Javascript-наук
Отправить личное сообщение для Was-Ja Посмотреть профиль Найти все сообщения от Was-Ja
 
Регистрация: 20.09.2020
Сообщений: 130

Спасибо большое, рони, за ответ!

Не понимаю, что я делаю не так, перепробовал уйму комбинаций, но задержка не возникает.

Минималистический вариант положил на https://www.elegant-nmr.com/k.html он дополнительно хочет сами картинки, которые в base64 лежат воткнутые в https://www.elegant-nmr.com/b.js больше этот пример ни от чего не зависит.

В примере все стили, связанные с отрисовкой картинки, называются #mif_*.

svg и figure генеряться на прямую в начале JS функции MainInitFrame_Init

В стилях я убрал -webkit-clip-path: - вроде на большинстве современных браузеров и без него работает, а воткнуть в стиль эту опцию получается очень не тривиально.

Пробовал все возможные комбинации transition, transition-delay, transition-property но почему-то ничего не помогает.

Скажите, пожалуйста, может какой-то специальный -webkit надо поставить?

Спасибо!!!
Ответить с цитированием
  #7 (permalink)  
Старый 09.06.2021, 17:42
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,135

Was-Ja,
моя ошибка, тут работа фильтра, transition тут никакого отношения не имеет. возможно есть решение, но нужен специалист по css.
Ответить с цитированием
  #8 (permalink)  
Старый 09.06.2021, 18:18
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,135

Was-Ja,
на всякий случай ...
https://javascript.ru/forum/dom-wind...tml#post443459
Ответить с цитированием
  #9 (permalink)  
Старый 09.06.2021, 19:43
Кандидат Javascript-наук
Отправить личное сообщение для Was-Ja Посмотреть профиль Найти все сообщения от Was-Ja
 
Регистрация: 20.09.2020
Сообщений: 130

Спасибо большое, рони,
попробую с подсветкой и фильтрами поиграться, возможно удастся придумать красиво и без мерцания. Возможно надо было исходную картинку на темном фоне сделать.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Хочу сделать систему, как в кибермаркете. RaseL Общие вопросы Javascript 5 14.01.2015 17:25
Как сделать такую страницу mortido Элементы интерфейса 11 02.10.2014 07:20
Всплытие событий или что то не так... Кирюха =) jQuery 6 30.03.2013 12:56
Как сделать электронный каталог продукции? natarius Серверные языки и технологии 6 24.05.2009 20:56
как сделать гиперсылку на объект javascript??? kos_walker Общие вопросы Javascript 3 30.09.2008 06:58