我对jQuery Draggable IFrameFix有一点问题。 我有一个容器(如下所示),里面有一个iframe。我在可拖动设置中打开了iframeFix,但它没有改变任何东西。有同样问题的人或任何可能知道如何解决这个问题的人?
<div class="container">
<div class="toolbar">
<div class="opt1"></div>
<div class="opt2"></div>
</div>
<iframe src="url" class="frame" frameborder="0" scrolling="no"><p>No support for iframes</p></iframe>
</div>
这是我的javascript代码。
$(".container").draggable({
snap: ".snapper_col",
containment: "#element_container",
handle: '.opt1',
snapTolerance: 20,
iframeFix: true,
cursor: "crosshair",
start: function(ev,ui){
},
drag: function(ev,ui){
},
stop: function(ev, ui){
}
});
谢谢!
答案 0 :(得分:10)
解决了它。
我在iframe上创建了自己的叠加层,当我开始拖动时,我显示它并在停止时隐藏它。这样iframe就不会拖延拖拽。
答案 1 :(得分:2)
是的,你可以在iframe上加一个div,我使用这个函数:
div.draggable{
cancel: '.noDraggable',
scroll: false,
appendTo: 'body',
zIndex: 9999,
cursor: "move",
distance: 10,
iframeFix: true,
start: function(){
var iframe = $(this).find("iframe");
if(iframe.length > 0){
div(iframe.parent(), "img/blank.gif", "transparent");
}
},
stop: function(){
$(this).find(".capaCargando").remove();
}
});
这就是功能
function capaCargando(div, img, color){
if(div.length > 0){
//div.find('.capaCargando').remove();
//aLaConsola(div.find('.capaCargando').length);
if(img == undefined){
img = 'img/uispoty/loadBusqueda.gif';
}
if(color == undefined){
color = '#666';
}
var w = div.width(),
h = div.height(),
html = "<div class='capaCargando'>"+
"<div class='bgCapaCargando' style='background-color:"+color+"'></div>"+
"<div class='iconoCapaCargando' style='background-image:url("+img+")'></div>"+
"</div>";
div.prepend(html);
var capa = div.find(".capaCargando");
capa.find(".bgCapaCargando, .iconoCapaCargando").width(w).height(h);
}
}
你需要学习这段代码,因为我将这个用于我的项目,包括clases和其他东西,但你确定理解这个概念。
答案 2 :(得分:0)
以下是一些代码,用于说明位于jeroenjoosen
的here给出的正确答案
CSS
.frameOverlay {
height: 100%;
width: 100%;
background: rgba(34, 34, 34, 0.5); // transparent is an option or a color
position: absolute;
top: 0;
left: 0;
display: none;
}
<强> HTML 强>
<div class="frameOverlay"></div> <!--place anywhere within the body -->
的 Jquery的强>
<script>
$(function() {
$( "#draggable" ).draggable({
start: function() {
$('.frameOverlay').fadeIn('fast');
},
stop: function() {
$('.frameOverlay').fadeOut('fast');
}
});
});
</script>