bootstrap datetimepicker控件位置异常的解决方法


Posted in Javascript onNovember 23, 2017

今天在写毕设的时候,用到了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…

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
一段效率很高的for循环语句使用方法
Aug 13 Javascript
基于jQuery的左右滚动实现代码
Dec 03 Javascript
jQuery实现可拖动的浮动层完整代码
May 27 Javascript
jQuery性能优化的38个建议
Mar 04 Javascript
常见的原始JS选择器使用方法总结
Apr 09 Javascript
JS实现密码框的显示密码和隐藏密码功能示例
Dec 26 Javascript
jquery仿苹果的时间/日期选择效果
Mar 08 Javascript
浅谈函数调用的不同方式,以及this的指向
Sep 17 Javascript
JS实现定时任务每隔N秒请求后台setInterval定时和ajax请求问题
Oct 15 Javascript
React-redux实现小案例(todolist)的过程
Sep 29 Javascript
jenkins自动构建发布vue项目的方法步骤
Jan 04 Vue.js
Vue的生命周期一起来看看
Feb 24 Vue.js
Bootstrap 3多级下拉菜单实例
Nov 23 #Javascript
bootstrap实现二级下拉菜单效果
Nov 23 #Javascript
详解vue项目的构建,打包,发布全过程
Nov 23 #Javascript
Bootstrap实现下拉菜单多级联动
Nov 23 #Javascript
bootstrap select下拉搜索插件使用方法详解
Nov 23 #Javascript
基于Bootstrap实现城市三级联动
Nov 23 #Javascript
bootstrap-Treeview实现级联勾选
Nov 23 #Javascript
You might like
php 动态执行带有参数的类方法
2009/04/10 PHP
PHP 图片文件上传实现代码
2010/12/29 PHP
php绘制一个矩形的方法
2015/01/24 PHP
php header函数的常用http头设置
2015/06/25 PHP
php实现按天数、星期、月份查询的搜索框
2016/05/02 PHP
jQuery $.get 的妙用 访问本地文本文件
2012/07/12 Javascript
jQuery不使用插件及swf实现无刷新文件上传
2014/12/08 Javascript
详解Javascript继承的实现
2016/03/25 Javascript
JavaScript 总结几个提高性能知识点(推荐)
2017/02/20 Javascript
jQuery获取单选按钮radio选中值与去除所有radio选中状态的方法
2017/05/20 jQuery
引入JavaScript时alert弹出框显示中文乱码问题
2017/09/16 Javascript
Vue中android4.4不兼容问题的解决方法
2018/09/04 Javascript
Django+vue跨域问题解决的详细步骤
2019/01/20 Javascript
JS+HTML实现自定义上传图片按钮并显示图片功能的方法分析
2020/02/12 Javascript
echarts.js 动态生成多个图表 使用vue封装组件操作
2020/07/19 Javascript
python实现DES加密解密方法实例详解
2015/06/30 Python
Python使用正则表达式过滤或替换HTML标签的方法详解
2017/09/25 Python
python3使用scrapy生成csv文件代码示例
2017/12/28 Python
通过python将大量文件按修改时间分类的方法
2018/10/17 Python
Python实现将Excel转换成为image的方法
2018/10/23 Python
Django form表单与请求的生命周期步骤详解
2020/06/07 Python
解决使用Pandas 读取超过65536行的Excel文件问题
2020/11/10 Python
HTML5 Canvas实现玫瑰曲线和心形图案的代码实例
2014/04/10 HTML / CSS
html5实现输入框fixed定位在屏幕最底部兼容性
2020/07/03 HTML / CSS
Kipling澳洲官网:购买凯浦林包包
2020/12/17 全球购物
KEEN美国官网:美国人气户外休闲鞋品牌
2021/03/09 全球购物
《冬阳童年骆驼队》教学反思
2014/04/15 职场文书
就业协议书
2014/09/12 职场文书
学前班幼儿评语大全
2014/12/29 职场文书
世界文化遗产导游词
2015/02/13 职场文书
2015年人民调解工作总结
2015/05/18 职场文书
python实现简易名片管理系统
2021/04/11 Python
MySQL数据库必备之条件查询语句
2021/10/15 MySQL
Python中异常处理用法
2021/11/27 Python
Python中字符串对象语法分享
2022/02/24 Python
Java字符串逆序方法详情
2022/03/21 Java/Android