bootstrap是一个不错的前端框架。这里写一下使用中遇到过的几点问题。
1.bootstrap的模态框modal的问题。 有时候会出现弹出模态框的时候遮罩把模态框遮住的情况。
出现这个问题的原因,多半是模态框的HTML代码放置位置不对。看官方文档。说明如下:
模态框的 HTML 代码放置的位置
务必将模态框的 HTML 代码放在文档的最高层级内(也就是说,尽量作为 body 标签的直接子元素),以避免其他组件影响模态框的展现和/或功能。
如果因为某种原因我们没办法把模态框的HTML代码放到最高层级内,那么我们可以把它移动过去。
jQuery
代码:需要的话请自行翻译成JavaSccipt代码。这个问题告诉我们 文档很重要。
2.在使用bootstrap的同时使用地图API的时候,可能会出现bootstrap与地图冲突,地图显示不出来的情况。这里的问题主要是在使用bootstrap的变体ZUI的时候遇到的。
由于bootstrap有很多自身的css。所以有时候会跟地图API产生一些冲突。导致地图或者地图里面的一些控件显示不出来。我之前用天地图WebAPI与ZUI的时候出现过地图加载不出来的情况。
解决问题的过程:
1.打开浏览器的开发者工具,看console控制台有无报错。无有。看network中的资源,地图相关的图片资源无加载。有。
3.在项目中,使用二分法一半一半地删除引用的js,css看是否这些js或css对天地图API造成了影响。锁定问题在zui.css。
4.在elements那里核对地图那个div下面的一些css。最后发现这一句。
ok,问题解决,zui与天地图webAPI的冲突出在 max-width:100%上。 修改成max-width:none; 地图成功显示。当然不是直接修改其源代码,而是在对应div下面把那个属性给覆盖掉。
后来做运行轨迹的时候,发现标注Maker和线line都显示不出来 的情况。经过与正常的对比。并且在控制台查询,发现标注和线是加载了的。只是没有成功显示而已。 原来是svg的问题。也是上面那句代码的影响。修改了就能正常显示了。
3.ZUI使用数据表格初始化不正常的问题。datatable.js。
ZUI中有一个很强大的数据表格插件。可以对数据表格第一列进行排序操作。
按照官方文档的说法,只要这一句就可以初始化表格插件,正常排序。
但是我们的小伙伴在使用的时候,发现这一句并没有任何作用,完全没有达到范例中的排序效果。于是把这个问题交给我解决。
一开始肯定是怀疑小伙伴哪个地方接口没调用对,然而,我自己试了一下,也没有什么用。
于是继续看接口,发现还有另一种初始化的方式,需要把数据自己拼成一个数组传递进去。
我就拼了一个,发现可以正常初始化,达到了预期效果。 但是如果每次调用这个东西都要手工拼那么一大个数组出来,显然是不划算的。那么问题出在哪里呢?
于是断点。进到源码里去,发现两种方式的不同在于一个有data传入,一个没有data传入。而在源码里对于没有data的情况下的处理是自己根据表格的内容来生成data。
于是我将它生成的最终data使用console.log(JSON.stingify(data))出来,再用这个生成的data,使用第二种方式传入data来初始化。发现不能正常使用功能。
于是将问题锁定在这个 生成的data上面。
通过对比范例中的data,以及生成的data,发现居然不一样。 范例中的data每一行的数据是一个数组包含的里面每一个格子里的内容,是直接量。而生成的data每一行的数据是一个数组包含的每一个格子的对象,对象中又包含了一些信息。这是差异所在。另外生成的表头数据也有一些差异。
为
修改:
为:
测试
成功初始化。排序可能正常。表格css正常。问题初步解决。
附:ZUI文档:http://zui.sexy/
bootstrap文档:http://v3.bootcss.com/javascript/
做前端的难免遇到各种各样的问题。不要慌,一步步来,掌握了科学系统的发现问题和解决问题的方法,就能很快的锁定问题进而解决问题了。