Bootstrap model模态框与百度地图API发生冲突时的解决办法

  在使用百度地图API的过程中,当我需要在infoWindow的按钮点击触发modal模态框时,就会发现bootstrap的模态框会失效。弄清modal的原理就可以通过自定义modal的css样式和modal方法来解决这个问题。Bootstrap modal模态框的原理是通过控制modal框div的visibility属性来变化来实现的,在初始状态modal div的visibility属性值为hidden,在页面上隐藏,当点击按钮触发(或别的事件)一个方法使div的visibility值变为visible从而达到显示的目的。

(1)我将infoWindow的content设置以及modal设置如下:当点击轨迹回放按钮时,会弹出一个模态框来显示datetimepicker控件。

<!-- 模态框(Modal) -->
<div id="modal-overlay">
    <div class="modal-data">
        <div class="modal-content">
            <div class="modal-header">
                <h3 class="modal-title" id="myModalLabel">
                    确认时间段
                </h3>
            </div>
            <div class="modal-body">
                <form action="playback.html" class="form-horizontal"  role="form" id="form1">
                    <div class="form-group row">
                        <label for="start_time" class="col-md-4 col-sd-4">开始时间</label>
                        <div class="input-group date form_datetime col-md-8 col-sm-8"  data-date-format="yyyy-mm-dd hh:ii" data-link-field="dtp_input1">
                            <input class="form-control" id="start_time" name="start_time" size="16" type="text" value="" readonly >
                        </div>
                    </div>
                    <div class="form-group row">
                        <label for="end_time" class="col-md-4 col-sd-4">结束时间</label>
                        <div class="input-group date form_datetime col-md-8 col-sm-8" data-date-format="yyyy-mm-dd hh:ii" data-link-field="dtp_input2">
                            <input class="form-control" id="end_time" name="end_time" size="12" type="text" value="" readonly >
                        </div>
                    </div>
                    <div class="form-group text-center">
                        <button type="submit" class="btn btn-primary">
                            查询
                        </button>
                        <button type="button" class="btn btn-default"
                                onclick="closeModal()">关闭
                        </button>

                    </div>
                </form>
            </div>

        </div><!-- /.modal-content -->

</div><!-- /.modal -->

  点击事件的js代码如下:

 1 var content = "<div class=‘infoWindow‘ ><p><b>" + number + "</b></p>" + "<p>" + datetime + "</p>" + "<p>" + stateHead + statehtml + "</p>" + "<p>里程:" + mileage + "km</p>"  + "<p><button id=" + track_id[i] + " onclick="+c+"</button>&nbsp;<button id=" + playback_id[i] + " onclick=‘modal(this.id)‘>轨迹回放</button></p></div>";
 2 function modal(id) {
 3     var e1 = document.getElementById(‘modal-overlay‘);
 4     e1.style.visibility = (e1.style.visibility == "visible") ? "hidden" : "visible";
 5     var car_index = parseInt(id.substr(1));
 6
 7     obj_id = carData[car_index].obj_id;
 8     obj_name=carData[car_index].obj_name;
 9     sessionStorage.obj_name=obj_name;
10     sessionStorage.obj_id=obj_id;
11 }

但此时还并没有bootstrap中的那种模态框的绚丽动画效果。

(2)然后将modal框以及modal内容的div的css样式如下:

将modal框的visibility设置为hidden。

#modal-overlay {
    visibility: hidden;
    position: absolute;   /* 使用绝对定位或固定定位  */
    left: 0px;
    top: 0px;
    width:100%;
    height:100%;
    text-align:center;
    z-index: 1000;
    background-color: #333;
    opacity: 0.95;   /* 背景半透明 */
}
/* 模态框样式 */
.modal-data{
    width:90%;
    margin: 20px auto;
    background-color: #fff;
    border:1px solid #000;
    padding:2px;
    text-align:center;
}

  

  (2)这时虽然以及实现了modal的效果但我们发现,其实还没有bootstrap中modal框的那种从屏幕上方掉下来的动画效果,这时可以添加css3过渡样式来实现同样的效果,在#modal-overlay的样式中添加,

-webkit-transition:top 2s; /* Safari and Chrome */

在modal()中添加e1.style.top=20px;

同样的,自定义的modal模态框还可以添加其他各种效果。

时间: 2024-08-03 03:14:25

Bootstrap model模态框与百度地图API发生冲突时的解决办法的相关文章

zbb20171215 bootstrap model 模态框

1.页面中添加modal <!-- 模态框(Modal) --> <div class="modal fade" id="showModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> <div class="modal-dialog

模态框与 天地图地图控件冲突

