在北方每当春回大地,丁香花便不甘寂寞,也会兴致匆匆竟相开放,把他那扑扑幽香……丁香花色繁多有紫色,红色,白色等在没有梅雨的六月里散发着香水般芳菲的气息。天坛公园有个丁香林,置身其中,人真会有些要被花香熏晕的感觉多么忧郁的花。多么娇嫩的花。院子里栽满丁香花。开满紫色美丽的鲜花。丁香花小,一簇一簇的,有白有紫,路边的丁香花已孕育花苞,树下围了不少人指着花苞吵吵嚷嚷,别着急呀,只等春雷一响就会竞相绽放。
今天在写毕设的时候,用到了bootstrap-datetimepicker作为日期控件。
在git上clone下最新的代码,运行demo,发现控件区域整体下移1000px左右。
作为一个准备拿来就用的后台程序猿,此刻我的内心是崩溃的…
百度了很久,没有找到对应的解决方案,于是自己动手去源码修改。
最终解决方案:
打开源码,的bootstrap-datetimepicker.js文件
line 527行,打开这一段注释即可
/*if (this.pickerPosition == 'top-left' || this.pickerPosition == 'top-right') { top = offset.top - this.picker.outerHeight(); } else { top = offset.top + this.height; }*/
如果看着还是不是很舒服的话,建议注释掉line 533 - line 544
top = top - containerOffset.top + 169; left = left - containerOffset.left + 210;
为什么要这样解决呢?
place: function () { if (this.isInline) return; if (!this.zIndex) { var index_highest = 0; $('div').each(function () { var index_current = parseInt($(this).css('zIndex'), 10); if (index_current > index_highest) { index_highest = index_current; } }); this.zIndex = index_highest + 10; } var offset, top, left, containerOffset; if (this.container instanceof $) { containerOffset = this.container.offset(); } else { containerOffset = $(this.container).offset(); } if (this.component) { offset = this.component.offset(); left = offset.left; if (this.pickerPosition == 'bottom-left' || this.pickerPosition == 'top-left') { left += this.component.outerWidth() - this.picker.outerWidth(); } } else { offset = this.element.offset(); left = offset.left; } var bodyWidth = document.body.clientWidth || window.innerWidth; if (left + 220 > bodyWidth) { left = bodyWidth - 220; } /*if (this.pickerPosition == 'top-left' || this.pickerPosition == 'top-right') { top = offset.top - this.picker.outerHeight(); } else { top = offset.top + this.height; }*/ top = top - containerOffset.top + 169; left = left - containerOffset.left + 210; this.picker.css({ top: top, left: left, zIndex: this.zIndex }); },
上面就是相关的源码,可以看到,注释了line 527行之后,在后面引用了一个未初始化过的top变量
嗯… 这是一个没经过测试就提交的小BUG…
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。