在动态页面周围定位内容

时间:2013-07-07 15:51:46

标签: javascript jquery jquery-ui

我正在尝试使用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中的muilti窗格页面但不适用于chrome。它打破了简单的页面。

我无法修改jqueryui中的_checkOffset函数。我想根据页面中的位置保持选择器的高低位置。

在Chrome和IE中找到正确位置的正确方法是什么?

这是我修改后的绑定。适用于IE浏览器中的muilti页面,打破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页面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>

谢谢!

0 个答案:

没有答案