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 相关文章推荐
javascript编程起步(第六课)
Feb 27 Javascript
在JavaScript中遭遇级联表达式陷阱
Mar 08 Javascript
js解析xml字符串和xml文档实现原理及代码(针对ie与火狐)
Feb 02 Javascript
jQuery判断当前点击的是第几个li的代码
Sep 26 Javascript
JQuery中extend的用法实例分析
Feb 08 Javascript
js实现圆盘记速表
Aug 03 Javascript
Jquery代码实现图片轮播效果(一)
Aug 12 Javascript
javascript实现省市区三级联动下拉框菜单
Nov 17 Javascript
微信小程序中setInterval的使用方法
Sep 29 Javascript
JavaScript继承的特性与实践应用深入详解
Dec 30 Javascript
微信小程序绑定手机号获取验证码功能
Oct 22 Javascript
JS实现横向轮播图(初级版)
Jun 24 Javascript
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文章采集URL补全函数(FormatUrl)
2012/08/02 PHP
php 读取文件头判断文件类型的实现代码
2013/08/05 PHP
PHP中str_split()函数的用法讲解
2019/04/11 PHP
有关DOM元素与事件的3个谜题
2010/11/11 Javascript
nodejs中使用monk访问mongodb
2014/07/06 NodeJs
JQuery控制div外点击隐藏而div内点击不会隐藏的方法
2015/01/13 Javascript
基于JavaScript实现智能右键菜单
2016/03/02 Javascript
js实现页面跳转的五种方法推荐
2016/03/10 Javascript
BootStrap3学习笔记(一)之网格系统
2016/05/20 Javascript
微信小程序 location API实例详解
2016/10/02 Javascript
jQuery实现的模拟弹出窗口功能示例
2016/11/24 Javascript
利用js查找数组中指定元素并返回该元素的所有索引示例
2017/03/29 Javascript
浅析JavaScript中的平稳退化(graceful degradation)
2017/07/24 Javascript
JS实现的3des+base64加密解密算法完整示例
2018/05/18 Javascript
[07:09]DOTA2-DPC中国联赛 正赛 Ehome vs Elephant 选手采访
2021/03/11 DOTA
Python实现从url中提取域名的几种方法
2014/09/26 Python
简单介绍Python的Django框架加载模版的方式
2015/07/20 Python
python SMTP实现发送带附件电子邮件
2018/05/22 Python
django将图片上传数据库后在前端显式的方法
2018/05/25 Python
python实现简单图片物体标注工具
2019/03/18 Python
Python参数解析模块sys、getopt、argparse使用与对比分析
2019/04/02 Python
Pandas实现dataframe和np.array的相互转换
2019/11/30 Python
Django实现celery定时任务过程解析
2020/04/21 Python
200行python代码实现贪吃蛇游戏
2020/04/24 Python
Jupyter notebook如何实现指定浏览器打开
2020/05/13 Python
全球知名旅游社区法国站点:TripAdvisor法国
2016/08/03 全球购物
澳大利亚首屈一指的在线购物目的地:Kogan.com
2017/02/02 全球购物
瑞士领先的网上超市:LeShop.ch
2018/11/14 全球购物
英国钻石公司:British Diamond Company
2020/02/16 全球购物
JAVA和C++区别都有哪些
2015/03/30 面试题
explicit和implicit的含义
2012/11/15 面试题
房产销售经理职责
2013/12/20 职场文书
新闻专业毕业生求职信
2014/08/08 职场文书
参观邀请函范文
2015/02/02 职场文书
教你用python控制安卓手机
2021/05/13 Python
Python OpenCV之常用滤波器使用详解
2022/04/07 Python