-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathscript.js
More file actions
86 lines (72 loc) · 2.98 KB
/
Copy pathscript.js
File metadata and controls
86 lines (72 loc) · 2.98 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
document.addEventListener('DOMContentLoaded', function () {
// Initialize the materials container with one material input
addMaterial();
});
function addMaterial() {
var materialsContainer = document.getElementById('materialsContainer');
// Create a new material container
var materialContainer = document.createElement('div');
materialContainer.className = 'material-container';
materialContainer.draggable = true;
materialContainer.ondragstart = function (event) {
drag(event);
};
// Material dropdown
var materialDropdown = document.createElement('select');
materialDropdown.className = 'material-dropdown';
materialDropdown.required = true;
for (var material in uValues) {
var option = document.createElement('option');
option.value = material;
option.text = material;
materialDropdown.add(option);
}
// Thickness input
var thicknessInput = document.createElement('input');
thicknessInput.type = 'number';
thicknessInput.step = 'any';
thicknessInput.placeholder = 'Thickness (m)';
thicknessInput.className = 'thickness-input';
thicknessInput.required = true;
// Remove material button
var removeButton = document.createElement('button');
removeButton.type = 'button';
removeButton.textContent = 'Remove';
removeButton.className = 'remove-button';
removeButton.onclick = function () {
materialsContainer.removeChild(materialContainer);
};
// Append elements to the material container
materialContainer.appendChild(materialDropdown);
materialContainer.appendChild(thicknessInput);
materialContainer.appendChild(removeButton);
// Append the material container to the materials container
materialsContainer.appendChild(materialContainer);
}
function calculateUValue() {
var materialContainers = document.querySelectorAll('.material-container');
var totalUValue = 0;
materialContainers.forEach(function (materialContainer) {
var selectedMaterial = materialContainer.querySelector('.material-dropdown').value;
var thickness = parseFloat(materialContainer.querySelector('.thickness-input').value);
var uValue = uValues[selectedMaterial];
if (!isNaN(thickness) && !isNaN(uValue)) {
totalUValue += uValue * thickness;
}
});
// Display result
document.getElementById('result').innerText = 'Total U-Value: ' + totalUValue.toFixed(4) + ' W/(m²K)';
}
function allowDrop(event) {
event.preventDefault();
}
function drag(event) {
event.dataTransfer.setData('text', event.target.id);
}
function drop(event) {
event.preventDefault();
var data = event.dataTransfer.getData('text');
var draggedElement = document.getElementById(data);
var materialsContainer = document.getElementById('materialsContainer');
materialsContainer.insertBefore(draggedElement, event.target);
}