JSFiddle - React, Tailwind, and code Playground
HTML
<link rel="stylesheet" href="https://unpkg.com/[email protected]/dist/leaflet.css" integrity="sha512-Rksm5RenBEKSKFjgI3a41vrjkw4EVPlJ3+OiI65vTjIdo9brlAacEuKOiQ5OFh7cOI1bkDwLqdLw3Zg0cRJAAQ==" crossorigin="" />
<script src="https://unpkg.com/[email protected]/dist/leaflet.js" integrity="sha512-/Nsx9X4HebavoBvEBuyp3I7od5tA0UzAxs+j83KgC8PU0kgB4XiK4Lfe4y4cgBtaRJQEIFCW+oC506aPT2L1zw==" crossorigin=""></script>
<div id="map"></div>
CSS
html,
body,
#map {
margin: 0;
height: 100%;
width: 100vw;
}
.leaflet-marker-pane > * {
transition: transform .1s linear;
}
JavaScript
var map = L.map('map').setView([51.6720, 39.1843], 12);
L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
maxZoom: 18,
attribution: '<a href="https://www.openstreetmap.org/">OpenStreetMap</a>'
}).addTo(map);
var icon = new L.Icon.Default();
icon.options.shadowSize = [0, 0];
var markers = [
[51.6693, 39.2051],
[51.6659, 39.1992],
[51.6609, 39.1902]
].map(n => L.marker(n, { icon }));
L.featureGroup(markers).addTo(map);
setInterval(() => {
markers.forEach(n => {
var { lat, lng } = n.getLatLng();
n.setLatLng(new L.LatLng(
lat + (0.5 - Math.random()) / 100,
lng + (0.5 - Math.random()) / 100
))
})
}, 1000);