我有一个项目列表,我希望能够选择一个项目(通过单击)并使用箭头键仅移动该特定项目。我完成了移动部分,但是当我选择第二个元素时,它也会移动先前选择的元素。或者,如果我双击同一个元素,它会将其捕捉回原来的位置。
我猜可能是因为位置是相对的?尽管我尝试将其更改为 absolute 并将 parent div 更改为 relative ,但仍然没有用。我也尝试过使用边距,但出现了同样的问题。
move();
function move(){
let list_items = document.querySelectorAll('.list-item');
for (let i = 0; i < list_items.length; i ++){
let list=list_items[i];
list.addEventListener('click',function(){
console.log(list);
var objImage= null;
objImage=list;
objImage.style.position='relative';
objImage.style.left='0px';
objImage.style.top='0px';
function getKeyAndMove(e){
var key_code=e.which||e.keyCode;
switch(key_code){
case 37: //left arrow key
moveLeft();
break;
case 38: //Up arrow key
moveUp();
break;
case 39: //right arrow key
moveRight();
break;
case 40: //down arrow key
moveDown();
break;
default:
console.log(e);
}
}
function moveLeft(){
objImage.style.left=parseInt(objImage.style.left)-5 +'px';
// objImage.style.position='static';
}
function moveUp(){
objImage.style.top=parseInt(objImage.style.top)-5 +'px';
// objImage.style.position='static';
}
});
}
}
编辑通过@rexfordkelly 提出的解决方案使其工作。这是他分享的游乐场链接jsfiddle.net/r7ao2n5f/1
慕尼黑5688855
相关分类