javascript – 拖放,防止尴尬突出显示?

前端之家收集整理的这篇文章主要介绍了javascript – 拖放,防止尴尬突出显示?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在构建一个使用查询的拖放方法
-onmousedown
导致-onmousemove(拖动)然后-onmouseup(unbinds onmousemove)

问题是,浏览器默认开始突出显示onmousemove,它会遍布整个页面并取消事件,使其无法使用.任何想法如何防止突出显示,因为preventDefault似乎没有工作.这是我的代码(是的,非常草率,对不起!)

$(".middleRow").mousedown(function(){
 calculateSelection();

  $('body').append('<div class="messageDrag" style="display:block">'+numSelected+'<div        style="font-size: 18px">messages</div></div>');


 $(document).mouseup(function(){

        $('.messageDrag').fadeOut(500);

        setTimeout(function(){
        $('.messageDrag').remove();
        },500);


        $(document).unbind();


    })


$(document).mousemove(function(e){


    e.preventDefault();


    var x = e.pageX;
    var y = e.pageY;
    $(".messageDrag").css("left",x-49);
    $(".messageDrag").css("top",y-49);


});

 });

解决方法

您可以使用css禁用突出显示
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
-o-user-select: none;
user-select: none;

另一种方法是清除drop事件的选择,如下所示:

function clearSelection() {
    var sel;
    if(document.selection && document.selection.empty){
        document.selection.empty() ;
    } else if(window.getSelection) {
        sel = window.getSelection();
        if(sel && sel.removeAllRanges)
        sel.collapse();
    }
}

所以你会在drop事件上调用clearSelection()(拖动完成后)

原文链接:https://www.f2er.com/js/158807.html

猜你在找的JavaScript相关文章