πŸ“± Installa Jobetto!

Trova lavoretti vicino a te

Swipa tra centinaia di piccoli lavori, candidati in un tap e inizia a guadagnare.

Inizia gratis Accedi
βœ• Resetta

πŸ‘‡ Swipa per candidarti

Trasloco mobili piano 3 senza ascensore
Normale Traslochi e trasporti
βœ“ SÌ
βœ• NO
Traslochi e trasporti

Trasloco mobili piano 3 senza ascensore

€ 40.00

Smontare e portare al piano terra: 1 armadio, 1 cassettiera, 4 scatole pesanti. Furgone gi? noleggiato. Circa 2 ore.

πŸ“ Civitanova Marche

Giulia · ⭐ 4.5

Registrati gratis per candidarti

Trova lavori in ogni categoria

Dal giardinaggio alla grafica, dalla cura degli anziani alla fotografia.

🌿 Giardinaggio e verde 🧹 Pulizie domestiche πŸ”§ Manutenzione e riparazioni 🚚 Traslochi e trasporti 🎨 Imbiancatura e pittura 🚿 Idraulica e impianti ⚑ Elettricita πŸͺš Montaggio mobili πŸ—‘ Sgombero e smaltimento πŸ‘Ά Baby-sitting πŸ§“ Cura anziani e disabili 🐢 Dog e pet sitting πŸ“š Lezioni e ripetizioni πŸ’» Informatica e tech ✏️ Grafica e design πŸ“± Social media e marketing πŸ“· Fotografia e video πŸ“¦ Consegne e commissioni 🍳 Cucina e catering ⭐ Altro

Inizia subito, Γ¨ gratuito

Unisciti a migliaia di italiani che trovano o offrono lavoretti ogni giorno.

Registrati gratis Scopri come funziona
(function () { const cats = document.querySelector('.filtri-cats'); if (!cats) return; // ── Wrappa le cats in un contenitore con frecce ──────────── const wrap = document.createElement('div'); wrap.className = 'filtri-cats-wrap'; cats.parentNode.insertBefore(wrap, cats); wrap.appendChild(cats); const btnL = document.createElement('button'); btnL.className = 'filtri-arrow left'; btnL.innerHTML = 'β€Ή'; btnL.setAttribute('aria-label', 'Scorri a sinistra'); const btnR = document.createElement('button'); btnR.className = 'filtri-arrow right'; btnR.innerHTML = 'β€Ί'; btnR.setAttribute('aria-label', 'Scorri a destra'); wrap.appendChild(btnL); wrap.appendChild(btnR); const STEP = 200; // px per ogni click freccia // Aggiorna visibilitΓ  frecce function updateArrows() { btnL.classList.toggle('hidden', cats.scrollLeft <= 4); btnR.classList.toggle('hidden', cats.scrollLeft >= cats.scrollWidth - cats.clientWidth - 4); } // Click frecce btnL.addEventListener('click', () => { cats.scrollBy({ left: -STEP, behavior: 'smooth' }); }); btnR.addEventListener('click', () => { cats.scrollBy({ left: STEP, behavior: 'smooth' }); }); cats.addEventListener('scroll', updateArrows, { passive: true }); updateArrows(); // inizializza // ── Scroll con rotella del mouse ─────────────────────────── cats.addEventListener('wheel', (e) => { // Se scroll verticale β†’ converti in orizzontale if (Math.abs(e.deltaY) > Math.abs(e.deltaX)) { e.preventDefault(); cats.scrollBy({ left: e.deltaY * 1.5, behavior: 'auto' }); } }, { passive: false }); // ── Drag con il mouse (desktop) ──────────────────────────── let isDragging = false; let startX = 0; let scrollStart = 0; cats.addEventListener('mousedown', (e) => { // Ignora click su chip (link) if (e.target.closest('a')) return; isDragging = true; startX = e.clientX; scrollStart = cats.scrollLeft; cats.style.cursor = 'grabbing'; cats.style.userSelect = 'none'; e.preventDefault(); }); window.addEventListener('mousemove', (e) => { if (!isDragging) return; const dx = e.clientX - startX; cats.scrollLeft = scrollStart - dx; updateArrows(); }); window.addEventListener('mouseup', () => { if (!isDragging) return; isDragging = false; cats.style.cursor = ''; cats.style.userSelect = ''; }); // ── Aggiorna frecce al resize ────────────────────────────── window.addEventListener('resize', updateArrows, { passive: true }); })();