我有一个Fancy Box弹窗。其中包含一段较长的内容,其中包括一个带有日期选择器的出生日期字段。
现在,当我单击该字段时,日历出现,但当我使用鼠标滚轮滚动页面时,日历不会保留在文本字段中,它仍停留在打开的位置,我希望它能随着滚动而移动。
Here is the FIDDLE DEMO with this issue :
http://jsfiddle.net/PFVxK/1314/
只需点击弹出窗口,然后单击文本字段,再滚动它,
我该如何解决这个问题?
我有一个Fancy Box弹窗。其中包含一段较长的内容,其中包括一个带有日期选择器的出生日期字段。
现在,当我单击该字段时,日历出现,但当我使用鼠标滚轮滚动页面时,日历不会保留在文本字段中,它仍停留在打开的位置,我希望它能随着滚动而移动。
Here is the FIDDLE DEMO with this issue :
http://jsfiddle.net/PFVxK/1314/
只需点击弹出窗口,然后单击文本字段,再滚动它,
我该如何解决这个问题?
datapicker
根据 input
的原始位置定位日历。但是,当你滚动时它不会重新定位。不过,你可以在 fancybox 的滚动中重新定位 datepicker
。
afterLoad: function () {
$('.fancybox-inner').on('scroll', function () {
var inp = $(this).find('input.hasDatepicker');
$('#ui-datepicker-div').css('top', inp.offset().top + inp.outerHeight());
});
}, beforeClose: function () {
$('.fancybox-inner').off('scroll');
}
afterLoad
和 beforeClose
是在 fancy box 加载后和关闭前触发的回调方法。
请查看演示http://jsfiddle.net/NsNHZ/1/,并让我知道它是否适用于您。
onblur()
。$(".fancybox-effects-b").fancybox({
openEffect: 'none',
closeEffect: 'none',
helpers: {
title: {
type: 'over'
}
},
afterLoad: function () {
$('.fancybox-inner').on('scroll', function () {
CloseDatePicker();
});
}, beforeClose: function () {
$('.fancybox-inner').off('scroll');
}
});
$(function() {
$( "#dateofbirth" ).datepicker();
/*Load only inside fancybox*/
$(window).resize(function(){
CloseDatePicker();
});
});
function CloseDatePicker()
{
if($("#dateofbirth").datepicker( "widget" ).is(":visible"))
{
$("#dateofbirth").datepicker("widget").hide();
$("#dateofbirth").trigger( "blur");
}
}
position: fixed;
和 margin-top:40px;
。您可以设置方向js bootstrap https://bootstrap-datepicker.readthedocs.io/en/latest/options.html#orientation
$('#dateofbirth').focus(function(){
$( ".a" ).show();
$( ".a" ).datepicker();
});
$('#dateofbirth').blur(function(){
$( ".a" ).hide();
});
改变了HTML:
<input type="text" name="dateofbirth" id="dateofbirth" placeholder="Date of Birth">
<div class='a'></div> // new div added
http://jsfiddle.net/PFVxK/1319/
但请注意,我们正在调整默认功能,因此需要进一步自定义。 - user2704193