Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 24.02.2015, 10:36
Профессор
Отправить личное сообщение для Bond Посмотреть профиль Найти все сообщения от Bond
 
Регистрация: 16.06.2013
Сообщений: 172

ksa,
Что плечистый так это точно - но тем не менее в спортзал ходить надо ) для поддержки тонуса дельт.
Посмотрел 1С код - такое ощущение что взяли какой нить код другого языка и перевели в гугл переводчике.
Подведу итоги - жука я не оживил толком - зато неплохую мотивацию получил - как то неудобно стало за свой говнокод. Пойду дальше учить JS. КТо бы мне еще про объекты вкратце рассказал - а то сколько читаю и смотрю о них - никто не говорит зачем они нужны и где применять на практике.
Ответить с цитированием
  #12 (permalink)  
Старый 24.02.2015, 10:49
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,228

Сообщение от Bond
КТо бы мне еще про объекты вкратце рассказал
Если "вкратце" рассказать то никто толком и не поймет...

В JS есть несколько "особенных" субстанций, как то
- замыкание
- объекты

Это достаточно фундаментальные особенности языка и те, кто познал это давно находятся в нирване...
Т.ч. тебе есть еще чего познавать и познавать.
Ответить с цитированием
  #13 (permalink)  
Старый 24.02.2015, 10:53
Аватар для BETEPAH
Профессор
Отправить личное сообщение для BETEPAH Посмотреть профиль Найти все сообщения от BETEPAH
 
Регистрация: 23.06.2011
Сообщений: 1,165

Сообщение от Bond
чего только стоит document.getElementsByTagName("") или document.getElementById("")
если загвоздка только в этом, то можно написать функцию
function $$(selector) {
  return document.querySelectorAll(selector);
}

и пальцы будут постепенно атрофироваться
Ответить с цитированием
  #14 (permalink)  
Старый 25.02.2015, 00:20
Профессор
Отправить личное сообщение для Bond Посмотреть профиль Найти все сообщения от Bond
 
Регистрация: 16.06.2013
Сообщений: 172

danik.js,
Извините, забыл самое главное спросить:
Почему вариант с одной функцией и 4 условиями менее предпочтителен (!или вообще недопустим?) чем вариант с объектами и методами? В чем принципиальная разница - кроме конечно солидности кода? Может для возможности расширения функций жука? Вы добавите метод, я добавлю функцию в итоге будет работать идентично.
Или проще значит лучше это не про JS сказано?
P.S Не сомневаюсь в Вашем коде - просто хочу познать истину JS
Ответить с цитированием
  #15 (permalink)  
Старый 25.02.2015, 03:37
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

