Lånekalkulator - La Vida Eiendom * { margin: 0; padding: 0; box-sizing: border-box; } body { font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); min-height: 100vh; padding: 40px 20px; } .calculator-container { max-width: 750px; margin: 0 auto; background: white; border-radius: 24px; box-shadow: 0 20px 60px rgba(0,0,0,0.3); overflow: hidden; } .calculator-header { background: linear-gradient(135deg, #1e3c72 0%, #2a5298 100%); color: white; padding: 25px; text-align: center; } .calculator-header h1 { font-size: 26px; margin-bottom: 5px; } .calculator-header p { opacity: 0.9; font-size: 14px; } .kurs-info { background: rgba(255,255,255,0.15); padding: 8px 15px; border-radius: 20px; margin-top: 12px; font-size: 13px; display: inline-block; } .calculator-body { padding: 30px; } .input-group { margin-bottom: 20px; } .input-group label { display: block; font-weight: 600; color: #333; margin-bottom: 8px; font-size: 14px; } .input-group input, .input-group select { width: 100%; padding: 12px 15px; border: 2px solid #e0e0e0; border-radius: 10px; font-size: 16px; transition: all 0.3s; } .input-group input:focus, .input-group select:focus { outline: none; border-color: #2a5298; box-shadow: 0 0 0 3px rgba(42,82,152,0.1); } .input-group .input-prefix { position: relative; } .input-group .input-prefix input { padding-left: 35px; } .input-group .input-prefix::before { content: "€"; position: absolute; left: 12px; top: 50%; transform: translateY(-50%); color: #666; font-weight: 600; } .input-group .subtext { font-size: 12px; color: #888; margin-top: 5px; } .button-group { display: flex; gap: 15px; margin: 20px 0; flex-wrap: wrap; } .calc-btn { background: #2a5298; color: white; border: none; padding: 10px 20px; border-radius: 8px; cursor: pointer; font-weight: 600; transition: all 0.3s; flex: 1; text-align: center; } .calc-btn:hover { background: #1e3c72; } .consequence-box { background: #f0f7ff; border-radius: 12px; padding: 15px; margin: 20px 0; border-left: 4px solid #2a5298; } .consequence-box .positive { color: #2e7d32; } .consequence-box .negative { color: #c62828; } .info-box { background: #e8f0fe; border-radius: 10px; padding: 12px; margin-bottom: 20px; font-size: 13px; color: #1e3c72; } .warning-box { background: #fff3e0; border-left: 4px solid #ff9800; border-radius: 10px; padding: 15px; margin-bottom: 20px; font-size: 14px; } .section-title { font-size: 18px; font-weight: 700; color: #1e3c72; margin: 25px 0 15px 0; padding-bottom: 8px; border-bottom: 2px solid #e0e0e0; } .result-row { display: flex; justify-content: space-between; padding: 10px 0; border-bottom: 1px solid #f0f0f0; flex-wrap: wrap; } .result-label { font-weight: 500; color: #555; } .result-value { font-weight: 700; color: #2a5298; } .nok-value { font-size: 12px; color: #888; margin-top: 2px; width: 100%; text-align: right; } .total-row { font-size: 18px; font-weight: 700; color: #1e3c72; border-top: 2px solid #e0e0e0; padding-top: 15px; margin-top: 10px; } .monthly-payment { background: linear-gradient(135deg, #1e3c72 0%, #2a5298 100%); color: white; border-radius: 12px; padding: 15px; margin-top: 20px; text-align: center; } .monthly-payment .label { font-size: 14px; opacity: 0.9; } .monthly-payment .value { font-size: 28px; font-weight: 700; color: #FFD700; } .monthly-payment .nok-value { color: rgba(255,255,255,0.7); font-size: 14px; margin-top: 5px; text-align: center; } .note { font-size: 11px; color: #999; text-align: center; margin-top: 25px; padding-top: 15px; border-top: 1px solid #e0e0e0; } @media (max-width: 600px) { .calculator-body { padding: 20px; } .result-row { flex-direction: column; gap: 5px; } .result-value { text-align: right; } .button-group { flex-direction: column; } }

🏠 LaVida's lånekalkulator for boligkjøp i Spania

Beregn egenkapital, lån og månedlige kostnader

📊 Henter dagens kurs fra Norges Bank...
Ny bolig – ikke påbegynt Ny bolig – ferdig Brukt bolig
Typisk 60-80% for utenlandske kjøpere i Spania
📊 Konsekvens av dine valg:
Fyll ut tallene for å se konsekvensen
📊 Grunnleggende beregninger
💰 Nødvendig egenkapital (30% av boligpris): 0 €
🏦 Maksimalt lånebeløp (70% av boligpris): 0 €
💡 Tips: Nødvendig egenkapital beregnes ut fra din valgte låneprosent. Spanske banker tilbyr vanligvis 60-80% finansiering for utenlandske kjøpere.
🧾 Totalkostnad med avgifter
📌 Totalkostnad (inkl. IVA/stempelavgift, notarius, tinglysning, advokat m.m.): 0 €
*La Vida tar ingen % eller beløp for vår bistand!
* Kalkulatoren er veiledende. Vi i La Vida Eiendom hjelper deg ikke bare med å finne riktig bolig, men også med finansiering. Gjennom våre samarbeidspartnere kan du enkelt få tilbud fra flere banker i Spania – vi fyller søknaden sammen med deg for å sikre best mulig betingelser.

Som en tommelfingerregel setter spanske banker vanligvis maks boliglån til 35 % av netto månedslønn. Eks.: 25 000 kr/mnd → ca. 8 750 kr i månedlige avdrag.

Nybygg: 10 % IVA. Bruktbolig: ingen IVA, men 6–10 % ITP (overføringsavgift).
Depositum er typisk 3 000–6 000 € og trekkes fra ved overtakelse.
// DOM-elementer const boligtypeSelect = document.getElementById('boligtype'); const egenkapitalInput = document.getElementById('egenkapital'); const boligprisInput = document.getElementById('boligpris'); const renteInput = document.getElementById('rente'); const laneprosentInput = document.getElementById('laneprosent'); const lengdeInput = document.getElementById('lengde'); const nodvendigEgenkapitalSpan = document.getElementById('nodvendigEgenkapital'); const nodvendigEgenkapitalNok = document.getElementById('nodvendigEgenkapitalNok'); const maksLanSpan = document.getElementById('maksLan'); const maksLanNok = document.getElementById('maksLanNok'); const totalKostnadSpan = document.getElementById('totalKostnad'); const totalKostnadNok = document.getElementById('totalKostnadNok'); const consequenceText = document.getElementById('consequenceText'); // Nybygg ikke påbegynt const depositumSpan = document.getElementById('depositum'); const depositumNok = document.getElementById('depositumNok'); const kontrakt30dSpan = document.getElementById('kontrakt30d'); const kontrakt30dNok = document.getElementById('kontrakt30dNok'); const halvferdigSpan = document.getElementById('halvferdig'); const halvferdigNok = document.getElementById('halvferdigNok'); const totalForOvertagelseSpan = document.getElementById('totalForOvertagelse'); const totalForOvertagelseNok = document.getElementById('totalForOvertagelseNok'); const resterendeTilOvertagelseSpan = document.getElementById('resterendeTilOvertagelse'); const resterendeTilOvertagelseNok = document.getElementById('resterendeTilOvertagelseNok'); const resLanNybyggIkkeSpan = document.getElementById('resLanNybyggIkke'); const resLanNybyggIkkeNok = document.getElementById('resLanNybyggIkkeNok'); const mndLanNybyggIkkeSpan = document.getElementById('mndLanNybyggIkke'); const mndLanNybyggIkkeNok = document.getElementById('mndLanNybyggIkkeNok'); const finansieringsadvarsel = document.getElementById('finansieringsadvarsel'); const manglerBelopSpan = document.getElementById('manglerBelop'); // Brukt const depositumBruktSpan = document.getElementById('depositumBrukt'); const depositumBruktNok = document.getElementById('depositumBruktNok'); const overtagelseBruktSpan = document.getElementById('overtagelseBrukt'); const overtagelseBruktNok = document.getElementById('overtagelseBruktNok'); const resLanBruktSpan = document.getElementById('resLanBrukt'); const resLanBruktNok = document.getElementById('resLanBruktNok'); const mndLanBruktSpan = document.getElementById('mndLanBrukt'); const mndLanBruktNok = document.getElementById('mndLanBruktNok'); // Nybygg ferdig const depositumNyFerdigSpan = document.getElementById('depositumNyFerdig'); const depositumNyFerdigNok = document.getElementById('depositumNyFerdigNok'); const overtagelseNyFerdigSpan = document.getElementById('overtagelseNyFerdig'); const overtagelseNyFerdigNok = document.getElementById('overtagelseNyFerdigNok'); const resLanNyFerdigSpan = document.getElementById('resLanNyFerdig'); const resLanNyFerdigNok = document.getElementById('resLanNyFerdigNok'); const mndLanNyFerdigSpan = document.getElementById('mndLanNyFerdig'); const mndLanNyFerdigNok = document.getElementById('mndLanNyFerdigNok'); const seksjonNybyggIkke = document.getElementById('seksjon-nybygg-ikke-pabegynt'); const seksjonBrukt = document.getElementById('seksjon-brukt'); const seksjonNybyggFerdig = document.getElementById('seksjon-nybygg-ferdig'); const kursInfo = document.getElementById('kursInfo'); let euroToNok = 11.30; let kursHentet = false; async function hentValutakurs() { try { const response = await fetch('https://open.er-api.com/v6/latest/EUR'); const data = await response.json(); if (data.result === 'success' && data.rates && data.rates.NOK) { euroToNok = data.rates.NOK; kursHentet = true; kursInfo.innerHTML = `💱 Dagens kurs: 1 EUR = ${euroToNok.toFixed(4)} NOK (oppdatert daglig)`; } else { throw new Error('Kunne ikke hente kurs'); } } catch (error) { console.error('Feil ved henting av kurs:', error); kursInfo.innerHTML = `⚠️ Kunne ikke hente dagens kurs. Bruker estimert kurs: 1 EUR = ${euroToNok.toFixed(2)} NOK.`; } oppdaterAlleBeregninger(); } function formaterNok(euroBelop) { if (!kursHentet && euroToNok === 11.30) { return `ca. ${Math.round(euroBelop * euroToNok).toLocaleString('no-NO')} kr*`; } return `${Math.round(euroBelop * euroToNok).toLocaleString('no-NO')} kr`; } function oppdaterNok(verdi, nokElement) { if (nokElement) { nokElement.innerHTML = formaterNok(verdi); } } function beregnManedligLan(lanebelop, arsRente, ar) { if (lanebelop 0) { konsekvensHtml += `✅ Du har ${Math.abs(egenkapitalDifferanse).toLocaleString('no-NO')} € mer egenkapital enn nødvendig. `; } else if (egenkapitalDifferanse < 0) { konsekvensHtml += `⚠️ Du mangler ${Math.abs(egenkapitalDifferanse).toLocaleString('no-NO')} € i egenkapital. `; } else { konsekvensHtml += `✅ Egenkapitalen er nøyaktig det som kreves (${egenkapital.toLocaleString('no-NO')} €). `; } // 2. Byggeperiode-konsekvens (kun for nybygg under bygging) if (boligtype === 'nybygg-ikke-pabegynt') { const depositum = 4000; const kontraktBelop = boligpris * 0.10; const halvferdigBelop = boligpris * 0.30; const totalFoerOvertagelse = depositum + kontraktBelop + halvferdigBelop; const byggeperiodeDifferanse = egenkapital - totalFoerOvertagelse; if (byggeperiodeDifferanse < 0) { konsekvensHtml += `

⚠️ UNDER BYGGEPERIODEN: Du mangler ${Math.abs(byggeperiodeDifferanse).toLocaleString('no-NO')} €. `; konsekvensHtml += `Depositum (4.000 €) + 10% (${kontraktBelop.toLocaleString('no-NO')} €) + 30% (${halvferdigBelop.toLocaleString('no-NO')} €) = ${totalFoerOvertagelse.toLocaleString('no-NO')} € må betales før overtakelse. Velg bank som delfinaniserer under byggeprossess!

`; konsekvensHtml += `ℹ️ MERK: De fleste Spanske banker tilbyr delfinansiering under byggeperioden. `; konsekvensHtml += `Velg riktig bank som besørger dette. Dette vil da dekke hele underskuddet på ${Math.abs(byggeperiodeDifferanse).toLocaleString('no-NO')} €.`; } else if (byggeperiodeDifferanse > 0) { konsekvensHtml += `

UNDER BYGGEPERIODEN: Du har ${byggeperiodeDifferanse.toLocaleString('no-NO')} € til overs etter depositum og delbetalinger.`; } else { konsekvensHtml += `

UNDER BYGGEPERIODEN: Egenkapitalen dekker nøyaktig depositum og delbetalinger.`; } } consequenceText.innerHTML = konsekvensHtml; } function oppdaterAlleBeregninger() { let egenkapital = parseFloat(egenkapitalInput.value) || 0; let boligpris = parseFloat(boligprisInput.value) || 0; let laneprosent = parseFloat(laneprosentInput.value) || 70; const boligtype = boligtypeSelect.value; const rente = parseFloat(renteInput.value) || 3.5; const lanetidAr = parseFloat(lengdeInput.value) || 20; // Oppdater prosenttekster const egenkapitalProsent = 100 - laneprosent; document.getElementById('egenkapitalProsent').textContent = egenkapitalProsent; document.getElementById('lanProsentVisning').textContent = laneprosent; // Beregninger const nodvendigEgenkapital = boligpris * (1 - laneprosent / 100); const maksLanBelop = boligpris * (laneprosent / 100); const totalKostnadMedAvgifter = getTotalPrisMedAvgifter(boligpris, boligtype); nodvendigEgenkapitalSpan.textContent = Math.round(nodvendigEgenkapital).toLocaleString('no-NO') + ' €'; oppdaterNok(nodvendigEgenkapital, nodvendigEgenkapitalNok); maksLanSpan.textContent = Math.round(maksLanBelop).toLocaleString('no-NO') + ' €'; oppdaterNok(maksLanBelop, maksLanNok); totalKostnadSpan.textContent = Math.round(totalKostnadMedAvgifter).toLocaleString('no-NO') + ' €'; oppdaterNok(totalKostnadMedAvgifter, totalKostnadNok); // Oppdater konsekvens oppdaterKonsekvens(egenkapital, boligpris, laneprosent, boligtype); const depositum = 4000; const kontraktProsent = 10; const halvferdigProsent = 30; if (boligtype === 'nybygg-ikke-pabegynt') { seksjonNybyggIkke.style.display = 'block'; seksjonBrukt.style.display = 'none'; seksjonNybyggFerdig.style.display = 'none'; const kontraktBelop = boligpris * (kontraktProsent / 100); const halvferdigBelop = boligpris * (halvferdigProsent / 100); const totalForOvertagelse = depositum + kontraktBelop + halvferdigBelop; const resterendeTilOvertagelse = egenkapital - totalForOvertagelse; const resLan = totalKostnadMedAvgifter - egenkapital; const manedligLan = beregnManedligLan(Math.max(0, resLan), rente, lanetidAr); depositumSpan.textContent = Math.round(depositum).toLocaleString('no-NO') + ' €'; oppdaterNok(depositum, depositumNok); kontrakt30dSpan.textContent = Math.round(kontraktBelop).toLocaleString('no-NO') + ' €'; oppdaterNok(kontraktBelop, kontrakt30dNok); halvferdigSpan.textContent = Math.round(halvferdigBelop).toLocaleString('no-NO') + ' €'; oppdaterNok(halvferdigBelop, halvferdigNok); totalForOvertagelseSpan.textContent = Math.round(totalForOvertagelse).toLocaleString('no-NO') + ' €'; oppdaterNok(totalForOvertagelse, totalForOvertagelseNok); const erNegativ = resterendeTilOvertagelse < 0; resterendeTilOvertagelseSpan.textContent = (erNegativ ? '− ' : '') + Math.abs(Math.round(resterendeTilOvertagelse)).toLocaleString('no-NO') + ' €'; resterendeTilOvertagelseSpan.style.color = erNegativ ? '#c62828' : '#2a5298'; oppdaterNok(Math.abs(resterendeTilOvertagelse), resterendeTilOvertagelseNok); if (resterendeTilOvertagelseNok) { resterendeTilOvertagelseNok.style.color = erNegativ ? '#c62828' : '#888'; } if (resterendeTilOvertagelse { const egenkapital = parseFloat(egenkapitalInput.value) || 0; const laneprosent = parseFloat(laneprosentInput.value) || 70; if (egenkapital > 0 && laneprosent > 0) { const boligpris = egenkapital / (1 - laneprosent / 100); boligprisInput.value = Math.round(boligpris); oppdaterAlleBeregninger(); } }); document.getElementById('btnBeregnEgenkapital').addEventListener('click', () => { const boligpris = parseFloat(boligprisInput.value) || 0; const laneprosent = parseFloat(laneprosentInput.value) || 70; if (boligpris > 0 && laneprosent > 0) { const egenkapital = boligpris * (1 - laneprosent / 100); egenkapitalInput.value = Math.round(egenkapital); oppdaterAlleBeregninger(); } }); document.getElementById('btnBeregnLaneprosent').addEventListener('click', () => { const boligpris = parseFloat(boligprisInput.value) || 0; const egenkapital = parseFloat(egenkapitalInput.value) || 0; if (boligpris > 0 && egenkapital > 0) { const laneprosent = (1 - egenkapital / boligpris) * 100; if (laneprosent >= 50 && laneprosent <= 90) { laneprosentInput.value = Math.round(laneprosent); oppdaterAlleBeregninger(); } } }); // Event listeners egenkapitalInput.addEventListener('input', oppdaterAlleBeregninger); boligprisInput.addEventListener('input', oppdaterAlleBeregninger); laneprosentInput.addEventListener('input', oppdaterAlleBeregninger); renteInput.addEventListener('input', oppdaterAlleBeregninger); lengdeInput.addEventListener('input', oppdaterAlleBeregninger); boligtypeSelect.addEventListener('change', oppdaterAlleBeregninger); hentValutakurs();
Option not allowed
Din megler i Spania
Translate »
Compare List
Please Add a first listing
Compare Now