Javascript.RU

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

Жук который ползает
Всем привет.
В процессе обучения пришла в голову такая мысля - нарисовать на html жука, а на js и jQuery сделать так что бы им можно было управлять с клавы, вот что получилось
Анимацию лап и т.д пропускаю - только основное выложу
Вот само поле с жуком
<div class="marg">
		<div class="juk"></div>
	</div>

а вот js код
function removeCl(a, f, c){
		if($('.juk').attr("class") == "juk "+a){
			if(a == 'top' || a == "left"){
				var top = Number($(".juk").css(f).replace("px", "")) - 5;
			}else{
				var top = Number($(".juk").css(f).replace("px", "")) + 5;
			}
			$(".juk").css(f, top);
			return;
		}else{
			$(".juk").addClass(a);
			$(".juk").removeClass(c);
			return;
		}
	}
	document.onkeypress = function(e) {
		switch (e.keyCode) {
		    case 38: //Top
		    	removeCl("top", "top", "bottom right left");
		    	break;
		    case 40: //Bottom
		    	removeCl("bottom", "top", "top right left");
		    	break;
		    case 37: //Left
		    	removeCl("left", "left", "top right bottom");
		    	break;
		    case 39: //Right
		    	removeCl("right", "left", "top left bottom");
		    	break;
		}
	}

CSS классы я добавляю и удаляю что бы сделать жуку плавный поворот в нужную сторону - к примеру класс left - transform: rotate(-90deg); - это его css код, соответственно класс right - (90deg), top 0deg и bottom 180deg

Проблем еще много - но пока одна из них такая - при нажатии клавишы к примеру Up жук двигается вверх - но стоит мне нажать какую нить другую клавишу хотя бы один раз - Up перестает работать не смотря на то что я ее не отпускал.
И хотелось бы услышать - адекватное ли подобное решение для такой задачи - или все таки можно проще, логичнее и короче код сделать. Буду признателен
P.S Книжку пойти почитать не посылать, так как я в процессе
Ответить с цитированием
  #2 (permalink)  
Старый 24.02.2015, 07:55
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от Bond
jQuery
Выкинь эту хрень. Зачем она тут тебе? Чтобы классы добавлять? el.classList.add('class')
Чтобы стили назначать? el.style.top = 50 + 'px'.

function Bug() {
    this.step = 5;
    this.baseClass = 'juk';
    this.element = /* ... */;
    this.bindKeys();
}

Bug.prototype.moveTo = function(direction) {
    switch (direction) {
        case 'top':
            this.top -= this.step;
            break;
         /* ... */
    }
    this.element.className = this.baseClass + direction;
    this.element.style.top = this.top + 'px';
    this.element.style.left = this.left + 'px';
};

Bug.prototype.bindKeys = function(e) {
    var keyNav = {38: 'top', 39: 'right'};
    var bug = this;
    document.addEventListener('keypress', function(e) {
        if (e.keyCode in keyNav)
            bug.moveTo(keyNav[e.keyCode]);
    }, false);
};


var bug = new Bug();

bug.moveTo('top');
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #3 (permalink)  
Старый 24.02.2015, 08:22
Профессор
Отправить личное сообщение для krasovsky Посмотреть профиль Найти все сообщения от krasovsky
 
Регистрация: 21.12.2012
Сообщений: 869

Канвас тебе в помощь
Ответить с цитированием
  #4 (permalink)  
Старый 24.02.2015, 08:45
Профессор
Отправить личное сообщение для Bond Посмотреть профиль Найти все сообщения от Bond
 
Регистрация: 16.06.2013
Сообщений: 172

danik.js,
jQuery прилепил потому что в js мои знания ограничиваются if, for и немного функциями.
Вот сейчас сижу и думаю как же ваш пример прилепить что бы проверить
Ответить с цитированием
  #5 (permalink)  
Старый 24.02.2015, 09:20
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,214

Сообщение от Bond
jQuery прилепил потому что в js мои знания ограничиваются if, for и немного функциями.
Тем более быстро отлепляй и продалжай изучать JS...
Ответить с цитированием
  #6 (permalink)  
