• 关于处理禁止图片默认拖拽行为动作


    今天在写一个js拖拽的时候,遇到一个小问题。。就是浏览器默认允许拖拽图片。

    这样子我鼠标移动的时候,没有触发onmousemove事件绑定的函数。操作起来很别扭。。后来自己整理了一下。。一共有三个办法可以解决这个问题。。具体哪个办法更优,现在还不清楚。以后有能力判断优劣的时候再判断吧

    1、document.images[i].ondragstart=function (){return false;};

    直接循环页面所有的img标签。。然后把它的ondragstart事件return false;这样子就禁止了浏览器图片的默认拖拽动作了。感觉这里要遍历所有IMG标签。。个人不喜欢用这种办法。。觉得性能不是最佳吧。主观认为而已。。

    2、event.preventDefault();

    在handler.onmousedown = function(event){}函数里面加上event.preventDefault();

    该方法将通知 Web 浏览器不要执行与事件关联的默认动作(如果存在这样的动作)。例如,如果 type 属性是 "submit",在事件传播的任意阶段可以调用任意的事件句柄,通过调用该方法,可以阻止提交表单。注意,如果 Event 对象的 cancelable 属性是 fasle,那么就没有默认动作,或者不能阻止默认动作。无论哪种情况,调用该方法都没有作用。

    3、this.setCapture && this.setCapture();

    在handler.onmousedown = function(event){}函数里面加上this.setCapture && this.setCapture();

    该setCapture函数在属于当前线程的指定窗口里设置鼠标捕获。一旦窗口捕获了鼠标,所有鼠标输入都针对该窗口,无论光标是否在窗口的边界内。同一时刻只能有一个窗口捕获鼠标。个人喜欢这种办法。。感觉比较靠谱。

    另外。。如果用第三个办法。。在onmousedown的时候设置了鼠标捕获,还要在onmouseup的时候加上一句释放鼠标捕获:handle.releaseCapture && handle.releaseCapture();要不然在IE6下面会出错#尽管在其他现代浏览器没问题#

  • 相关阅读:
    17、生鲜电商平台-异常模块的设计与架构
    16、生鲜电商平台-监控模块的设计与架构
    15、生鲜电商平台-售后模块的设计与架构
    14、生鲜电商平台-搜索模块的设计与架构
    13、生鲜电商平台-订单抽成模块的设计与架构
    12、生鲜电商平台-提现模块的设计与架构
    递归和回溯_leetcode77-经典的组合
    递归和回溯_leetcode52
    递归和回溯_leetcode51
    递归和回溯_leetcode46-经典的排列去重
  • 原文地址:https://www.cnblogs.com/kevin-ye/p/3272253.html
Copyright © 2020-2023  润新知