공부하는 Nar
const image = document.getElementById('container-img');
const container = document.getElementById('img-container');
let moveInterval;
let keysPressed = {};

//이미지 스케일변경
var scaleFactor = 3;
var currentWidth = image.clientWidth;
var newWidth = currentWidth * scaleFactor;
image.style.width = newWidth + 'px';

//실행함수
function moveImage() {
    let xPos = image.offsetLeft;
    let yPos = image.offsetTop;
    let imgwidth = image.offsetLeft;
    let imgheight = image.offsetTop;

    //else if로 구분하면 대각선 이동이 안됨
    if (keysPressed.ArrowUp) {
        yPos += 1;
    }
    if (keysPressed.ArrowDown) {
        if (imgheight <= (image.clientHeight - container.clientHeight) * -1) {
            return;
        }
        yPos -= 1;
    }
    if (keysPressed.ArrowLeft) {
        xPos += 1;
    }
    if (keysPressed.ArrowRight) {
        if (imgwidth <= (image.clientWidth - container.clientWidth) * -1) {
            return;
        }
        xPos -= 1;
    }

    //제어
    if (imgwidth + xPos > 0 || imgheight + yPos > 0) {
        //log
        //console.log(xPos);
        return;
    }
    
    image.style.left = xPos + 'px';
    image.style.top = yPos + 'px';
    
    //log
    //console.log(imgwidth);
    //console.log(image.style.left + image.style.top);
}

document.addEventListener('keydown', function (event) {
    keysPressed[event.key] = true; //키가 눌렸을 때
    clearInterval(moveInterval);

    moveInterval = setInterval(() => {
        moveImage();
    },5);
});

document.addEventListener('keyup', function (event) {
    keysPressed[event.key] = false; //키가 떼어졌을 때
    if (
        !keysPressed.ArrowUp &&
        !keysPressed.ArrowDown &&
        !keysPressed.ArrowLeft &&
        !keysPressed.ArrowRight
    ) {
        clearInterval(moveInterval);
    }
});
#img-container {
    position: relative;
    border: 1px solid black;
    width: 1020px;
    height: 580px;
    overflow: hidden;
    /*pointer-events: none;*/
    pointer-events: visiblePainted;
}
#container-img {
    position: absolute;
    top: 0;
    left: 0;
    cursor: move;
}
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Image Drag Example</title>
    <link rel="stylesheet" href="css/styles.css" />
</head>
      <body>
            <div id="img-container">
                  <img id="container-img" src="img/test3d.png" />
            </div>
            <script src="js/script.js"></script>
      </body>
</html>
profile

공부하는 Nar

@NarS2

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!