以下是该方案。
我有一个可拖动的徽标&可以通过jQuery UI调整大小(版本是1.9.2,但它并不重要),由父DIV限制。它在拖动和拖动方面效果很好大小调整。
但是,当我尝试使用背景图像正好覆盖DIV时,上面的DIV会阻止鼠标点击。
HTML
<div id="appleLogo"></div>
<div id="frameBorder">
<div id="draggableHelper" style="display:inline-block">
<img id="image" src="http://www.google.com.br/images/srpr/logo3w.png" />
</div>
</div>
JS
$('#draggableHelper').draggable({
containment: "#frameBorder",
scroll: false
});
$('#image').resizable();
CSS
#appleLogo {
position: absolute;
width: 400px;
height: 400px;
background-image: url(http://wbridgewaterschools.org/school/images/Apple%20logo.png);
background-size: cover;
opacity: 0.7;
filter: alpha(opacity=70);
z-index: 10;
}
#frameBorder {
position: absolute;
width: 400px;
height: 400px;
border: 1px solid #F00;
overflow: hidden;
z-index: 1;
}
为了更好地演示,这里是jsFiddle。我该如何绕过上述DIV?
以下是我读过的一些参考资料,但没有一个适用于这种情况:
答案 0 :(得分:2)
你需要一点点css / html / js shuffle,代码发布在下面,这里是小提琴: http://jsfiddle.net/EVSZQ/10/
<div id="frameBorder">
<div id="draggableHelper" style="display:inline-block">
<div id="image">
<img id="logo" src="http://wbridgewaterschools.org/school/images/Apple%20logo.png" />
</div>
</div>
</div>
#frameBorder {
width: 400px;
height: 400px;
border: 1px solid #F00;
}
#image {
width: 50px;
height: 50px;
border: 1px solid black;
background-size: 100% 100%;
background-image: url(http://www.google.com.br/images/srpr/logo3w.png);
}
#logo {
position: fixed;
width: 400px;
height: 400px;
opacity: .55;
}
$('#draggableHelper').draggable({
containment: "#frameBorder",
scroll: false
});
$('#image').resizable();
希望有所帮助!
最佳, 约什
答案 1 :(得分:1)
编辑:新小提琴:http://jsfiddle.net/EVSZQ/5/
这是js代码:但是我没有优化它,认为它很容易理解......
$('#image').resizable();
$('#draggableHelper').draggable({
containment: "#frameBorder",
scroll: false
});
$('#appleLogo').on('mousedown', function(event){
var gxstart = $('#image').offset().left;
var gxend = $('#image').offset().left + $('#image').width();
var gystart = $('#image').offset().top;
var gyend = $('#image').offset().top + $('#image').height();
var mouseX = event.clientX;
var mouseY =event.clientY;
if( gxstart < mouseX )
{
if ( mouseX < gxend )
{
if(gystart < mouseY)
{
if(mouseY < gyend)
{
$('#draggableHelper').trigger(event);
}
}
}
}
});