СпецАвто.ру — Продажа и аренда спецтехники по всей России

Категории техники

Спецтехника: продажа и аренда по всей России

Тип
Сделка
Найдено: 6 объявлений Разместить

Все 6 объявлений загружены

Спецтехника — купить и арендовать

СпецАвто.ру — маркетплейс спецтехники №1 в России. Более 250 000 объявлений: экскаваторы, краны, самосвалы, погрузчики, бульдозеры, тракторы и другая техника. Продажа, аренда, запчасти.

Продажа спецтехники

Тысячи объявлений о продаже строительной и специальной техники б/у и новой. Экскаваторы, краны, самосвалы, бульдозеры по выгодным ценам от собственников и дилеров.

Аренда спецтехники

Предложения по аренде спецтехники по всей России. Быстрое оформление, проверенные арендодатели, гибкие условия. Почасовая, посменная и долгосрочная аренда.

Запчасти для спецтехники

Запчасти и комплектующие для всех видов спецтехники. Оригинальные и аналоговые детали, навесное оборудование от надёжных поставщиков.

// ── Brand filter & autocomplete ────────────────────────────── function fpSetBrand(slug, name) { FILTERS.brand = slug || ''; syncBrandUI(slug || '', name || ''); updateFpResetBtn(); reloadGrid(); } function syncBrandUI(slug, name) { document.querySelectorAll('.brand-chip').forEach(c => { c.classList.toggle('active', !!slug && c.dataset.slug === slug); }); const inp = document.getElementById('fp-brand-input'); const clr = document.getElementById('fp-brand-clear'); if (inp) inp.value = name || ''; if (clr) clr.style.display = slug ? 'block' : 'none'; } function _brandAC(inputId, ddId, onSelect) { const inp = document.getElementById(inputId); const dd = document.getElementById(ddId); if (!inp || !dd) return; // Move dd to body so parent overflow doesn't clip it document.body.appendChild(dd); function posDD() { const r = inp.getBoundingClientRect(); dd.style.top = (r.bottom + 4) + 'px'; dd.style.left = r.left + 'px'; dd.style.width = Math.max(r.width, 230) + 'px'; } let timer; inp.addEventListener('input', () => { clearTimeout(timer); const q = inp.value.trim(); if (!q) { dd.classList.remove('open'); return; } timer = setTimeout(() => { fetch('/api/brands?q=' + encodeURIComponent(q)) .then(r => r.json()) .then(items => { if (!items.length) { dd.classList.remove('open'); return; } dd.innerHTML = items.map(b => { const img = b.logo ? '' : ''; return '
' + img + '' + b.name + '
'; }).join(''); dd.querySelectorAll('.brand-ac-item').forEach(el => { el.addEventListener('mousedown', e => { e.preventDefault(); dd.classList.remove('open'); onSelect(el.dataset.slug, el.dataset.name); }); }); posDD(); dd.classList.add('open'); }); }, 200); }); inp.addEventListener('focus', posDD); window.addEventListener('scroll', posDD, true); window.addEventListener('resize', posDD); inp.addEventListener('blur', () => setTimeout(() => dd.classList.remove('open'), 160)); } (function() { const inp = document.getElementById('brands-bar-input'); const noR = document.getElementById('brands-no-results'); if (!inp) return; inp.addEventListener('input', function() { const q = this.value.trim().toLowerCase(); let any = false; document.querySelectorAll('#brands-grid .brand-chip').forEach(function(chip) { const match = !q || (chip.dataset.name||'').toLowerCase().includes(q) || (chip.dataset.slug||'').toLowerCase().includes(q); chip.style.display = match ? '' : 'none'; if (match) any = true; }); if (noR) noR.style.display = (q && !any) ? 'block' : 'none'; }); })(); _brandAC('fp-brand-input', 'fp-brand-dd', function(slug, name) { fpSetBrand(slug, name); }); (function() { const inp = document.getElementById('fp-brand-input'); const clr = document.getElementById('fp-brand-clear'); if (!inp) return; if (FILTERS.brand && clr) clr.style.display = 'block'; inp.addEventListener('keydown', function(e) { if ((e.key === 'Backspace' || e.key === 'Delete') && !inp.value) fpSetBrand('', ''); }); })();
Укажите ваш город
Сначала покажем объявления из вашего города