Нажатие нескольких клавиш управление стрелками
Bond,
Вариант для отслеживания нажатий нескольких клавиш (вверх + лево) и т.д.
кликнуть на поле - нажать стрелочки на клавиатуре
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  body,html{background:#FC9;height:100%}
  div{height:100px;width:100px;background:#006400;position:relative;left:200px;top:200px}
  </style>
  <script>
window.onload = function() {
    function move() {
        for (var a in c)
            if (c[a]) {
                var d = b[a][0];
                b[d] += b[a][1];
                div.style[d] = b[d] + "px"
            }
        window.requestAnimationFrame(move)
    }
    var b = {
            39: ["left", 3],
            37: ["left", -3],
            40: ["top", 3],
            38: ["top", -3],
            left: 200,
            top: 200
        },
        c = {};
    move();
    var div = document.getElementById("show");
    document.body.onkeydown = function(a) {
        a = a || window.event;
        a = a.keyCode;
        a in b && (c[a] = true);
    };
    document.body.onkeyup = function(a) {
        a = a || window.event;
        a = a.keyCode;
        a in b && (c[a] = false);
    }
};
</script>
</head>

<body>
<div id="show" ></div>
</body>
</html>

Последний раз редактировалось рони, 25.02.2015 в 03:42.
Ответить с цитированием
  #16 (permalink)  
Старый 25.02.2015, 05:49
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Bond, как хочешь так и пиши. На мой взгляд жук - это объект. У него есть набор свойств и методов. Вот смотришь на код - и сразу видишь все это. А у тя какая-то неясная функция removeCl которая умеет вроде как класс удалять, судя по названию. Но судя по коду она еще чета делает, почему-то только именно с жуком, да еще не только удаляет класс, но и добавляет. Вобще фиг знает че там происходит - ведь не ясно что значит a f и c. Оуа дыауца Наыоващ ацуацуа. Вот ты понял че-нибудь? А все потому что я использовал рэндомные буквы, а не смысловые слова. Так же и ты

Короче, в твоем подходе свойства и функции раскиданы по коду. Верней у тебя даже свойства нет - оно постоянно вычисляется, обращаясь к DOM'у документа. У меня все в пучек собрано. Вот и вся разница.
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #17 (permalink)  
Старый 25.02.2015, 05:51
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Когда ты заглянешь в словарик и узнаешь, что жук - это bug, а не juk и захочешь поменять css-класс, то придется править во всех участках кода. Но это уже не про ооп.

рони, прекрасный код! С меня причитается
__________________
В личку только с интересными предложениями

Последний раз редактировалось danik.js, 25.02.2015 в 05:53.
Ответить с цитированием
  #18 (permalink)  
Старый 25.02.2015, 05:52
Профессор
Отправить личное сообщение для Bond Посмотреть профиль Найти все сообщения от Bond
 
Регистрация: 16.06.2013
Сообщений: 172

рони,
Спасибо, это вообще крутой вариант для движения, да и для опыта тоже - буду разбираться что, как и почему.
Еще фишка в том что по задаче это как бы жук, и у него есть голова и тело продолговатое - поэтому он должен поворачиваться в сторону движения собственно для этого я добавлял классы с transform: rotate() ну и transition добавлял для плавности- но они не совсем адекватно работали. К примеру если голова повернута вниз, а нужно было повернуть влево - то он разворачивался через левое плечо на 270 градусов
если ли в JS инструмент что бы вертеть блок вокруг своей оси? - я нагуглил matrix() - но как все это считать не разобрался
Ответить с цитированием
  #19 (permalink)  
Старый 25.02.2015, 06:04
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Bond, bottom это 180deg, а left это -90, вот он и анимирует с 180 до -90, проворачивая против часовой стрелки.

Как вариант: перед поворотом налево отключай транзишн, меняй 180 на -180, и включай транзишн обратно. Блин, запутанно получается. Слева вниз - та же история. Мож кто че-нибудь проще придумает?
И вместо классов, возможно проще будет менять напрямую transform
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #20 (permalink)  
Старый 25.02.2015, 06:05
Профессор
Отправить личное сообщение для Bond Посмотреть профиль Найти все сообщения от Bond
 
Регистрация: 16.06.2013
Сообщений: 172

danik.js,
Поначалу у меня было задумано что эта функция будет только удалять классы, все остальное будет делаться в swich, но потом решил почему бы не запихнуть все в функцию - все равно все действия одни и теже за вычетом некоторых. Да действительно код тяжелый для восприятия - но думаю это только потому что я рандомно все поназывал - как бы для себя делал - не парился по этому вопросу. Ну и конечно же две строки постоянного обращения к DOM для вычесления положения можно убрать - я просто забыл как плюсовать или минусовать по пикселям к существующему, вроде делал когда то на jQuery. А переименовать во множестве местах не проблема в саблайме с функцией множественного выделения, да и в других редакторах вроде есть поиск и замена. Хотя согласен, отмазка про множественное выделение тупая и что в одном месте лучше, но с таким же успехом я мог бы переменную создать и использовать ее. Я не отрицаю мега удобность объектов - но не могу никак в них въехать - хотя на примере жука начинаю понемногу понимать ) Спасибо вам за помощь и участие в становлении будущего гуру по JS )))
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
сценарий, который сможет словами написать заданное число Елена1991 Общие вопросы Javascript 10 02.12.2015 10:57
Можно ли получить сам контент, который подгрузился в src andromed Events/DOM/Window 3 06.07.2014 19:30
Как вставить в событие, указатель на объект, который получает это событие? Pacan228 Общие вопросы Javascript 2 04.07.2012 19:53
Как узнать html-код который выводит js? leny Элементы интерфейса 13 18.12.2011 22:06
Выбрать элемент, на который нажали vanderv jQuery 1 11.01.2011 16:16