gpt4 book ai didi

javascript - 如何使 BootstrapDialog 在移动设备上可移动

转载 作者:行者123 更新时间:2023-11-28 16:46:08 24 4
gpt4 key购买 nike

我正在使用 https://github.com/nakupanda/bootstrap3-dialog制作对话框,但在手机上对话框大多大于屏幕尺寸。在桌面上,当我将宽度更改为与移动设备相同的大小时,我们可以使用鼠标拖动对话框标题,但不能在移动设备上完成。

这是屏幕尺寸。

before dragging

向左拖动后的对话框

after dragging

有没有办法让对话框在移动设备上可拖动?或者有更好的解决方案吗?

编辑

我尝试使用更简单的设置重现该问题,但它显示了在 .modal-dialog 上使用的不同 css:

问题:

the problematic one

更简单的设置:

simpler setup

现在我知道问题出在 CSS 的 min-width 属性上。然后我通过在创建 BootstrapDialog

时替换该属性来破解它
onshown: function() {
$('.modal-dialog').css('min-width', 'auto');
}

最佳答案

对于对话框大小,我认为这在评论中得到了回答。要在移动设备上围绕 [draggable : true] 拖动对话框,您必须在源代码中稍作更改。

bootstrap3-dialog 根本不响应移动事件,例如 touchstarttouchendtouchmove { reference .

看看第 1080 行的代码:
https://github.com/nakupanda/bootstrap3-dialog/blob/master/src/js/bootstrap-dialog.js#L1080

添加移动事件以便 bootstrap3-dialog 也可以在移动设备上拖动:

...
makeModalDraggable: function() {
if (this.options.draggable) {
this.getModalHeader().addClass(this.getNamespace('draggable')).on('mousedown touchstart', {
dialog: this
}, function(event) {
var dialog = event.data.dialog;
dialog.draggableData.isMouseDown = true;
var dialogOffset = dialog.getModalDialog().offset();
dialog.draggableData.mouseOffset = {
top: event.clientY - dialogOffset.top,
left: event.clientX - dialogOffset.left
};
});
this.getModal().on('mouseup mouseleave touchend touchcancel', {
dialog: this
}, function(event) {
event.data.dialog.draggableData.isMouseDown = false;
});
$('body').on('mousemove touchmove', {
dialog: this
}, function(event) {
var dialog = event.data.dialog;
if (!dialog.draggableData.isMouseDown) {
return;
}
dialog.getModalDialog().offset({
top: event.clientY - dialog.draggableData.mouseOffset.top,
left: event.clientX - dialog.draggableData.mouseOffset.left
});
});
}

return this;
},
...

注意:完全未经测试,但我相信这是(唯一)可行的方法。

NB²:上面的重构只是作为一个此时此地的解决方案。你应该raise the issue在 github 元素网站上。我相信作者们也会认为让 bootstrap3-dialog 移动设备就绪也是一个好主意。

关于javascript - 如何使 BootstrapDialog 在移动设备上可移动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33139975/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com