【发布时间】:2018-08-02 05:12:23
【问题描述】:
我在创建新事件时遇到了问题。例如在 Chrome 中,向下滚动到底部,确保它的高度足够小,这样您就看不到整个日历。
点击按钮month、week、month、week(多次)。现在尝试在今天晚上 11 点创建一个事件 - 将出现一个模式窗口。按取消。
我现在得到什么以及出了什么问题 - 浏览器窗口向上滚动,直到日历的标题!
如您所见 - 没有包含我自己的库,只有来自 fullcalendar/semantic-ui 文档的基本代码。
Semantic-ui 模态窗口本身(没有完整日历)不会发生此问题。此外,在页面刷新后一切正常,但随后按月/周/月/周可以向上滚动。
$(document).ready(function() {
$('#calendar').fullCalendar({
header: {
right: 'month,agendaWeek'
},
aspectRatio: 1.8,
selectable: true,
select: function() {
$('.ui.modal').modal('show');
}
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<link rel="stylesheet" type="text/css" href="https://fullcalendar.io/js/fullcalendar-2.2.5/fullcalendar.css">
<script type="text/javascript" src="https://fullcalendar.io/js/fullcalendar-2.2.5/lib/moment.min.js"></script>
<script type="text/javascript" src="https://fullcalendar.io/js/fullcalendar-2.2.5/fullcalendar.min.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/semantic-ui/1.11.1/semantic.min.js"></script>
<link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/semantic-ui/1.11.1/semantic.min.css">
<div style="height:1000px;"></div>
<div id="calendar"></div>
<div class="ui small modal">
<div class="actions">
<div class="ui black cancel button">Cancel</div>
</div>
</div>
JSFiddle 示例:https://jsfiddle.net/edomzxLL/1/
请帮助我了解问题所在以及如何防止这种奇怪/不需要的向上滚动?
编辑:
目前我认为它是由模态窗口完成的。有一段代码,在窗口关闭时运行:
...
onComplete : function() {
settings.onHidden.call(element);
module.restore.focus();
callback();
}
...
... onHidden() 被触发,然后焦点返回到最后一个焦点对象。那是个问题。如果我在网页开头的某处有一个焦点元素,则向下滚动,显示一个模式窗口并关闭它 - 浏览器会自动向上滚动到页面的开头到该焦点元素。注释掉这一行对我有帮助,但这是编辑语义源代码,这不是解决方案。就我而言,按钮可能获得焦点。
【问题讨论】:
-
总是欢迎使用小提琴,但请确保在问题中也包含相关代码。如果 jsFiddle 出现故障(经常这样),您的问题将无法回答,并且对任何未来的访问者都无用。
-
你的 sn-p 不适合我。你能提供一个可行的例子吗?
-
@AlexanderTyapkov,根本不工作或没有自动向上滚动?它适用于我尝试的任何地方。您是否先将窗口滚动到底部?窗口的高度是否足够小,以至于您看不到整个日历?您是否多次按下月/周/月/周按钮?最后一个问题非常重要。只有在这些操作之后才尝试创建事件
-
@Alexey 好的,我尝试按照您的情况进行操作。当我创建事件并单击取消时,窗口不会向上滚动。 (Firefox 58,Ubuntu)可能是浏览器特有的问题?
-
@AlexanderTyapkov,在 Firefox 中我有类似的问题。尝试使用 Win 10 的 VM - 与 MS Edge 相同
标签: javascript jquery fullcalendar semantic-ui