Add js code
This commit is contained in:
parent
60181114cd
commit
7b089df9c0
3 changed files with 53 additions and 1 deletions
|
@ -10,7 +10,7 @@
|
||||||
<body>
|
<body>
|
||||||
<h1>Virtual Keyboard</h1>
|
<h1>Virtual Keyboard</h1>
|
||||||
<div class="wrapper">
|
<div class="wrapper">
|
||||||
<textarea id="transtxt" cols="30" rows="15" oninput="translit()"></textarea>
|
<textarea id="keytext" cols="30" rows="15"></textarea>
|
||||||
</div>
|
</div>
|
||||||
<div class="buttons">
|
<div class="buttons">
|
||||||
<button value="й">й</button>
|
<button value="й">й</button>
|
||||||
|
|
4
main.css
4
main.css
|
@ -13,3 +13,7 @@ textarea {
|
||||||
font-size: 20px;
|
font-size: 20px;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
button {
|
||||||
|
width: 50px;
|
||||||
|
}
|
48
main.js
48
main.js
|
@ -0,0 +1,48 @@
|
||||||
|
document.querySelectorAll('.buttons>button').forEach((button) => {
|
||||||
|
button.addEventListener('click', e => {
|
||||||
|
const value = e.target.value;
|
||||||
|
keypress(value);
|
||||||
|
})
|
||||||
|
});
|
||||||
|
|
||||||
|
function keypress(str) {
|
||||||
|
var textarea = document.getElementById("keytext");
|
||||||
|
|
||||||
|
if (textarea.selectionStart || textarea.selectionStart == '0') {
|
||||||
|
var txt = textarea.value;
|
||||||
|
var startPos = textarea.selectionStart;
|
||||||
|
var endPos = textarea.selectionEnd;
|
||||||
|
if (str === 'del' || str === 'DEL') {
|
||||||
|
if (startPos == endPos) {
|
||||||
|
textarea.value = txt.substring(0, startPos - 1) + txt.substring(endPos, txt.length);
|
||||||
|
textarea.focus();
|
||||||
|
textarea.selectionStart = startPos - 1;
|
||||||
|
textarea.selectionEnd = endPos - 1;
|
||||||
|
} else {
|
||||||
|
textarea.value = txt.substring(0, startPos) + txt.substring(endPos, txt.length);
|
||||||
|
textarea.focus();
|
||||||
|
textarea.selectionStart = startPos;
|
||||||
|
textarea.selectionEnd = startPos;
|
||||||
|
}
|
||||||
|
} else if (str === 'cap') {
|
||||||
|
document.querySelectorAll('.buttons>button').forEach((t) => {
|
||||||
|
t.textContent = t.textContent.toUpperCase();
|
||||||
|
t.value = t.value.toUpperCase();
|
||||||
|
});
|
||||||
|
} else if (str === 'CAP') {
|
||||||
|
document.querySelectorAll('.buttons>button').forEach((t) => {
|
||||||
|
t.textContent = t.textContent.toLowerCase();
|
||||||
|
t.value = t.value.toLowerCase();
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
textarea.value = txt.substring(0, startPos) + str + txt.substring(endPos, txt.length);
|
||||||
|
textarea.focus();
|
||||||
|
textarea.selectionStart = startPos + str.length;
|
||||||
|
textarea.selectionEnd = startPos + str.length;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
textarea.value += str;
|
||||||
|
textarea.focus();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in a new issue