공부하는 Nar
const image = document.getElementById('container-img');
const container = document.getElementById('img-container');
let moving = false;
let control = true;
let clickpos = 0;
let direction = 0; // -1: left, 1: right
//let direction_Y = 0; // -1: bottom, 1: top
let container_width = container.clientWidth
let container_height = container.clientHeight

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

//log
console.log("img size = " + image.clientWidth + "px, " + image.clientHeight + "px");

image.addEventListener('mousedown', (e) => {
    moving = true;
    direction = e.clientX < container.getBoundingClientRect().left + (container.clientWidth / 2) ? -1 : 1;
    //direction_Y = e.clientY < container.getBoundingClientRect().TOP + (container.clientHeight / 2) ? 1 : -1;

    //log
    //console.log('num_X = ' + direction_X + 'num_Y = ' + direction_Y);
    console.log("x=" + e.clientX + "y=" + e.clientY);
});

document.addEventListener('mouseup', () => {
    moving = false;
});

function moveImage() {
    if (moving) {
        //변수
        let imgwidth = (image.offsetLeft + direction * 5);
        let imgheight = (image.offsetTop + direction * 5);

        //제어
        if (imgwidth > 0 || imgheight > 0 || imgwidth < (image.clientWidth - container_width) * -1 || imgheight < (image.clientHeight - container_height) * -1) {
            control = false;
        }
        else {
            control = true;
        }

        //실행
        if (control) {
            image.style.left = imgwidth + 'px';
            image.style.top = imgheight + 'px';
        }

        //log
        console.log(control + image.style.left + image.style.top);
    }
    requestAnimationFrame(moveImage);
}
requestAnimationFrame(moveImage);
#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

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