Для создания анимированного фона из вороха летающих частиц в JS можно использовать различные библиотеки, такие как Particle.js или Three.js.
Particle.js позволяет создавать красивые эффекты с помощью SVG или Canvas. Например, вот пример кода, который создаст фон из летающих частиц на Canvas:
Код:
// Создаем новый экземпляр Particle.js
particlesJS('particles-js', {
// Настройки
particles: {
number: {
value: 80,
density: {
enable: true,
value_area: 800
}
},
color: {
value: ['#ffffff', '#ff4040', '#fcd12a', '#ffffff']
},
shape: {
type: ['circle', 'triangle', 'polygon'],
stroke: {
width: 1,
color: '#ccc'
},
polygon: {
nb_sides: 6
},
image: {
src: '',
width: 100,
height: 100
}
},
opacity: {
value: 1,
random: true,
anim: {
enable: true,
speed: 1,
opacity_min: 0,
sync: false
}
},
size: {
value: 5,
random: true,
anim: {
enable: true,
speed: 10,
size_min: 1,
sync: false
}
},
line_linked: {
enable: false,
distance: 150,
color: '#ffffff',
opacity: 0.4,
width: 1
},
move: {
enable: true,
speed: 2,
direction: 'none',
random: false,
straight: false,
out_mode: 'out',
bounce: false,
attract: {
enable: false,
rotateX: 600,
rotateY: 1200
}
}
},
interactivity: {
detect_on: 'canvas',
events: {
onhover: {
enable: false,
mode: 'repulse'
},
onclick: {
enable: true,
mode: 'push'
},
resize: true
},
modes: {
grab: {
distance: 400,
line_linked: {
opacity: 1
}
},
bubble: {
distance: 400,
size: 40,
duration: 2,
opacity: 8,
speed: 3
},
repulse: {
distance: 200,
duration: 0.4
},
push: {
particles_nb: 4
},
remove: {
particles_nb: 2
}
}
},
retina_detect: true
});
Обратите внимание на `detect_on: 'canvas'` - это позволит избежать проблем с перехватом обработки колесика мыши, если страница со скроллом.
Также можно настроить другие параметры, такие как количество частиц, их цвет, форму, прозрачность и так далее, чтобы создать идеальный эффект для своего проекта.