Как сделать эффект преломления света на изображении [закрыт]

140
12 января 2019, 21:00

Реально ли сделать такой эффект с помощью css или js?

Чтобы при наведении на определенную область картинки (при hover) срабатывал такой эффект:

Answer 1

Даю Вам направление, а далее, с помощью фигур, фильтров, анимации и стилей, дело должно "пойти в гору")) Метод прост, но могут возникнуть проблемы при резиновой вёрстке (хотя, я не проверял, как это всё будет работать с относительными единицами):

let container = document.querySelector('.refract'); 
 
document.addEventListener('mousemove', function(event) { 
  let x = event.clientX - 127; 
  let y = event.clientY; 
 
  let polygon = `polygon(${x}px 0px, ${x + 95}px 0px, ${x + 255}px 345px, ${x + 160}px 345px)`; 
  container.style['-webkit-clip-path'] = polygon; 
  container.style['clip-path'] = polygon; 
});
body { 
  width: 100%; 
  height: 100%; 
  padding: 0; 
  margin: 0; 
  background: url('https://i.stack.imgur.com/mZt9f.jpg'); 
  background-size: cover; 
  box-sizing: border-box; 
} 
 
.refract { 
  width: 100%; 
  height: 400px; 
  background: url('https://i.stack.imgur.com/mZt9f.jpg') 5px 5px no-repeat; 
  background-size: cover; 
  box-sizing: border-box; 
  -webkit-clip-path: polygon(130px 0px, 225px 0px, 385px 345px, 290px 345px); 
  clip-path: polygon(130px 0px, 225px 0px, 385px 345px, 290px 345px); 
} 
 
.focused { 
  animation: 2s infinite alternate satblur; 
} 
 
@keyframes satblur { 
  0%, 
  100% { 
    -webkit-filter: saturate(1.9) blur(0.0px); 
    filter: saturate(1.9) blur(0.0px); 
  } 
  30%, 
  70% { 
    -webkit-filter: saturate(1.9) blur(2.9px); 
    filter: saturate(1.9) blur(2.9px); 
  } 
  50% { 
    -webkit-filter: saturate(0.1) blur(2.9px); 
    filter: saturate(0.1) blur(2.9px); 
  } 
}
<div class="refract focused"> </div>

PS Рекомендую для просмотра не раскрывать страницу, ибо не адаптировалось.

Источники: раз, два, три.

READ ALSO
phpMyAdmin SSL защита MariaDB (Amazon AWS Linux2 LAMP server)

phpMyAdmin SSL защита MariaDB (Amazon AWS Linux2 LAMP server)

Я особо не разбираюсь в networking-еЯ создал сервер на Amazon AWS на основе Amazon Linux2, установил на него LAMP, подсоединил к нему Elactic IP, который соединил...

143
Ускорение передачи данных MySQL

Ускорение передачи данных MySQL

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

152
Обёртка в -col- лишняя?

Обёртка в -col- лишняя?

Насколько корректно в bootstrap навешивать классы -col- на таблицу?

209
Тестирование html [закрыт]

Тестирование html [закрыт]

Как протестировать обычную страницу? В чем должно заключаться такое тестирование и что можно использовать для этого? Имеется только ее адрес...

143