Старый 24.02.2015, 09:32
Профессор
Отправить личное сообщение для Bond Посмотреть профиль Найти все сообщения от Bond
 
Регистрация: 16.06.2013
Сообщений: 172

ksa,
А вот такой вопрос немного не по теме - зачем вообще нужен jQuery и почему такой популярен? Кто его вообще использует? Верно ли утверждение что jQuery используют дилетанты? Ну или верстальщики далекие от js как я например
Ответить с цитированием
  #7 (permalink)  
Старый 24.02.2015, 09:49
Профессор
Отправить личное сообщение для krasovsky Посмотреть профиль Найти все сообщения от krasovsky
 
Регистрация: 21.12.2012
Сообщений: 869

Сообщение от Bond
А вот такой вопрос немного не по теме - зачем вообще нужен jQuery
Затем чтоб упростить работу с событиями, поиск элементов и забыть(в какой том мере) про проблемы кроссбраузерности.
Сообщение от Bond
Кто его вообще использует?
Обычно люди, но я не могу ручаться.
Сообщение от Bond
Верно ли утверждение что jQuery используют дилетанты?
Верно утверждение что те кто не используют jq принципиально нигде, никогда, ни под каким предлогом - мастурбаторы.
Сообщение от Bond
Ну или верстальщики далекие от js как я например
Когда идет борьба за производительность например, нет смысла использовать jq.
Ответить с цитированием
  #8 (permalink)  
Старый 24.02.2015, 09:53
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,214

Сообщение от Bond
зачем вообще нужен jQuery
Для использования... Но тому, кто давно ведет разработку на JS, он не нужен. У этого человека уже есть нужный ему инструментарий... Если чего не хватает - он это напишет.

Сообщение от Bond
почему такой популярен?
Потому как, таких как ты больше чем тех, кто "давно ведет разработку на JS", а еще есть масса "эффективных менеджеров", которые его пишут в требованиях к соискателям...

Сообщение от Bond
Кто его вообще использует?
Любой, кто пожелает. Т.к. распространяется бесплатно...

Сообщение от Bond
Верно ли утверждение что jQuery используют дилетанты?
Сам факт использования не говорит о качестве специалиста. Но то утверждение ложно.

Сообщение от Bond
или верстальщики далекие от js как я например
Лично ты его используешь не к месту... Про это тебе и написали.
Ответить с цитированием
  #9 (permalink)  
Старый 24.02.2015, 10:07
Профессор
Отправить личное сообщение для Bond Посмотреть профиль Найти все сообщения от Bond
 
Регистрация: 16.06.2013
Сообщений: 172

ksa,
Ну если библиотека уже подключена на странице то почему бы не использовать. Я думал как бы советуют вообще стараться не использовать. Вот и подумал к чему бы это.
А вообще как посмотрю на инструментарий js для выбора элементов так плакать хочется - чего только стоит document.getElementsByTagName("") или document.getElementById("") - что курили когда придумали такие опусы не понимаю. Еще бы так написали document.взятьДочернийЭлемент олькоНеТотЧтоКлассАтотЧт IdСмотриНеПерепутайКоньяк Водкой('top')
Думаю только автокомплит спасает програмеров JS от производственных травм в виде переломов фаланги пальцев.
Хотя не мне судить, я только 150 страниц по JS прочитал
Ответить с цитированием
  #10 (permalink)  
Старый 24.02.2015, 10:17
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,214

Сообщение от Bond
если библиотека уже подключена на странице то почему бы не использовать
Тут главное не перестараться.

Сообщение от Bond
Я думал как бы советуют вообще стараться не использовать.
Если есть нативный метод или просто свойство - используй их. Не стоит городить огород...

Сообщение от Bond
что курили когда придумали такие опусы не понимаю
Это ты еще СИшные программки не читал...

Или посмотри как отжигают 1Сники...

Сообщение от Bond
Думаю только автокомплит спасает програмеров 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