Skip to content

Instantly share code, notes, and snippets.

@ibare
Last active August 9, 2016 00:01
Show Gist options
  • Save ibare/6c70c5445c83ba18745cced219051275 to your computer and use it in GitHub Desktop.
Save ibare/6c70c5445c83ba18745cced219051275 to your computer and use it in GitHub Desktop.
Move Box Tutorial
var box = $('#box');
function forwardPos(p) {
return (p+1)+'px';
}
function backwardPos(p) {
return (p-1)+'px';
}
$(document).on('keydown', function(event) {
switch(event.key) {
case 'ArrowRight':
var pos = +box.css('left').replace('px','');
box.css('left',forwardPos(pos));
break;
case 'ArrowLeft':
var pos = +box.css('left').replace('px','');
box.css('left',backwardPos(pos));
break;
case 'ArrowUp':
var pos = +box.css('top').replace('px','');
box.css('top',backwardPos(pos));
break;
case 'ArrowDown':
var pos = +box.css('top').replace('px','');
box.css('top',forwardPos(pos));
break;
}
});
var box = $('#box');
function forwardPos(p) {
return (p+1)+'px';
}
function backwardPos(p) {
return (p-1)+'px';
}
function changePosition(posAttr, mover) {
box.css(posAttr, mover(+box.css(posAttr).replace('px','')));
}
$(document).on('keydown', function(event) {
switch(event.key) {
case 'ArrowRight':
changePosition('left', forwardPos);
break;
case 'ArrowLeft':
changePosition('left', backwardPos);
break;
case 'ArrowUp':
changePosition('top', backwardPos);
break;
case 'ArrowDown':
changePosition('top', forwardPos);
break;
}
});
var config = {
ArrowRight: {
attr: 'left',
adjustment: 1
},
ArrowLeft: {
attr: 'left',
adjustment: -1
},
ArrowUp: {
attr: 'top',
adjustment: -1
},
ArrowDown: {
attr: 'top',
adjustment: 1
}
};
function pixelAdd(pixel, num) {
var numberPixel = Number(pixel.replace('px',''));
return (numberPixel+num)+'px';
}
function mover(box) {
box.css(this.attr, pixelAdd(box.css(this.attr), this.adjustment));
}
$(document).on('keydown', function(event) {
mover.call(config[event.key], $('#box'));
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment