【5】JQuery-拖拽(包含图片)踩坑

在一个Iframe上面实现一个拖拽,拖拽块里面包含图片,我以为事情很简单,现在解决了。确实是简单,但是当时怎么也绕不过去!
  • js
let that = this;
$(".drag").mousedown(function(e){
        //设置移动后的默认位置
        var endx=0;
        var endy=0;
        //获取div的初始位置,要注意的是需要转整型,因为获取到值带px
        var left= parseInt($(".drag").css("left"));
        var top = parseInt($(".drag").css("top"));
        //获取鼠标按下时的坐标,区别于下面的es.pageX,es.pageY
        var downx=e.pageX;
        var downy=e.pageY;  
        $(".drag").bind('mousemove',function(es){
        //es.pageX,es.pageY:获取鼠标移动后的坐标
        var x= es.pageX-downx+left;     //计算div的最终位置
        var y=es.pageY-downy+top;
        if (x < 0) {
            x = 0;
        } else if (x > 1280 - $('.drag').outerWidth(true)) {
            x = 1280 - $('.drag').outerWidth(true);
        }
        if (y < 0) {
            y = 0;
        } else if (y > 720 - $('.drag').outerHeight(true)) {
            y = 720 - $('.drag').outerHeight(true);
        }
        that.Band_left = x
        that.Band_top = y
        that.Band_leftMobile = x
        that.Band_topMobile = y
        $('.drag').css({
            'left': x + 'px',
            'top': y + 'px'
        });
      });
    })
    $(".drag").mouseup(function(){
        //鼠标弹起时给div取消事件
        $(".drag").unbind("mousemove")
    })

 

  • html
<div id='Band' class="drag Band" :style="{left:Band_left,top:Band_top}" >
<!-- ondragstart="return false;" -->    
    <img :src="Band_background" alt="" id="Bandimg" ondragstart="return false;">
    <div class="BandText" v-show='UIStyle!=0'>{{Answer}}</div>
</div>   

 

一开始拖动不了的,或者就是第一次拖动不了,需要触发一次“mouseup”之后才作用。经过排查发现是<img>在作怪,img的鼠标拖动属性为(draggable = true),或者 οndragstart=“return true”
只需要把 img属性draggable改为:draggable = true 或者 设置οndragstart=“return true”;完美解决!

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值