界面采用bootstrap, 弹出模态框时,天地图的地图控件却悬浮在模态框之上,并可以继续响应操作,如图所示: 没有找出较好的解决方法,最后通过在显示模态框时将地图控件隐藏,不显示模态框时再显示地图控件的方法实现. 示例代码如下: $("#modalId").on("show.bs.modal", function () { control1.hidden(); control2.hidden(); filterControl.hidden(); }); $(&qu

百度地图API位置偏移的校准算法

转自极客人原文 百度地图API位置偏移的校准算法 在开始使用百度地图API进行开发时可能会遇到一件相当奇怪的事情,使用百度定位的经纬度在地图上显示相当不准确,这一问题我在微信开发和安卓开始时都遇到过.第一次使用百度地图api获取位置并在地图上显示是在微信开发的时候,那是不知道具体原因无奈在微信获取的地理位置上加了一个偏移量进行校准,虽能勉强解决,但是不太准确.后来在安卓开始也同样遇到了这个问题,才发现百度地图API定位偏移已经不是一个偶然问题了. 百度地图API定位偏移的原因 以下来自互联网:

使用百度地图API制作线路轨迹播放

1.使用百度地图API制作轨迹播放: 可应用于车辆跟踪.行驶线路回放.跑步行程的记录等地图应用场景, 1.1绘制静态轨迹图 获取多个轨迹点point(必须包含经度.纬度) 使用polyline对象依次连接相邻的2个点(注意polyline的个数比point的少1) 1.2绘制动态轨迹图(固定间隔时间) 每隔500毫秒读取一个轨迹点,实现a,b两个功能 a增加一条polyline b将marker从先前的point移到当前点 主方法使用setTimeout方法迭代来实现动态循环 Polyline在

百度地图API二次开发小经验分享

最近在做一个物流后台系统,需要用地图来把订单地址展示出来,需要在地图上批量框选坐标进行排单,需要看到配送员的实时位置等等功能. 在高德地图.腾讯地图.百度地图三者间,我选了百度地图,没有原因,个人偏好,因此我也不知道高德地图和腾讯地图好不好用.反正到目前为止,我所想到的功能,百度都有对应的接口提供,点个赞. 一.关于百度地图的JavaScript API 在网站上通过js直接来调用百度的api,使用方法很简单,可以参考官网:http://developer.baidu.com/map/index

数据视化Echarts+百度地图API实现市县区级下钻

开始 这两天公司有个页面需要做数据可视化的展示,数据视化采用的是Echarts+百度地图API做展示,需要用到县级区级下钻的一个联动效果发现网上关于Echarts做到县区级下钻的资料很少,有的话也不是很详细,对于刚接触Echarts的让人来说可能有些搞不明白,在这里我把Echarts下钻开发过程中总结的知识分享给大家,也能使自己加深印象,当然啦,对于一些在软件行业折腾了几年的老油条来说,这些都是一些非常基础的东西.但是还是希望能帮助到那些刚接触Echarts遇到类似问题需要帮助的人.如果哪里写的

百度地图API

本文我将从如何使用地图API(本文以百度为例,谷歌类似)开始,往后的扩展行的内容详见后续文章.1.打开链接http://developer.baidu.com/map/jshome.htm  这里有很多DEMO,或者你直接百度搜索“百度地图API”,第一个就是.进入后有很多方向供你选择,由于现在开源的地图API都是JS脚本写的,所以我上面的链接就只针对JAVASCRIPT进行介绍.  即使是编程菜鸟(像我这种),也知道当你在任何一个开发环境下写代码时,都需要加入头文件,例如,你要在C++里使用c

吐槽贴:百度地图 api 封装 的实用功能 [源码下载]

ZMap 类 功能介绍 ZMap 是学习百度地图 api 接口,开发基本功能后整的一个脚本类,本类方法功能大多使用 prototype 原型 实现: 包含的功能有:轨迹回放,圈画区域可编辑,判断几个坐标是否在一个圆圈内,生活服务查询,从经纬度获取地址信息,地图工具包括测距,获取面积,以积打印地图,地图全屏,实时路况,坐标是否在polygon区域内,打车方案,经过中间途经点,添加地图控件: 地图界面: ZMap.js 部分代码说明 /** * 百度地图 api 功能整合 * @author Glo

如何在网页中调用百度地图api

我想在木有提供地图接口的年代,前端工程师门要么只写上企业的具体地址,要么就是用一张标有自己位置的地图图片.但是现在不一样啦!为了增强用户体验,谷歌,甚至百度都很开放了,你可以在他们的网站上找到地图接口,通过进行直接的调用就可以了. 下面我来教你怎么在网页中用好百度地图,当然了,你也可以去百度地图网站去查找相关的技术资料. 首先你需要进入到百度地图官网http://developer.baidu.com/map/ .因为我们是用的脚本进行加载的,所以我们要选择上图中的第一个"javascript