О КОМПАНИИ▾
УСЛУГИ▾
РЕШЕНИЯ▾
ТЕХНОЛОГИЧЕСКИЕ ПАРТНЕРЫ
БИЗНЕС ПАРТНЕРЫ
ОТДЕЛЬНЫЕ ПРОЕКТЫ
АТОВМАТИЗАЦИЯ БИЗНЕСА▸
WEB-РАЗРАБОТКА▸
ТЕХНИЧЕСКАЯ ПОДДЕРЖКА▸
1С (ПОКУПКА/ВНЕДРЕНИЕ)▸
ИТ КОНСАЛТИНГ▸
ИМПОРТОЗАМЕЩЕНИЕ
ПОДДЕРЖКА САЙТОВ
ПОДДЕРЖКА ПОРТАЛОВ И CRM
КОМПЛЕКСНАЯ ПОДДЕРЖКА ИТ-СТРУКТУРЫ КОМПАНИИ
ПРОГРАММЫ 1С▸
СЕРВИСЫ 1С▸
УСЛУГИ 1С▸
ПОДДЕРЖКА 1С
1С:Бухгалтерия
1С:УНФ
1С:ЗУП
1С:КА
1С:УТ
1С:ДО
1С:ERP
1C:РОЗНИЦА
ЛИЦЕНЗИИ 1С
ВСЕ ПРОГРАММЫ▸
1С - ОТЧЕТНОСТЬ
1С: ФРЕШ
1С:КОНТРАГЕНТ
1С:ЭДО
1СПАРК РИСКИ
ВСЕ СЕРВИСЫ▸
ДОРАБОТКА 1С
НАСТРОЙКА 1С
УСТАНОВКА 1С
ОБНОВЛЕНИЕ 1С
АВТОМАТИЗАЦИЯ 1С
ВНЕДРЕНИЕ
АНАЛИЗ БИЗНЕС-ПРОЦЕССОВ
ОПТИМИЗАЦИЯ БИЗНЕС-ПРОЦЕССОВ
ОПИСАНИЕ И МОДЕЛИРОВАНИЕ БИЗНЕС-ПРОЦЕССОВ
СОПРОВОЖДЕНИЕ ПРОЕКТОВ АВТОМАТИЗАЦИИ
РАЗРАБОТКА ТЗ НА ВНЕДРЕНИЕ ИТ СИСТЕМ
РАЗРАБОТКА БИЗНЕС-ПРОЦЕССОВ
Инвестиционный калькулятор

Инвестиционный калькулятор

