diff --git a/hw/hw7/favicon.ico b/hw/hw7/favicon.ico new file mode 100644 index 0000000..730b75a Binary files /dev/null and b/hw/hw7/favicon.ico differ diff --git a/hw/hw7/hw7.css b/hw/hw7/hw7.css new file mode 100644 index 0000000..80d9a8b --- /dev/null +++ b/hw/hw7/hw7.css @@ -0,0 +1,40 @@ +.desctription-heading{ + display: block; + justify-self: center; + grid-area: 1/12/ 1 / 1; +} + +.scheme-image{ + grid-area: 2/1/6/5; + width: 100%; +} +.inputs{ + grid-area: 2/5/3/6; + min-width: 300px; + max-width: 300px; +} +.outputs{ + grid-area: 3/5/4/6; + min-width: 300px; + max-width: 300px; +} +.radio-label{ + display: inline-block; +} + +p{ + line-height: 0; +} +.max-w{ + width: 80%; +} + +.hidden{ + display: none; +} +body{ + display: grid; + gap: 20px; + grid-template-columns: repeat(12,1fr); + grid-template-rows:repeat(6,min-content) ; +} \ No newline at end of file diff --git a/hw/hw7/hw7.html b/hw/hw7/hw7.html new file mode 100644 index 0000000..ffd1aa1 --- /dev/null +++ b/hw/hw7/hw7.html @@ -0,0 +1,61 @@ + + + + калькулятор равнобедренного треугольника + + + + + +

калькулятор равнобедренного треугольника

+ + + +
+

Выберете варинат входных данных:

+ +
+ + +
+
+ входные данные +
+ +
+
+ +
+ +
+ что вычислить + +
+ +
+ +
+
+ + +
+
+ + + + + + + \ No newline at end of file diff --git a/hw/hw7/hw7.js b/hw/hw7/hw7.js new file mode 100644 index 0000000..a7e3448 --- /dev/null +++ b/hw/hw7/hw7.js @@ -0,0 +1,103 @@ +let elements = { + radioA: document.getElementById('radioButtonA'), + radioB: document.getElementById('radioButtonB'), + fieldsetA: document.getElementById('inputTypeFieldsetA'), + fieldsetB: document.getElementById('inputTypeFieldsetB'), + imageA: document.getElementById('schemeImageA'), + imageB: document.getElementById('schemeImageB'), + + inputsForm: document.getElementById('inputsForm'), + + equalSideLength: document.getElementById('equalSideLength'), + equalSideLengthErr: document.getElementById('equalSideLengthErr'), + baseAngle: document.getElementById('baseAngle'), + baseAngleErr: document.getElementById('baseAngleErr'), + baseSideLength: document.getElementById('baseSideLength'), + baseSideLengthErr: document.getElementById('baseSideLengthErr'), + baseAdjacentAngle: document.getElementById('baseAdjacentAngle'), + baseAdjacentAngleErr: document.getElementById('baseAdjacentAngleErr'), + + outputsFieldset: document.getElementById('outputsFieldset'), + outputR: document.getElementById('outputValuesR'), + outputH: document.getElementById('outputValuesH'), + outputL: document.getElementById('outputValuesL'), + calculateButton: document.getElementById('calculateButton'), + clearButton: document.getElementById('clearButton'), + outputsTable: document.getElementById('outputsTable') +} +console.log("loaded js!") + +let currentModeIsA = true; +let outputFields = {}; + + + +function updateCheckboxes(){ + outputFields["radius"]=elements.outputR.checked; + outputFields["heights"]=elements.outputH.checked; + outputFields["lengths"]=elements.outputL.checked; + console.log("output fields:",outputFields) +} + +function switchAppearance(selectA) { + if (selectA) { + elements.imageA.classList.remove("hidden") + elements.imageB.classList.add("hidden") + elements.fieldsetA.classList.remove("hidden") + elements.fieldsetB.classList.add("hidden") + } + else { + elements.imageA.classList.add("hidden") + elements.imageB.classList.remove("hidden") + elements.fieldsetA.classList.add("hidden") + elements.fieldsetB.classList.remove("hidden") + } +} + +function clearInputs(clearA) { + if (clearA) { + elements.equalSideLength.value = null; + elements.baseAngle.value = null; + } + else { + elements.baseSideLength.value = null; + elements.baseAdjacentAngle.value = null; + } + elements.outputsTable.classList.add("hidden"); +} +elements.outputsFieldset.addEventListener('change', function (event) { + if (event.target.type === 'checkbox') { + updateCheckboxes(); + } + else if(event.target.type === 'checkbox'){ + + + } +}); + +elements.inputsForm.addEventListener('change', function (event) { + if (event.target.type === 'radio') { + if (event.target.id[event.target.id.length - 1].toLowerCase() == "a") { + currentModeIsA = true; + switchAppearance(true); + console.log("Switching inputs to A"); + } + else { + currentModeIsA = false + switchAppearance(false); + console.log("Switching inputs to B"); + + } + } +}); + +elements.clearButton.addEventListener('click', (event) => { + event.preventDefault(); + clearInputs(currentModeIsA) +}); + + + +// чтобы не сконфузило +updateCheckboxes(); +switchAppearance(elements.radioA.checked); \ No newline at end of file diff --git a/hw/hw7/imgs/type1.jpeg b/hw/hw7/imgs/type1.jpeg new file mode 100644 index 0000000..31a8080 Binary files /dev/null and b/hw/hw7/imgs/type1.jpeg differ diff --git a/hw/hw7/imgs/type2.jpeg b/hw/hw7/imgs/type2.jpeg new file mode 100644 index 0000000..9a4f95c Binary files /dev/null and b/hw/hw7/imgs/type2.jpeg differ