Mit der linken und rechten Pfeiltaste sollte ich in der Lage sein, einen Avatar nach links und rechts zu bewegen. Es läuft jedoch nicht reibungslos, weil es sich wie folgt bewegt: go-stop-go-stop, wenn Sie die Pfeiltaste gedrückt halten.Avatar bewegt sich nicht reibungslos
sehen Geige: https://jsfiddle.net/zk45xgnd/2/
html:
<div id='avtr'></div>
css:
#avtr {
position:absolute;
height:50px;
width:50px;
background-color:#f00;
}
jquery:
var allowedToWalk = false, allowedToWalkTime = true;
var percentage = 1;
var maxWidth = 1000;
$(window).keydown(function(e) {
if(e.which == 39) {
//move to right
allowedToWalk = true;
avatarMoveRight();
}
if(e.which == 37) {
//move to left
allowedToWalk = true;
avatarMoveLeft();
}
}).keyup(function() {
allowedToWalk = false;
});
function avatarMoveRight() {
if(allowedToWalk != false && allowedToWalkTime != false) {
var pos = $("#avtr").css('left');
pos = pos.replace('px', '');
pos = pos - 0;
if((pos - 40) < (percentage * maxWidth)) {
allowedToWalkTime = false;
$("#avtr").animate({left: '+=40'}, 150);
setTimeout(function() {allowedToWalkTime = true;},150);
}
}
}
function avatarMoveLeft() {
if(allowedToWalk != false && allowedToWalkTime != false) {
var pos = $("#avtr").css('left');
pos = pos.replace('px', '');
pos = pos - 0;
if((pos - 4) > 0) {
allowedToWalkTime = false;
$("#avtr").animate({left: '-=40'}, 150);
setTimeout(function() {allowedToWalkTime = true;},150);
}
}
}
Wie man es machen glatt ru Wenn Sie die Pfeiltaste gedrückt halten?
SOLUTION von @ Adam A https://jsfiddle.net/zk45xgnd/3/
Sie springen 40 Pixel gleichzeitig, Sie könnten versuchen, diese auf eine kleinere Zahl zu reduzieren. – Adam