startit/MVC/skjemaer.html

102 lines
2.9 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<div id="app">
</div>
<script>
// Model
let aName;
let number;
let fontFamily;
let fontSize;
let isDarkMode = false;
// view
updateView()
function updateView() {
document.getElementById('app').innerHTML = /*HTML*/ `
<p>Hei ${aName ?? 'på deg!'}</p>
Navn:<br>
<input
type="text"
oninput="aName=this.value"
value="${aName ?? ''}"/>
Tall:<br>
<input
type="range"
min="1"
max="100"
step="1"
oninput="number=this.valueAsNumber"
value ="${number ?? ''}">${number ?? ''}
<br>
<input
type="checkbox"
oninput="isDarkMode=this.checked"
${isDarkMode ? 'checked' : ''}
>
Dark Mode:
<br>
<button onclick="selectFont('helvetica')">Font A</button>
<button onclick="selectFont('courier')">Font B</button>
<br>
<button
onclick="register()">Registrer</button><br>
<b>Font-størrelse</b><br>
Normal
<input
type="radio"
name="fontSize"
oninput="fontSize='100%'"
${fontSize == '100%' ? 'checked' : ''}
/><br>
50%
<input
type="radio"
name="fontSize"
oninput="fontSize='50%'"
${fontSize == '50%' ? 'checked' : ''}
/> <br>
200%
<input
type="radio"
name="fontSize"
oninput="fontSize='200%'"
${fontSize == '200%' ? 'checked' : ''}
><br>
`;
let bodyStyle = document.body.style;
bodyStyle.fontFamily = fontFamily ?? 'serif';
if (isDarkMode){
bodyStyle.background = 'black';
bodyStyle.color = 'white';
} else {
bodyStyle.background = 'white';
bodyStyle.color = 'black';
};
bodyStyle.fontSize = fontSize;
}
// Controller
function register() {
updateView();
}
function selectFont(newFontFamily){
fontFamily = newFontFamily;
updateView()
}
</script>
</body>
</html>