div拖拽到iframe上方 导致 缩放和拖拽的不平滑和鼠标事件未放开 解决方法

思路一:用在开始进行缩放(触发了resizable的start事件)为iframe添加z-index属性,将iframe放置在最下层。

$("#draggable").resizable({
    helper: "widget_resizable_helper",
    start: function( event, ui ) {
        $("#draggable").css({position:"relative","z-index":-1});
        $("iframe").css({position:"relative","z-index":-2});
    },  stop:function(){     $("#draggable").css({position:"absolute","z-index":1000});//尘归尘,土归土,设回正常状态下的属性     $("iframe").css({"z-index":1001});  }});

这个做法在chrome和firefox有效,但在IE下无效(缩放拉到iframe里面还是会一卡一卡的,蛋疼啊)。

问题原因:细心的人估计发现了,其实设置z-index是有效的,但为什么效果像是z-index无用呢。凶手就是——IE穿透了

具体原因就是—— IE中如果两个div有层叠关系,上层的div没有内容和背景图片,当鼠标在两个div重叠部分的时候,会触发下层div的mouseover事件(IE),从而触发上层div的mouseleave事件,也就是说,上层的div被穿透了。

所以示例在IE上就出现:有些元素被遮挡了(z-index起效了),但a标签因IE穿透可以被触发事件,所以在resizing的时候就会因为iframe里面的a标签被触发而一卡一卡的。

结果:这种解决思路不大行,果断放弃。

思路一:使用helper,当helper移到指定位置再设置iframe的位置。

$widgetObj.draggable({
    helper:function(){
      return ‘<div style="width:‘+w+‘px;height:‘+h+‘px;z-index:‘+1001+‘;background:black;opacity:0.4;"></div>‘;
    },
    iframeFix: true,
    stop:function(event,ui){
        $widgetObj.css({‘top‘:ui.position.top,‘left‘:ui.position.left});
    }
}) ;

思路二:不使用iframeFix。自己设置遮挡层,将遮挡层大小设为body的长宽,位置设置为top:0;left:0,

$("#draggable").draggable({
    start: function( event, ui ) {
        $("iframe").each(function() {
        $("<div class=‘ui-draggable-iframeFix‘ style=‘background: #fff;‘></div>")
            .css({
            width: document.body.scrollWidth+"px", height: document.body.scrollHeight +"px",
            position: "absolute", opacity: "0.001", zIndex: 1000,
            top: 0,left: 0
            })
            .appendTo("body");
        });
    },
    stop:function(){
        $("div.ui-draggable-iframeFix").each(function() {
        this.parentNode.removeChild(this);
        });
    }
});

两种思路我偏向第一种用法,效果比第二种好,第二种虽然不会卡,但是有像页面被全选的情况。

原文地址:https://www.cnblogs.com/ajaxlu/p/9070890.html

时间: 2024-10-18 03:04:36

div拖拽到iframe上方 导致 缩放和拖拽的不平滑和鼠标事件未放开 解决方法的相关文章

odoo中pos模块由于删除partner导致发生(你试图访问的单据已经删除)错误的解决方法

model.js文件中 push_order: function(order) { var self = this; if(order){ this.proxy.log('push_order',order.export_as_JSON()); this.db.add_order(order.export_as_JSON()); } var pushed = new $.Deferred(); this.flush_mutex.exec(function(){ var flushed = sel

因为曾经装过Mysql导致再次装时windows无法启动MySQL服务报错1067的解决方法

找到这里 MySQL右击属性 检查这里的可执行文件的路径是否正确,因为我这里显示的是原先的文件夹所以会一直启动失败,修改一下 这里你去百度经验 windows服务修改可执行文件路径 网址https://jingyan.baidu.com/article/5d368d1ef577d43f61c05740.html 问题解决! 原文地址:https://www.cnblogs.com/Kitty-/p/10181950.html

Android 自定义ImageView支持缩放,拖拽,方便复用

今天刚发了一篇关于ImageView的缩放和拖拽的博客,然后我想了下,将他自定义下,方便我们来复用这个imageView,效果我就不多说了,http://blog.csdn.net/xiaanming/article/details/8827257就是这个效果,我只是把他抽出来自定义了下,代码还是贴上吧,我也将demo上传一下,有疑问大家指出来,大家共同学习,共同进步,呵呵 [java] view plaincopy package com.example.myimageview; import

android项目 之 记事本(14) ----- 手势缩放与拖拽图片

本文是自己学习所做笔记,欢迎转载,但请注明出处:http://blog.csdn.net/jesson20121020 上节实现了查看图片及录音的功能,其中查看图片,可以调用系统的图库来查看图片,也可以自定义Activity来查看图片,今天就在上节的基础上,实现手势缩放与拖拽图片. 想必大家都用过系统的图库,浏览图片时,可以通过手势放大或缩小图片,旋转图片,拖拽图片等功能,我们也为自已定义的查看图片的Activity增加手势缩放与拖拽图片的功能,效果如下图: 上面四幅图中,演示了通过手势(多点触

IOS 手势学习(点击,长按,轻扫,拖拽,旋转,捏合缩放)

点击        UITapGestureRecognizer 长按        UILongPressGestureRecognizer 轻扫        UISwipeGestureRecognizer 拖拽        UIPanGestureRecognizer 旋转        UIRotationGestureRecognizer 捏合缩放 UIPinchGestureRecognizer 详细代码如下: #import "ViewController.h" @i

猫猫学IOS(三十六)UI之手势事件旋转_缩放_拖拽

猫猫分享,必须精品 原创文章,欢迎转载.转载请注明:翟乃玉的博客 地址:http://blog.csdn.net/u013357243?viewmode=contents 源码:http://blog.csdn.net/u013357243/article/details/45560213 效果 完成一个图片的捏合缩放,拖拽,旋转动作. 设计思路 拖拽: 首先是最简单的拖拽 //拖拽 -(void)panTest { UIPanGestureRecognizer *pan = [[UIPanGe

(素材源码)猫猫学IOS(三十六)UI之手势事件旋转_缩放_拖拽

猫猫分享,必须精品 原创文章,欢迎转载.转载请注明:翟乃玉的博客 地址:http://blog.csdn.net/u013357243?viewmode=contents 源码:http://download.csdn.net/detail/u013357243/8671943 效果 完成一个图片的捏合缩放,拖拽,旋转动作. 代码:NYViewController.m // // NYViewController.m // 旋转_缩放_拖拽 // // Created by apple on 1

UEditor 解决拖拽视频元素改变视频尺寸时,无法保存视频尺寸问题的解决方法

UEditor虽然强大,但是bug还是蛮多的.比如插入视频元素后,拖拽视频去缩放尺寸,编辑器并没有将实际的尺寸保存下来.当你点击HTML按钮查看源代码时,width和height还是原来的值,再次点击此按钮回到正常状态,缩略图又回到原来的大小了. 翻源代码翻了蛮久,终于把这个问题解决了.问题就出在插入视频后创建视频HTML字符串和HTML字符串与可视化编辑层转化的地方. 当视频上传完成后,创建一个img用于可视化编辑,将默认width和height设置到img的width和height的属性中.

百度拖拽(鼠标事件)

<!doctype html> <html lang="en"> <head> <meta charset="UTF-8" /> <title>百度拖拽</title> <style> *{ padding: 0; margin: 0; } #wrap{ position: absolute; left:0; top:0; width: 300px; height: 400px; b