Форум программистов, компьютерный форум, киберфорум
Наши страницы
JavaScript
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.69/16: Рейтинг темы: голосов - 16, средняя оценка - 4.69
OlegPL
5 / 5 / 0
Регистрация: 22.10.2013
Сообщений: 103
1

Экранная клавиатура

29.05.2014, 17:22. Просмотров 3112. Ответов 9
Метки нет (Все метки)

Здравствуйте столкнулся с такой проблемой... Клавиатура вообще относительно работает нормально, но с одним но... Если нажать мимо кнопки, то получается что выводится содержимое ряда кнопок... Так же хотелось бы услышать адекватные пожелания по написанию кода...

HTML5
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
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <link href="style.css" rel="stylesheet">
    </head>
    <body>
        <div id="windowAndkeyboard">
            <div id="windowScreen"></div>
            <div id="keyboard">
                <div id="firstLine">
                    <div>q</div><div>w</div><div>e</div><div>r</div><div>t</div><div>y</div><div>u</div><div>i</div><div>o</div><div>p</div>
                </div>
                <div id="secondLine">
                    <div>a</div><div>s</div><div>d</div><div>f</div><div>g</div><div>h</div><div>j</div><div>k</div><div>l</div>
                </div>
                <div id="thirdLine">
                    <div>z</div><div>x</div><div>c</div><div>v</div><div>b</div><div>n</div><div>m</div>
                </div>
            </div>
        </div>
        <script src="script.js"></script>
    </body>
</html>
CSS
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
/* Общие настройки*/
* {
    margin: 0;
    padding: 0;
}
 
/*Обертка окна и клавиатуры*/
#windowAndkeyboard {
    max-width: 600px;
    min-width: 300px;
    border: 2px solid rgb(225,225,225);
    margin: 10px auto;
}
 
/*Экран для клавиатуры*/
#windowScreen {
    height: 150px;
    padding: 20px;
    font-size: 30px;
}
 
/*Обертка клавиатуры*/
#keyboard {
    margin: 0;
    padding: 10px 0 10px;
    background: linear-gradient(to top, rgb(75,75,75), rgb(225,225,225));
}
 
/*Ряды кнопок*/
#firstLine, #secondLine, #thirdLine {
    text-align: center;
}
 
/*Сами кнопки*/
#firstLine > div, #secondLine > div, #thirdLine > div {
    display: inline-block;
    font-size: 25px;
    border: 1px solid rgb(180,180,180);
    width: 30px;
    text-align: center;
    cursor: pointer;
    margin: 2px;
    border-radius: 3px;
    background-color: rgb(220,220,220);
    text-shadow: 1px 1px rgb(200,200,200);
}
 
/*Кнопки при нажатии*/
#firstLine > div:active, #secondLine > div:active, #thirdLine > div:active {
    background-color: rgb(150,150,150);
}
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
function myClass(myScreen, myKeyboard) {
 
    this.screen = document.querySelector("#" + myScreen) || 0;
    this.keyboard = document.querySelector("#" + myKeyboard) || 0;
    this.keyboardLines = [];
    
    for(var i = 0; i < keyboard.childNodes.length; i++) {
        if(keyboard.childNodes[i].nodeType == 1) 
            keyboardLines.push(keyboard.childNodes[i]);
    }
    
    for(var i = 0; i < keyboardLines.length; i++) {
        keyboardLines[i].onclick = function(event) {
            var target = event.target;
            if(target == keyboard || target == keyboardLines[i])
                return;
            screen.innerHTML += target.innerHTML;
        };      
    }
    
}
myClass("windowScreen", "keyboard");
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.05.2014, 17:22
Ответы с готовыми решениями:

Виртуальная клавиатура для сайта, virtual keyboard
Доброго времени уважаемые форумчане. Скачал виртуальную клавиатуру для сайта...

Виртуальная клавиатура
Всем доброго времени суток, мне необходимо сделать виртуальную клавиатуру,...

Виртуальная клавиатура
Здравствуйте! Народ прошу помощи в решение возникшей проблемы: Есть...

Виртуальная клавиатура
Здравствуйте! Народ прошу помощи в решение возникшей проблемы: Есть...

Экранная клавиатура
В вызываемом Activity есть один EditText Подскажите, как сделать так, чтоб при...

9
kalabuni
Нарушитель
3244 / 2567 / 616
Регистрация: 18.04.2012
Сообщений: 7,712
29.05.2014, 17:41 2
зачем такие сложности?
весь скриптовой блок замените на 3 строки:
Javascript
1
2
3
(function () {for (var btns = document.getElementById ('keyboard').getElementsByTagName ('div'),
                          j = 0, J = btns.length; j < J; j++) with (btns [j]) if (!id)
onclick = function () {document.getElementById ('windowScreen').innerHTML += this.innerHTML}}) ();

