gpt4 book ai didi

javascript - 如何滚动流 JQuery UI 对话框

转载 作者:行者123 更新时间:2023-11-29 10:51:48 27 4
gpt4 key购买 nike

我一直在尝试使用 follow scroll 来移动 dialog 和 user scroll 但没有成功

<script>
$(function() {
$( "#dialog:ui-dialog" ).dialog( "destroy" );
$( "#dialog-report-problem-form" ).dialog({
autoOpen: true,
height: 550,
width: 700,
modal: true,
buttons: {
"<?= $this->translate('REPORT_PROBLEM'); ?>": function() {
reportProblem();
},
"<?= $this->translate('CANCEL'); ?>": function() {
$( this ).dialog( "close" );
}
},
close: function() {
}
});
$.scrollFollow("#dialog-report-problem-form",{speed: 10});
});
</script>

.

<div id="dialog-report-problem-form" title="<?= $this->translate('REPORT_PROBLEM'); ?>">
<?= $this->form ?>
</div>

我一直收到错误

 box.cont.offset() is null

有谁知道如何修复或其他基于 jquery 的解决方案来跟随用户滚动?

最佳答案

插件 scrollFollow 似乎有很多错误并且开发停止(2008 年最后更新)

  • 当您将它与 $.scrollFollow() 一起使用时,未设置默认选项值,因此您会遇到很多类似您遇到的错误。
  • 当与 $(...).scrollFollow 一起使用时,主要选项 container 未正确获取,因此它实际上不起作用...

这是一个小脚本,可以在滚动窗口时移动对话框:

(function(wnd, $) {

// query for elements once
var $dlg = $("#dialog-report-problem-form").parent(),
$wnd = $(wnd),
// get the initial position of dialog
initialTop = $dlg.offset().top - $wnd.scrollTop();

$wnd.scroll(function() {
// when qscrolling, animate the 'top' property
$dlg.stop()
.animate({
"top": ($wnd.scrollTop() + initialTop) + "px"
}, "slow");
})
.resize(function() {
// in case of resize, re-set the initial top position of the dialog
initialTop = $dlg.offset().top - $wnd.scrollTop();
});

// if you close/open the dialog, it will mess up the 'initialTop'
// this will re-set the correct 'initialTop' when the dialog opens again
$dlg.bind('dialogcreate dialogopen', function(e) {
initialTop = $dlg.offset().top - $wnd.scrollTop();
});

})(window, jQuery);

关于 jsfiddle 的工作示例.

关于javascript - 如何滚动流 JQuery UI 对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8877671/

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