/* Сброс и базовые стили */ * { margin: 0; padding: 0; box-sizing: border-box; } body { font-family: -apple-system, BlinkMacSystemFont, "Helvetica Neue", Arial, sans-serif; background-color: #f9f9f9; color: #1d1d1f; min-height: 100vh; display: flex; align-items: center; justify-content: center; padding: 20px; } .container { width: 100%; max-width: 600px; background: #ffffff; padding: 40px; border-radius: 24px; box-shadow: 0 12px 24px rgba(0, 0, 0, 0.08); } h1 { font-size: 28px; font-weight: 600; text-align: center; margin-bottom: 30px; } .form-group { margin-bottom: 24px; } label { display: block; font-size: 15px; margin-bottom: 8px; color: #3c3c43; } input, select { width: 100%; padding: 14px; border: 1px solid #d1d1d6; border-radius: 14px; background: #f2f2f7; font-size: 16px; transition: 0.3s; } input:focus, select:focus { outline: none; border-color: #0071e3; background: #ffffff; } .checkboxes { display: flex; flex-wrap: wrap; gap: 20px; } .calculate-btn, .submit-btn { width: 100%; padding: 16px; background-color: #0071e3; color: white; font-size: 17px; font-weight: 600; border: none; border-radius: 16px; cursor: pointer; margin-top: 10px; transition: background-color 0.3s; } .calculate-btn:hover, .submit-btn:hover { background-color: #005bb5; } .hidden { display: none; } .results { background: #f2f2f7; padding: 24px; margin-top: 30px; border-radius: 16px; font-size: 16px; line-height: 1.6; animation: fadeIn 0.5s ease-in-out; } .result-block { margin-bottom: 15px; display: flex; align-items: center; gap: 10px; font-size: 18px; } .result-block span { font-size: 24px; } .lead-magnet { background: #ffffff; margin-top: 30px; padding: 24px; border-radius: 16px; text-align: center; box-shadow: 0 8px 16px rgba(0,0,0,0.05); } .lead-magnet h2 { font-size: 22px; margin-bottom: 10px; } .lead-magnet p { font-size: 16px; margin-bottom: 20px; } #userPhone { margin-bottom: 10px; } .animated-block { opacity: 0; transform: translateY(10px); transition: opacity 0.5s ease, transform 0.5s ease; } .fade-in { opacity: 1; transform: translateY(0); } @keyframes fadeIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }
const districts = { "ЦАО": [ { name: "Таганский", minPrice: 34000000 }, { name: "Пресненский", minPrice: 38000000 }, { name: "Арбат", minPrice: 36000000 } ], "САО": [ { name: "Ховрино", minPrice: 12000000 }, { name: "Беговой", minPrice: 22000000 } ], "СВАО": [ { name: "Свиблово", minPrice: 14000000 }, { name: "Бутырский", minPrice: 15000000 } ], "ВАО": [ { name: "Перово", minPrice: 10500000 }, { name: "Гольяново", minPrice: 9000000 } ], "СЗАО": [ { name: "Куркино", minPrice: 9500000 } ], "ЗелАО": [ { name: "Матушкино", minPrice: 7500000 } ], "ЮАО": [ { name: "Москворечье-Сабурово", minPrice: 8800000 } ], "ЮЗАО": [ { name: "Черёмушки", minPrice: 16500000 }, { name: "Обручевский", minPrice: 18000000 } ], "ЮВАО": [ { name: "Некрасовка", minPrice: 7200000 }, { name: "Южнопортовый", minPrice: 8500000 } ], "ЗАО": [ { name: "Фили-Давыдково", minPrice: 18000000 }, { name: "Дорогомилово", minPrice: 32000000 } ] }; // Заполнить список округов при загрузке страницы document.addEventListener("DOMContentLoaded", populateDistricts); function populateDistricts() { const districtSelect = document.getElementById("district"); Object.keys(districts).forEach(district => { const option = document.createElement("option"); option.value = district; option.textContent = district; districtSelect.appendChild(option); }); } function updateNeighborhoods() { const district = document.getElementById("district").value; const neighborhoodSelect = document.getElementById("neighborhood"); neighborhoodSelect.innerHTML = ""; if (district && districts[district]) { districts[district].forEach((item) => { const option = document.createElement("option"); option.value = item.name; option.textContent = item.name; neighborhoodSelect.appendChild(option); }); } else { const option = document.createElement("option"); option.textContent = "Сначала выберите округ"; neighborhoodSelect.appendChild(option); } document.getElementById("minPriceDisplay").innerHTML = ""; } function updateMinPrice() { const district = document.getElementById("district").value; const neighborhood = document.getElementById("neighborhood").value; const display = document.getElementById("minPriceDisplay"); display.classList.remove("fade-in"); setTimeout(() => { const area = districts[district]?.find((n) => n.name === neighborhood); if (area) { display.innerHTML = `Минимальная стоимость квартиры: ${area.minPrice.toLocaleString()} ₽`; display.classList.add("fade-in"); } }, 100); } function toggleMortgageFields() { const mortgageValue = document.getElementById("mortgage").value; const fields = document.querySelector(".mortgage-fields"); if (mortgageValue === "yes") { fields.classList.remove("hidden"); } else { fields.classList.add("hidden"); } } function validateAndCalculate() { const budget = parseInt(document.getElementById("budget").value); const district = document.getElementById("district").value; const neighborhood = document.getElementById("neighborhood").value; const neighborhoodData = districts[district]?.find(n => n.name === neighborhood); const minPrice = neighborhoodData ? neighborhoodData.minPrice : 0; if (!budget || budget < minPrice) { alert("Ваш бюджет ниже минимальной стоимости квартиры в этом районе. Пожалуйста, выберите другой район."); return; } calculateResults(minPrice); } function calculateResults(basePrice) { const ownershipTerm = parseInt(document.getElementById("ownershipTerm").value); const strategy = document.getElementById("strategy").value; const useMortgage = document.getElementById("mortgage").value === "yes"; const factorKRT = document.getElementById("factorKRT").checked ? 0.10 : 0; const factorMetro = document.getElementById("factorMetro").checked ? 0.12 : 0; const factorEco = document.getElementById("factorEco").checked ? 0.06 : 0; const growthRate = 0.06 + factorKRT + factorMetro + factorEco; const futureValue = basePrice * Math.pow(1 + growthRate, ownershipTerm); let netProfit = 0; let annualIncome = 0; if (strategy === "resale") { netProfit = futureValue - basePrice; } else { const monthlyRent = basePrice * 0.0055; annualIncome = monthlyRent * 12; netProfit = (annualIncome * ownershipTerm); } const roi = (netProfit / basePrice) * 100; const resultHTML = `
???? Будущая стоимость: ${futureValue.toLocaleString()} ₽
???? Чистая прибыль: ${netProfit.toLocaleString()} ₽
${strategy === "rent" ? `
???? Доход от аренды в год: ${annualIncome.toLocaleString()} ₽
` : ""}
???? Годовая доходность (ROI): ${roi.toFixed(2)}%
`; const resultsBlock = document.getElementById("results"); resultsBlock.innerHTML = resultHTML; resultsBlock.classList.remove("hidden"); document.getElementById("lead-magnet").classList.remove("hidden"); } function submitLead() { const phone = document.getElementById("userPhone").value.trim(); if (phone.length < 7) { alert("Пожалуйста, введите корректный номер телефона."); return; } alert("Спасибо! Мы свяжемся с вами в ближайшее время."); document.getElementById("userPhone").value = ""; }
Made on
Tilda