我有两个水平滚动器,我需要把div从上滚轮拖到下滚轮。这是很好的工作,但问题是,被拖动的div会在滚动体边界下丢失。拖动来自jquery-UI和scroller平滑滚动。
有办法解决吗?还是我应该从头开始?
这是在http://jsfiddle.net/yCESP/里
以下是jquery插件的列表。
jquery-ui-1.10.4.custom.min.js
jquery.mousewheel.min.js
jquery.kinetic.min.js
jquery.smoothdivscroll-1.3-min.js
jquery.ui.touch-punch.min.js这是代码
<div id="wrapper">
<div id="mainColumn">
<div id="mixedContent2" >
<div class="koko_koira" style="background-color:#4254a3;color:white;">
<br/>
<p>1</p>
</div>
<div class="koko_koira" style="background-color:#4254a3;color:white;">
<br/>
<p>2</p>
</div>
<div class="koko_koira" style="background-color:#4254a3;color:white;">
<br/>
<p>3</p>
</div>
<div class="koko_koira" style="background-color:#4254a3;color:white;">
<br/>
<p>4</p>
</div>
<div class="koko_koira" style="background-color:#4254a3;color:white;">
<br/>
<p>5</p>
</div>
<div class="koko_koira" style="background-color:#4254a3;color:white;">
<br/>
<p>6</p>
</div>
<div class="koko_koira" style="background-color:#4254a3;color:white;">
<br/>
<p>7<br></p>
</div>
</div>
<div id="mixedContent" >
<div class="contentBox" style="background-color:#4254a3;color:white;">
<br/>
<p>FIRST</p>
</div>
<div class="contentBox" style="background-color:white;color:black;">
<p>SECOND</p>
</div>
<div class="contentBox" style="background-color:grey;color:white;">
<p>THIRD</p>
</div>
</div>
</div>
</div>CSS
#wrapper {
z-index:0;
}
#mainColumn {
z-index:0;
}
#mixedContent {
width:80%;
height: 330px;
position: relative;
display: block;
z-index:1;
border:2px;
border-style:solid;
border-color:#093;
}
#mixedContent .contentBox {
position: relative;
float: left;
display: block;
height: 250px;
width: 250px;
border: solid 1px #ccc;
padding: 10px;
margin: 0px 5px;
font-family:Verdana, Geneva, sans-serif;
font-size:12px;
text-align:center;
-webkit-border-radius:5px;
-moz-border-radius:5px;
border-radius:5px;
margin:5px 5px 5px 5px;
box-shadow: 2px 2px 2px #585858;
z-index:0;
}
#mixedContent .contentBox img {
margin-bottom: 10px;
}
#mixedContent .contentBox p {
font-size: 10px;
}
#mixedContent2 {
width:80%;
height: 330px;
position: relative;
display: block;
z-index:1;
border:2px;
border-style:solid;
border-color:#06C;
}
.koko_koira {
position: relative;
float: left;
display: block;
height: 200px;
width: 128px;
border: solid 1px #ccc;
padding: 10px;
margin: 0px 5px;
font-family:Verdana, Geneva, sans-serif;
font-size:12px;
text-align:center;
-webkit-border-radius:5px;
-moz-border-radius:5px;
border-radius:5px;
margin:5px 5px 5px 5px;
box-shadow: 2px 2px 2px #585858;
z-index:50;
}
.koko_koira img {
margin-bottom: 10px;
}JS
$(document).ready(function() {
$("#mixedContent").smoothDivScroll({
hotSpotScrolling: false,
touchScrolling: true
});
});
$(document).ready(function() {
$("#mixedContent2").smoothDivScroll({
hotSpotScrolling: false,
touchScrolling: true
});
});
$( ".koko_koira" ).draggable({
revert: "invalid",
helper: "clone",
cursor: "move",
});
$( ".contentBox" ).droppable({
activeClass: "ui-state-default",
hoverClass: "ui-state-hover",
drop: function(event, ui) {
$(this)
.addClass("ui-state-highlight")
.find("p")
.html("Dropped!");
}
});发布于 2014-05-20 09:08:21
在拖放事件期间,您应该在overflow: hidden和overflow: visible上使用div.scrollWrapper。你也需要重新考虑你定位你的顶级球童的方式。
一个更新的小提琴(可悲地打破了拖曳事件的布局)可以找到这里。
在拖动时拖动要侦听的事件:
drag: function() {
$('div.scrollWrapper').css('overflow', 'visible');
},
stop: function() {
$('div.scrollWrapper').css('overflow', 'hidden');
}https://stackoverflow.com/questions/23754476
复制相似问题