Answers for "Resizable div JavaScript"

CSS
2

html resizable div

div {
   resize: both;
   overflow: auto;
}
Posted by: Guest on June-08-2021
0

resizable div

function makeResizableDiv(div) {

    if (view == 1) return "";
    const element = document.querySelector(div);
    const resizers = document.querySelectorAll(div + ' .resizer')
    const minimum_size = 20;
    let original_width = 0;
    let original_height = 0;
    let original_x = 0;
    let original_y = 0;
    let original_mouse_x = 0;
    let original_mouse_y = 0;
    for (let i = 0; i < resizers.length; i++) {
        const currentResizer = resizers[i];
        currentResizer.addEventListener('mousedown', function (e) {
            e.preventDefault()
            original_width = parseFloat(getComputedStyle(element, null).getPropertyValue('width').replace('px', ''));

            original_height = parseFloat(getComputedStyle(element, null).getPropertyValue('height').replace('px', ''));
            original_x = element.style.left;
            original_y = element.style.top;

            original_mouse_x = e.pageX;
            original_mouse_y = e.pageY;
            window.addEventListener('mousemove', resize)
            window.addEventListener('mouseup', stopResize)
        })

        function resize(e) {
            if (currentResizer.classList.contains('bottom-right')) {
                const width = original_width + (e.pageX - original_mouse_x);
                const height = original_height + (e.pageY - original_mouse_y)
                if (width > minimum_size) {
                    element.style.width = width + 'px'
                }
                if (height > minimum_size) {
                    element.style.height = height + 'px'
                }
            } else if (currentResizer.classList.contains('bottom-left')) {
                const height = original_height + (e.pageY - original_mouse_y)
                const width = original_width - (e.pageX - original_mouse_x)
                if (height > minimum_size) {
                    element.style.height = height + 'px'
                }
                if (width > minimum_size) {
                    element.style.width = width + 'px'
                    element.style.left = original_x + (e.pageX - original_mouse_x) + 'px'
                }
            } else if (currentResizer.classList.contains('top-right')) {
                const width = original_width + (e.pageX - original_mouse_x)
                const height = original_height - (e.pageY - original_mouse_y)
                if (width > minimum_size) {
                    element.style.width = width + 'px'
                }
                if (height > minimum_size) {
                    element.style.height = height + 'px'
                    element.style.top = original_y + (e.pageY - original_mouse_y) + 'px'
                }
            } else {
                const width = original_width - (e.pageX - original_mouse_x)
                const height = original_height - (e.pageY - original_mouse_y)
                if (width > minimum_size) {
                    element.style.width = width + 'px'
                    element.style.left = original_x + (e.pageX - original_mouse_x) + 'px'
                }
                if (height > minimum_size) {
                    element.style.height = height + 'px'
                    element.style.top = original_y + (e.pageY - original_mouse_y) + 'px'
                }
            }
        }

        function stopResize() {
            window.removeEventListener('mousemove', resize)
        }
    }
}
Posted by: Guest on November-24-2021
0

js resize div with mouse

bottom-right:  new_width = element_original_width + (mouseX - original_mouseX)  new_height = element_original_height + (mouseY - original_mouseY)bottom-left:  new_width = element_original_width - (mouseX - original_mouseX)  new_height = element_original_height + (mouseY - original_mouseY)  new_x = element_original_x - (mouseX - original_mouseX)top-right:  new_width = element_original_width + (mouseX - original_mouseX)  new_height = element_original_height - (mouseY - original_mouseY)  new_y = element_original_y + (mouseY - original_mouseY)top-left:  new_width = element_original_width - (mouseX - original_mouseX)  new_height = element_original_height - (mouseY - original_mouseY)  new_x = element_original_x + (mouseX - original_mouseX)  new_y = element_original_y + (mouseY - original_mouseY)
Posted by: Guest on January-07-2021

Browse Popular Code Answers by Language