Advertisement
Guest User

Untitled

a guest
Apr 21st, 2019
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.70 KB | None | 0 0
  1. <!DOCTYPE html>
  2. <html lang="en">
  3.  
  4. <head>
  5. <meta charset="UTF-8">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <meta http-equiv="X-UA-Compatible" content="ie=edge">
  8. <title>Virtual Keyboard</title>
  9.  
  10. <style>
  11. #output {
  12. font-size: 2.3rem;
  13. padding-bottom: 2rem;
  14. }
  15.  
  16. button {
  17. font-size: 2rem;
  18. background: lightblue;
  19. border: 2px solid #cccccc;
  20. }
  21.  
  22. body {
  23. display: flex;
  24. flex-direction: column;
  25. align-items: center;
  26. justify-content: center;
  27. }
  28.  
  29. #keyboardDiv {
  30. display: inline-block;
  31. width: 750px;
  32. border: #cccccc 2px solid;
  33. }
  34.  
  35. #keyboardDiv .row {
  36. display: flex;
  37. }
  38.  
  39. #keyboardDiv .row button {
  40. flex: 1;
  41. }
  42. </style>
  43. </head>
  44.  
  45. <body>
  46.  
  47. <div id="output">OUTPUT: </div>
  48.  
  49. <div id=keyboardDiv>
  50.  
  51. <div class="row">
  52. <button>0</button>
  53. <button>1</button>
  54. <button>2</button>
  55. <button>3</button>
  56. <button>4</button>
  57. <button>5</button>
  58. <button>6</button>
  59. <button>7</button>
  60. <button>8</button>
  61. <button>9</button>
  62. </div>
  63. <div class="row">
  64. <button>a</button>
  65. <button>b</button>
  66. <button>c</button>
  67. <button>d</button>
  68. <button>e</button>
  69. <button>f</button>
  70. <button>g</button>
  71. <button>h</button>
  72. <button>i</button>
  73. <button>j</button>
  74. </div>
  75. <div class="row">
  76. <button>k</button>
  77. <button>l</button>
  78. <button>m</button>
  79. <button>n</button>
  80. <button>o</button>
  81. <button>p</button>
  82. <button>q</button>
  83. <button>r</button>
  84. <button>s</button>
  85. </div>
  86. <div class="row">
  87. <button>t</button>
  88. <button>u</button>
  89. <button>v</button>
  90. <button>w</button>
  91. <button>x</button>
  92. <button>y</button>
  93. <button>z</button>
  94. </div>
  95. <div class="row">
  96. <button>space</button>
  97. <button>caps</button>
  98. </div>
  99.  
  100.  
  101. </div>
  102.  
  103. </body>
  104.  
  105. <script>
  106.  
  107. const keyboard = document.querySelector("#keyboardDiv");
  108. const output = document.querySelector("#output");
  109. const keys = document.querySelectorAll("button");
  110.  
  111. keyboard.addEventListener("click", e => {
  112. let key = e.target.textContent;
  113.  
  114. if (key.toLowerCase() === "space") key = " ";
  115. else if (key === "caps") {
  116. keys.forEach(key => {
  117. key.textContent = key.textContent.toUpperCase();
  118. });
  119.  
  120. return;
  121. }
  122. else if (key === "CAPS") {
  123. keys.forEach(key => {
  124. key.textContent = key.textContent.toLowerCase();
  125. });
  126.  
  127. return;
  128. }
  129.  
  130. output.textContent += key;
  131. console.log(e.target.textContent);
  132. })
  133.  
  134. </script>
  135. <!--
  136.  
  137. make a virtual keyboard
  138. 5 rows
  139. 1st row 0-9 numbers
  140. 2nd row A-j (10 columns)
  141. 3rd k-s (9 columns)
  142. 4 rest alphabets (7 columns)
  143. 5 space and caps (2 columns)
  144.  
  145. there should be just one event handler and that should be on the <div id=keyboardDiv></div>
  146. Also clicking on caps should make the text of the keys on the kyboard toggle between upper case and lower case
  147.  
  148. Whatever you type should be displayed in another <div id="output"></div>
  149.  
  150.  
  151. -->
  152.  
  153. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement