auto-sync: 2026-05-06 01:20:01
This commit is contained in:
@@ -460,7 +460,7 @@ body.has-map-mode #sheet-backdrop.visible { pointer-events: none; }
|
||||
/* ── Waypoint Markers ─────────────────────────── */
|
||||
.route-waypoint-marker { filter: drop-shadow(0 2px 4px rgba(0,0,0,0.4)); width: 28px; height: 36px; cursor: grab; display: block; }
|
||||
.route-waypoint-marker:active { cursor: grabbing; }
|
||||
.named-marker-el { font-size: 22px; cursor: pointer; filter: drop-shadow(0 2px 4px rgba(0,0,0,0.5)); user-select: none; line-height: 1; }
|
||||
.named-marker-el { font-size: 22px; cursor: pointer; filter: drop-shadow(0 2px 4px rgba(0,0,0,0.5)); user-select: none; line-height: 1; display: block; width: 28px; height: 28px; text-align: center; }
|
||||
|
||||
/* ═══════════════════════════════════════════════════
|
||||
TASK 5: Desktop Layout (≥768px)
|
||||
@@ -513,7 +513,8 @@ body.has-map-mode #sheet-backdrop.visible { pointer-events: none; }
|
||||
from { transform: scale(0); opacity: 0; }
|
||||
to { transform: scale(1); opacity: 1; }
|
||||
}
|
||||
.marker-anim { animation: markerPopIn 0.2s cubic-bezier(0.18, 0.89, 0.32, 1.28) both; }
|
||||
/* marker-anim НЕ применять к элементам-обёрткам MapLibre — только к внутренним элементам */
|
||||
.marker-anim-inner { animation: markerPopIn 0.2s cubic-bezier(0.18, 0.89, 0.32, 1.28) both; }
|
||||
|
||||
/* ── Onboarding (empty waypoints state) ─────────── */
|
||||
.wl-onboarding {
|
||||
|
||||
10
tasks/enduro-trails/prototype/static/app.js
vendored
10
tasks/enduro-trails/prototype/static/app.js
vendored
@@ -1252,7 +1252,7 @@ function drawNamedMarker(markerData) {
|
||||
const map = window._map;
|
||||
if (!map) return;
|
||||
const el = document.createElement('div');
|
||||
el.className = 'named-marker-el marker-anim';
|
||||
el.className = 'named-marker-el';
|
||||
el.textContent = markerData.icon;
|
||||
el.title = markerData.name;
|
||||
|
||||
@@ -1451,7 +1451,7 @@ function initRouteClicks(map) {
|
||||
document.getElementById('scenic-status').textContent = `📍 Старт: ${lat.toFixed(4)}, ${lng.toFixed(4)}`;
|
||||
if (scenicStartMarker) scenicStartMarker.remove();
|
||||
const el = document.createElement('div');
|
||||
el.className = 'marker-anim';
|
||||
el.className = '';
|
||||
el.style.cssText = 'width:16px;height:16px;background:var(--accent);border:2px solid #fff;border-radius:50%;box-shadow:0 1px 4px rgba(0,0,0,0.3);';
|
||||
scenicStartMarker = new maplibregl.Marker({ element: el, anchor: 'center' }).setLngLat([lng, lat]).addTo(map);
|
||||
document.getElementById('btn-build-scenic').style.display = '';
|
||||
@@ -1678,8 +1678,8 @@ function addRulerPoint(lngLat) {
|
||||
rulerTotal += haversineKm(rulerPoints[rulerPoints.length - 2], pt);
|
||||
}
|
||||
const dot = document.createElement('div');
|
||||
dot.className = 'marker-anim';
|
||||
dot.style.cssText = 'width:10px;height:10px;background:#0088ff;border:2px solid #fff;border-radius:50%;box-shadow:0 0 4px rgba(0,0,0,0.3);';
|
||||
dot.className = '';
|
||||
dot.style.cssText = 'width:10px;height:10px;background:#0088ff;border:2px solid #fff;border-radius:50%;box-shadow:0 0 4px rgba(0,0,0,0.3);display:block;';
|
||||
const dotMarker = new maplibregl.Marker({ element: dot, anchor: 'center' })
|
||||
.setLngLat([lngLat.lng, lngLat.lat])
|
||||
.addTo(map);
|
||||
@@ -1842,7 +1842,7 @@ function addLinkPoint(lng, lat) {
|
||||
linkPoints.push({ lon: lng, lat: lat });
|
||||
const idx = linkPoints.length;
|
||||
const el = document.createElement('div');
|
||||
el.className = 'marker-anim';
|
||||
el.className = '';
|
||||
el.style.cssText = 'width:16px;height:16px;background:var(--accent);border:2px solid #fff;border-radius:50%;box-shadow:0 1px 4px rgba(0,0,0,0.3);display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;color:#fff;';
|
||||
el.textContent = idx;
|
||||
const marker = new maplibregl.Marker({ element: el, anchor: 'center', draggable: true }).setLngLat([lng, lat]).addTo(map);
|
||||
|
||||
Reference in New Issue
Block a user