Javascript 当元素处于负数位置时,如何使页面向左滚动?

Javascript 当元素处于负数位置时,如何使页面向左滚动?,javascript,css,scrollbar,positioning,jquery-ui-draggable,Javascript,Css,Scrollbar,Positioning,Jquery Ui Draggable,我正在尝试创建一个类似于思维导图的应用程序,但它不必那么复杂。我遇到的问题是,当我在页面上放置一个元素并使用jQuery draggable函数使其可拖动时,该元素可以向右拖动,页面的宽度会随着拖动该元素而增加,但当向左拖动该元素时,会得到负值,滚动条不会覆盖负空间 我到处找了,什么也没找到。任何帮助都将不胜感激 JavaScript代码 $( function() { $("#draggable").draggable(); }); HTML标记: <script src=

我正在尝试创建一个类似于思维导图的应用程序,但它不必那么复杂。我遇到的问题是,当我在页面上放置一个元素并使用jQuery draggable函数使其可拖动时,该元素可以向右拖动,页面的宽度会随着拖动该元素而增加,但当向左拖动该元素时,会得到负值,滚动条不会覆盖负空间

我到处找了,什么也没找到。任何帮助都将不胜感激

JavaScript代码

$( function() {
    $("#draggable").draggable();
});
HTML标记:

  <script src="https://code.jquery.com/jquery-1.12.4.js"></script>
  <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
  <div id="draggable">
  Can be dragged to the right of the screen and the scrollbar increases but 
  not to the left.
  </div>

可以拖动到屏幕右侧,滚动条会增加,但
不在左边。

滚动条不应该向页面的顶部或左侧延伸,但是您可以使用javascript解决这一问题,例如,如果拖动对象被放置到负坐标上,则可以增加页面大小并重置其位置

var incremasedleft=0;
$(函数(){
$(“#可拖动”)。可拖动({
停止:功能(事件、用户界面){
如果(ui.position.left<0){
$(“#draggable”).css({left:0});
$(“#容器”).width($(“#容器”).width()-ui.position.left);
incremasedleft-=ui.position.left;
}否则,如果(增量增量增量大于0){
$(“#container”).width($(“#container”).width()-Math.min(increasedLeft,ui.position.left));
$(“#draggable”).css({left:(ui.position.left-Math.min(increasedLeft,ui.position.left));
incremasedleft-=Math.min(incremasedleft,ui.position.left);
}
}
});
});
html,主体,#容器{
宽度:100%;
身高:100%;
保证金:0;
}
#拖拉的{
背景色:黑色;
颜色:白色;
宽度:200px;
保证金:0;
}

可以拖动到屏幕右侧,滚动条会增加,但不会向左。

滚动条不应该延伸到页面的顶部或左侧,但是您可以使用javascript解决这一问题,例如,如果拖动表被放置到负坐标上,可以增加页面大小并重置其位置

var incremasedleft=0;
$(函数(){
$(“#可拖动”)。可拖动({
停止:功能(事件、用户界面){
如果(ui.position.left<0){
$(“#draggable”).css({left:0});
$(“#容器”).width($(“#容器”).width()-ui.position.left);
incremasedleft-=ui.position.left;
}否则,如果(增量增量增量大于0){
$(“#container”).width($(“#container”).width()-Math.min(increasedLeft,ui.position.left));
$(“#draggable”).css({left:(ui.position.left-Math.min(increasedLeft,ui.position.left));
incremasedleft-=Math.min(incremasedleft,ui.position.left);
}
}
});
});
html,主体,#容器{
宽度:100%;
身高:100%;
保证金:0;
}
#拖拉的{
背景色:黑色;
颜色:白色;
宽度:200px;
保证金:0;
}

可以拖动到屏幕右侧,滚动条会增加,但不会向左。

谢谢,现在应该可以了。@HamidHosseini没问题!如果我的答案解决了您的问题,您可以通过单击答案左边的复选标记将其作为正确答案接受。谢谢,现在应该这样做。@HamidHosseini没问题!如果我的答案解决了您的问题,您可以通过单击答案左侧的复选标记将其视为正确答案。