Подскажите как сделать такой cursor эффект при клике со звуком

217
26 апреля 2018, 08:25

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

Мне очень понравился там эффект курсора после полной загрузки страницы.

При клике на любом месте страницы создается звук и wave эффект.

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

function playSound () { 
    document.getElementById('play').play(); 
}
<audio id="play" src="http://www.soundjay.com/button/beep-07.wav"></audio> 
 
<button onclick="playSound()">Play</button>

Answer 1

Вот wave эффект можно сдлеать так.

А звук находится в файле sounds.mp3.

$(document.body).on('click', function(e) { 
  var wave = document.createElement('div'); 
  wave.style.top = (e.pageY - 25) + "px"; 
  wave.style.left = (e.pageX - 25) + "px"; 
  wave.className = 'wave'; 
  setTimeout(function() { 
    wave.classList.add("active"); 
  }, 0); 
  wave.addEventListener("transitionend", function() { 
    wave.remove(); 
  }); 
  document.body.appendChild(wave); 
}); 
 
$(document.body).on('mouseout', function(e) { 
  cursor.style.display = 'none'; 
}); 
$(document.body).on('mousemove', function(e) { 
  cursor.style.display = 'block'; 
  cursor.style.top = (e.pageY - 10) + "px"; 
  cursor.style.left = (e.pageX - 10) + "px"; 
});
body { 
  background-color: pink; 
  width: 100vw; 
  height: 100vh; 
} 
 
* { 
  cursor: none; 
} 
 
.wave { 
  background-color: white; 
  opacity: 0.8; 
  border-radius: 50%; 
  width: 50px; 
  height: 50px; 
  transition: all 1s ease; 
  position: absolute; 
  pointer-events: none; 
} 
 
.wave.active { 
  transform: scale(3); 
  opacity: 0; 
} 
 
#cursor { 
  background-color: gray; 
  opacity: 0.8; 
  border-radius: 50%; 
  width: 20px; 
  height: 20px; 
  position: absolute; 
  pointer-events: none; 
  display: none; 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
<div id="cursor"></div> 
<button>cllck</button>

А вообще сайт красивый, но тормозит ужасно.

Answer 2

Озвучку кликов мыши можно реализовать так:

var audio_down = document.getElementById("audio_down"); 
var audio_up = document.getElementById("audio_up"); 
audio_down.src = audio_up.src = "https://geex-arts.com/assets/audio/sounds.mp3"; 
document.onmousedown = function(){mouseSound(0, audio_down)}; 
document.onmouseup = function(){mouseSound(0.2, audio_up)}; 
function mouseSound(startCurrentTime, selectedAudio){ 
	selectedAudio.currentTime = startCurrentTime; 
	setTimeout(function(){selectedAudio.pause()}, 200); 
	selectedAudio.play(); 
}
Покликайте здесь. 
<audio id=audio_down></audio> 
<audio id=audio_up></audio>

Я сначала хотел сделать всё на одном элементе аудио, но оказалось, что с двумя работает чётче.

READ ALSO
Аквариум чарт есть ли аналог на Jquery

Аквариум чарт есть ли аналог на Jquery

Скажите пожалуйста, есть-ли аналог чарта на jquery этому https://apppowerbi

237
Обновление формы при фокусе

Обновление формы при фокусе

Как обновить форму когда она становится в фокусе? Событие Enter и Activated не отрабатывает после диалогового окна когда фокус возвращается к форме

190
Как хранить в app.config величины типа TimeSpan

Как хранить в app.config величины типа TimeSpan

Можно ли как-то удобно хранить в appconfig значения типа TimeSpan? Чтобы не задавать их в секундах:

179
Как изменить размер MetroMessageBox

Как изменить размер MetroMessageBox

Всем доброго дня! Собственно сабжВот такое окошко выскакивает:

256