我正在尝试将 Jquery ui datepicker 1.10.3 与 jquery 2.0.2 一起使用。同样使用 requirejs、Zurb 基础作为表单和网格的基本样式。
这听起来像是一个日期选择器问题,但这只是用例,我必须定位其他具有相同问题的随机元素。
我只是想让它在 IE 9,10 和最新的几个 chrome 版本中工作。
我将日期选择器包裹在淘汰赛绑定中。
ko.bindingHandlers.datepicker = {
init: function (element, valueAccessor, allBindingsAccessor) {
//initialize datepicker with some optional options
var options = allBindingsAccessor().datepickerOptions || {};
$(element).datepicker(options);
....
我有两个大页面。第一页非常大,有数百个输入,一切都很好。
第二页是问题的开始。
它有许多在彼此前面移动的窗格上的大型表格。这个动态页面打破了 jquery ui 的定位。
我试图通过调整beforshow上的边距来手动定位日期选择器,它适用于IE中的多窗格页面,但不适用于chrome。它打破了简单的页面。
我无法修改 jqueryui 中的 _checkOffset 函数。我想根据页面中的位置保留选择器的上方或下方。
在 chrome 和 IE 中找到正确位置的正确方法是什么?
这是我修改后的绑定。在 IE 中的多页面上工作,在 chrome 中中断并且简单页面被打破。
ko.bindingHandlers.datepicker = {
init: function (element, valueAccessor, allBindingsAccessor) {
//initialize datepicker with some optional options
var options = allBindingsAccessor().datepickerOptions || {};
debugger;
options.beforeShow = function (textbox, instance) {
//debugger;
instance.dpDiv.css({
//marginTop: (-textbox.offsetHeight) + 'px',
//marginLeft: textbox.offsetWidth + 'px',
marginTop: ($(document).scrollTop() || document.body.scrollTop) + 'px'
});
};
$(element).datepicker(options);
....
muilti page ccs的定位是这样的。使用带前缀的 Modernizr。
.perspective {
position: relative;
width: 100%;
height: 100%;
-webkit-perspective: 1200px;
-moz-perspective: 1200px;
perspective: 1200px; }
.pane {
width: 100%;
height: 100%;
position: absolute;
margin-top: 0px;
opacity: 0;
top: 0;
left: 0;
visibility: hidden;
-webkit-backface-visibility: hidden;
-moz-backface-visibility: hidden;
backface-visibility: hidden;
-webkit-transform: translate3d(0, 0, 0);
-moz-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0);
-webkit-transform-style: preserve-3d;
-moz-transform-style: preserve-3d;
transform-style: preserve-3d; }
.current {
opacity: 1;
visibility: visible;
z-index: 1; }
所以标记是这样的。
<div id="panel_container" class="perspective">
<div id="Pane3Container" class="pane">
@Html.Partial("_Form3")
</div>
<div id="Pane2Container" class="pane current">
@Html.Partial("_Form2")
</div>
<div id="Pane1Container" class="pane">
@Html.Partial("_Form1")
</div>
</div>
谢谢!