Перетаскивание Javascript выделяет текст и элементы вокруг области перетаскивания. - PullRequest
0 голосов
/ 26 июня 2010

Я использую следующий код, чтобы позволить пользователям изменять размер элемента DIV по вертикали, но когда вы щелкаете и перетаскиваете маркер, текст и другие элементы на странице выбираются так, как будто пользователь просто щелкает и выделяет все на стр. Есть ли способ предотвратить это, поскольку это выглядит очень плохо? Это используется с Prototype.js.

function DragCorner(container, handle) {
    var container = $(container);
    var handle = $(handle);

    // Add property to container to store position variables
    container.moveposition = {y:0};

    function moveListener(event) {
        // Calculate how far the mouse moved
        var moved = { y:(container.moveposition.y - event.pointerY()) };
        // Reset container's x/y utility property 
        container.moveposition = {y:event.pointerY()};
        // Update container's size
        var size = container.getDimensions();
        container.setStyle({height: size.height + moved.y + 'px'});
    }

    // Listen for 'mouse down' on handle to start the move listener
    handle.observe('mousedown', function(event) {
        // Set starting x/y 
        container.moveposition = {y:event.pointerY()};
        // Start listening for mouse move on body 
        Event.observe(document.body,'mousemove',moveListener);
    });

    // Listen for 'mouse up' to cancel 'move' listener 
    Event.observe(document.body,'mouseup', function(event) {
        Event.stopObserving(document.body,'mousemove',moveListener);
        console.log('stop listening');
    });
}

Ответы [ 2 ]

0 голосов
/ 26 июня 2010

Добавление следующего в DIV исправило это:

onselectstart="return false;"
0 голосов
/ 26 июня 2010

После ваших предыдущих вопросов и ответов добавьте небольшой элемент handle и сделайте его единственным элементом, который можно выбрать и перетащить. Также я полагаю, что вы сделали позицию div как relative, а позицию обработчика как absolute. Право ??

...