forked from La_Bureautique/zeg1jeux
réparageation clignotement lieux
This commit is contained in:
parent
3289423d6d
commit
4eba5f8a83
1
map.php
1
map.php
|
@ -104,6 +104,7 @@ echo '
|
||||||
echo '
|
echo '
|
||||||
<section class="place"
|
<section class="place"
|
||||||
id="place-'. $place->_id .'"
|
id="place-'. $place->_id .'"
|
||||||
|
data-place-name="'. $place->_source->title .'"
|
||||||
data-place-lat="'. $placeLat .'"
|
data-place-lat="'. $placeLat .'"
|
||||||
data-place-lon="'. $placeLon .'"
|
data-place-lon="'. $placeLon .'"
|
||||||
>';
|
>';
|
||||||
|
|
|
@ -1,5 +1,45 @@
|
||||||
const SONAR_DURATION = 5;
|
const SONAR_DURATION = 5;
|
||||||
|
|
||||||
|
function fmod (x, y) {
|
||||||
|
|
||||||
|
// discuss at: https://locutus.io/php/fmod/
|
||||||
|
// original by: Onno Marsman (https://twitter.com/onnomarsman)
|
||||||
|
// input by: Brett Zamir (https://brett-zamir.me)
|
||||||
|
// bugfixed by: Kevin van Zonneveld (https://kvz.io)
|
||||||
|
// example 1: fmod(5.7, 1.3)
|
||||||
|
// returns 1: 0.5
|
||||||
|
let tmp
|
||||||
|
let tmp2
|
||||||
|
let p = 0
|
||||||
|
let pY = 0
|
||||||
|
let l = 0.0
|
||||||
|
let l2 = 0.0
|
||||||
|
|
||||||
|
tmp = x.toExponential().match(/^.\.?(.*)e(.+)$/)
|
||||||
|
p = parseInt(tmp[2], 10) - (tmp[1] + '').length
|
||||||
|
|
||||||
|
tmp = y.toExponential().match(/^.\.?(.*)e(.+)$/)
|
||||||
|
pY = parseInt(tmp[2], 10) - (tmp[1] + '').length
|
||||||
|
|
||||||
|
if (pY > p) {
|
||||||
|
p = pY
|
||||||
|
}
|
||||||
|
|
||||||
|
tmp2 = (x % y)
|
||||||
|
|
||||||
|
if (p < -100 || p > 20) {
|
||||||
|
|
||||||
|
// toFixed will give an out of bound error so we fix it like this:
|
||||||
|
l = Math.round(Math.log(tmp2) / Math.log(10))
|
||||||
|
l2 = Math.pow(10, l)
|
||||||
|
|
||||||
|
return (tmp2 / l2).toFixed(l - p) * l2
|
||||||
|
|
||||||
|
} else {
|
||||||
|
|
||||||
|
return parseFloat(tmp2.toFixed(-p))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function computeLatDistanceInKm (dest, orig) {
|
function computeLatDistanceInKm (dest, orig) {
|
||||||
|
|
||||||
|
@ -38,18 +78,21 @@ var origLon = map.getAttribute('data-orig-lon');
|
||||||
|
|
||||||
for (place of places) {
|
for (place of places) {
|
||||||
|
|
||||||
if ( !( (placeLat == origLat) && (placeLon == origLon) ) ) {
|
var placeLat = place.getAttribute("data-place-lat");
|
||||||
|
var placeLon = place.getAttribute("data-place-lon");
|
||||||
|
|
||||||
var placeLat = place.getAttribute("data-place-lat");
|
if ( (placeLat == origLat) && (placeLon == origLon) ) {
|
||||||
var placeLon = place.getAttribute("data-place-lon");
|
|
||||||
|
|
||||||
|
place.style.animationName = "none";
|
||||||
|
place.style.opacity = "1";
|
||||||
|
|
||||||
|
} else {
|
||||||
|
|
||||||
var latDistanceKm = computeLatDistanceInKm(placeLat, origLat);
|
var latDistanceKm = computeLatDistanceInKm(placeLat, origLat);
|
||||||
var lonDistanceKm = computeLonDistanceInKm(placeLon, origLon);
|
var lonDistanceKm = computeLonDistanceInKm(placeLon, origLon);
|
||||||
|
|
||||||
var delay = computeDelay(latDistanceKm, lonDistanceKm, SONAR_DURATION);
|
var delay = computeDelay(latDistanceKm, lonDistanceKm, SONAR_DURATION);
|
||||||
|
|
||||||
place.style.animationDelay = delay + 's';
|
place.style.animationDelay = delay + 's';
|
||||||
|
|
||||||
console.log('delay JS : ' + delay);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
Reference in New Issue