我有一个可拖动的div。当我将它拖到网页上的一条边缘附近时,整个网站都会滚动。我可以禁用此功能吗? (我基本上可以使用div在网页上移动,但我希望它仅限于我目前所处的位置) 我使用jquery draggable脚本!
标题:
link href="stilmallaudioplayer.css" rel="stylesheet">
<script src="http://code.jquery.com/jquery-1.10.2.js"></script>
<script src="http://code.jquery.com/ui/1.10.4/jquery-ui.js"></script>
<style>
</style>
<script>
$(function() {
$( "#audioplayer" ).draggable();
});
</script>
身体:
<div id="audioplayer" class="ui-widget-content">
<audio controls class="ui-widget-content">
<source src="horse.ogg" type="audio/ogg">
<source src="horse.mp3" type="audio/mpeg">
Your browser does not support the audio element.
</audio>
</div>
注意:这不是我的完整代码,只是可拖动的div部分!
css:
#audioplayer {
padding: 0.5em;
z-index: 3;
position: absolute;
top: 100px;
left: 100px;
}
答案 0 :(得分:1)
您可以拖动overflow:hidden
上的body
或拖动start
上的容器元素,然后拖动stop
将其删除:
JS:
$("#audioplayer").draggable({
start: function (event, ui) {
$('body').addClass("overflow");
},
stop: function (event, ui) {
$('body').removeClass("overflow");
}
});
CSS:
overflow{overflow:hidden;} //Use inline style or !important if other css overrides this
答案 1 :(得分:1)
这似乎有效:fiddle
<强>的jQuery 强>
$(function () {
$("#audioplayer").draggable(
{ containment: "html", scroll: false }
);
});
<强> CSS 强>
html, body {
height:100%;
overflow:hidden;
}
#audioplayer {
padding: 0.5em;
z-index: 3;
position: absolute;
top: 100px;
left: 100px;
border: 1px solid black;
height:20px;
width: 100px;
}