Не по теме:

для разведчиков делаете?
шифротелеграммы так писаться будут?
без пробелов, без цифр, без знаков препинания и без верхнего регистра?
и без права на ошибку? :)

1
OlegPL
5 / 5 / 0
Регистрация: 22.10.2013
Сообщений: 103
29.05.2014, 18:11  [ТС] 3
Была задача создать как бы класс... Забыл написать... И конструкцию with я как бы не понимаю..

Добавлено через 24 минуты
А если без with, то это как получиться?
0
kalabuni
Нарушитель
3244 / 2567 / 616
Регистрация: 18.04.2012
Сообщений: 7,712
29.05.2014, 18:19 4
with () - это просто
используется исключительно для сокращения количества символов в коде

т.е. вместо
object.prop1 = 12; object.prop2 = 'ok'; object.prop3 = false; object.prop4 = [1, 2, 3]; object.prop5 = {return true};

можно написать
with (object) {prop1 = 12; prop2 = 'ok'; prop3 = false; prop4 = [1, 2, 3]; prop5 = {return true}}

или даже ещё короче (без фигурных скобок):
with (object) prop1 = 12, prop2 = 'ok', prop3 = false, prop4 = [1, 2, 3], prop5 = {return true}
1
Daredevi1
309 / 301 / 78
Регистрация: 09.05.2009
Сообщений: 723
29.05.2014, 19:16 5
Лучше with не использовать
https://developer.mozilla.org/en-US/...tatements/with
1
kalabuni
Нарушитель
3244 / 2567 / 616
Регистрация: 18.04.2012
Сообщений: 7,712
29.05.2014, 19:38 6
Daredevi1, не хотите, не используйте
но вот что это "лучше", когда не используешь - не утверждайте

как говорится, вы не любите кошек лишь потому, что не умеете их готовить

обоснование "'with' makes it hard for a human reader" из ссылки, что вы дали - оно не убеждает
а пример как бы возможной ошибки там просто идиотический

ситуация с with () напоминает идиотское утверждение А. Лебедева "фреймы - зло", получившее широчайшее распространение в Рунете
-----

дефиниция with () пережила все версии стандарта ECMA-262 и включена в последнюю 5 версию без каких-либо ограничений
0
Daredevi1
309 / 301 / 78
Регистрация: 09.05.2009
Сообщений: 723
29.05.2014, 20:02 7
>>"'with' makes it hard for a human reader"
Причина не только в этом.
Производительность? Безопасность? Strict Mode?
0
kalabuni
Нарушитель
3244 / 2567 / 616
Регистрация: 18.04.2012
Сообщений: 7,712
29.05.2014, 21:00 8
Цитата Сообщение от Daredevi1 Посмотреть сообщение
Производительность? Безопасность? Strict Mode?
хе-хе...
волшебные слова
только напиши их - и вопросов не будет

производительность - можете привести в качестве примера код, где использование with () якобы настолько снижает производительность, что это становится проблемой?
и вообще, мне неизвестны исследования, где вообще доказывается, что использование with () хоть как-то влияет на производительность
а вам таковые известны?

безопасность - от чего? от себя-дурака?

Strict Mode - ну и кто из вменяемых людей этот режим использует?
смотрим самые популярные JS-коды: JQuery, Prototype, Raphael...
и -- О, УЖАС!!! -- нигде нет 'use sctrict', но везде есть многократное использование with ()
0
Daredevi1
309 / 301 / 78
Регистрация: 09.05.2009
Сообщений: 723
29.05.2014, 22:14 9
Сколько людей - столько мнений. Дальнейшая дискуссия безсмысленна
0
kalabuni
Нарушитель
3244 / 2567 / 616
Регистрация: 18.04.2012
Сообщений: 7,712
29.05.2014, 22:20 10
Цитата Сообщение от Daredevi1 Посмотреть сообщение
Сколько людей - столько мнений.
не путайте моё мнение с вашей верой

мнение - оно на фактах основано
да, мнение бывает ошибочным, когда имярек не все факты знает или принимает во внимание непроверенные факты

а вот вера - человек просто верит в то... что Бог на небе сидит... что земля плоская... что with () лучше не использовать...

я ж не говорю, что вы как-то неправильно верите
мей би, вы и правы, и я с удовольствием признаю своё мнение ошибочным и изменю его на противоположное...
но покуда доказать, что ваша вера - это на самом деле ваше мнение, вы не смогли
0
29.05.2014, 22:20
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.05.2014, 22:20

Экранная клавиатура
Вообщем, нужна виртуальная клавиатура. Самому писать лень:) -- понимаю, что...

экранная клавиатура
Я пытаюсь сделать экранную клавиатуру на билдере , но не знаю что придумать с...

экранная клавиатура
Ребята нужна помощь по созданию экранной клавиатуры. вот мой код HWND wnd;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru