我正在尝试调整嵌入对象的大小。问题在于,当鼠标悬停在物体上方时,它会“控制”鼠标,吞噬运动事件。结果是您可以展开包含对象的div,但是当您尝试缩小它时,如果鼠标进入对象区域,则调整大小将停止。
目前,我在移动时隐藏了对象。我想知道是否有办法阻止对象捕获鼠标。也许覆盖其上的另一个元素会阻止鼠标事件到达嵌入对象?
在调整大小上使用重影对嵌入对象不起作用,顺便说一句。
添加赏金,因为我似乎无法让这个工作。要收集,只需执行以下操作:
提供一个嵌入了PDF的网页,以页面为中心。 pdf不能占用整个页面;使其宽度/高度为浏览器窗口宽度的50%。
使用jQuery 1.2.6将大小调整添加到pdf的每个边角。
pdf不得捕捉鼠标并在缩小PDF时停止拖动。这意味着当我单击pdf的边缘并拖动时,当鼠标进入pdf的显示框时,调整大小操作将继续。
这必须在IE 7中有效。条件CSS(如果gte ie7或其他)黑客攻击都没问题。
嗯......我认为这可能是iframe的一个问题......
<div style="text-align:center; padding-top:50px;">
<div id="doc" style="width:384px;height:512px;">
<iframe id="docFrame" style="width: 100%; height: 100%;"
src='http://www.ready.gov/america/_downloads/sampleplan.pdf'>
</iframe></div></div>
<div id="data"></div>
<script type="text/javascript">
$(document).ready(function() {
var obj = $('#docFrame');
$('#doc').resizable({handles:'all', resize: function(e, ui) {
$('#data').html(ui.size.width + 'x' + ui.size.height);
obj.attr({width: ui.size.width, height: ui.size.height});
}});
});
</script>
这不起作用。当鼠标偏离iframe时,调整大小操作将停止。
有一些好的答案;如果赏金耗尽之前我可以绕过审查他们所有我将恢复赏金(相同的150分)。
答案 0 :(得分:3)
我完全无法找到XPS Document Viewer示例或诸如此类的东西,但我能够提出this working sample
。它没有使用叠加的想法,但它是一个可以调整大小的PDF ...
编辑使这项工作没有叠加层的事情是将wmode
参数设置为transparent
。我对这些细节并不熟悉,但它让它在IE7上发挥得淋漓尽致。也适用于Firefox,Chrome,Safari和Opera。
新编辑在使用框架时遇到严重问题。我发现的一些信息并不十分令人鼓舞。使用<object>
是不可能的?或iframe中的<object>
?
答案 1 :(得分:1)
我会回答叠加,但会提供实际代码:P
我将其称为“跟随者”而不是覆盖,并在我的用于jQuery的ThreeSixty插件中使用(提供简单的源代码,您将理解阅读“跟随者”div发生的事情。
答案 2 :(得分:0)
叠加。
一个单词回答被禁止,这句话没有动词。
答案 3 :(得分:0)
也许SmartLook是另一种选择。它就像那些灯箱脚本,但适用于嵌入式内容,如pdfs。
答案 4 :(得分:0)
这对我有用,但是在调整大小时会隐藏iframe。这对你来说是个问题吗?
$(document).ready(function() {
var obj = $('#docFrame');
$('#doc').resizable(
{
handles: 'all',
resize: function(e, ui) {
$('#data').html(ui.size.width + 'x' + ui.size.height);
obj.attr({ width: ui.size.width, height: ui.size.height });
},
start: function(e, ui) { $('#docFrame').hide(); },
stop: function(e, ui) { $('#docFrame').show(); }
});
});
答案 5 :(得分:0)
使用IE,您可以调用setCapture()/ releaseCapture(),它对我来说非常适合iframe。
使用Firefox - 透明叠加层,如已建议的那样。
答案 6 :(得分:0)
感谢StackOverflow的新“最近活动”功能,我看到你要我提供一个代码示例。我只进行了一些小测试(似乎无法让你的代码在IE中内联PDF,大概它需要一个PDF插件,我没有安装),所以这可能无法正常工作。但这是一个开始。
<div style="text-align: center; padding-top: 50px;">
<div id="doc" style="width: 384px; height: 512px; position: relative;">
<div id="overlay" style="position: absolute; top: -5px; left: -5px;
padding: 5px; width: 100%; height: 100%; background: red;
opacity: 0.5; z-index: 1; display: none;"></div>
<iframe id="docFrame" style="width: 100%; height: 100%; position: relative; z-index: 0;"
src='http://www.ready.gov/america/_downloads/sampleplan.pdf'></iframe>
</div>
</div>
<div id="data"></div>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.js" type="text/javascript" charset="utf-8"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.5.3/jquery-ui.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript">
$(document).ready(function() {
var obj = $('#docFrame'), overlay = $('#overlay');
$('#doc').resizable({
handles: 'all',
start: function() {
overlay.show();
},
resize: function(e, ui) {
$('#data').html(ui.size.width + 'x' + ui.size.height);
obj.attr({
width: ui.size.width,
height: ui.size.height
});
},
stop: function(e, ui) {
overlay.hide();
}
});
});
</script>
答案 7 :(得分:0)
var dframe = $("#docFrame");
$(document).ready(function () {
var b = dframe;
$("#doc").e({
b: "all",
resize: function (c, a) {
$("#data").html(a.size.width + "x" + a.size.height);
object.attr({
width: a.size.width,
height: a.size.height
});
},
start: function () {
dframe.hide();
},
stop: function () {
dframe.show();
}
});
});