禁用可拖动div的滚动

时间:2015-03-10 09:14:13

标签: jquery scroll draggable

我有一个可拖动的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;
}

2 个答案:

答案 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;
    }