JS 实现显示和隐藏div(以百度地图为例)

主要参考的文章:https://my.oschina.net/xsh1208/blog/215811,https://zhidao.baidu.com/question/568774688.html

隐藏和显示div的方式有两种:

方式1:隐藏后仍占有页面空间,显示空白
div的visibility可以控制div的显示和隐藏,但是隐藏后页面显示空白.
style="visibility: none;"
document.getElementById("typediv1").style.visibility="hidden";//隐藏
document.getElementById("typediv1").style.visibility="visible";//显示

方式2:隐藏后释放占用的页面空间
通过设置display属性可以使div隐藏后释放占用的页面空间.
style="display: none;"
document.getElementById("typediv1").style.display="none";//隐藏
document.getElementById("typediv1").style.display="";//显示

注意:
使用第二方式更人性化,但是,用div.style.display="none"隐藏会引起,div里面的东西休眠,里面的事件就不响应了。

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
    <style type="text/css">
        body, html {width: 100%;height: 100%;margin:0;font-family:"微软雅黑";}
        #allmap{width:100%;height:80%;}
        p{margin-left:5px; font-size:14px;}
    </style>
    <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=您的密钥"></script>
    <script type="text/javascript" src="js/jquery-2.1.3.min.js"></script>    <!-- 引入jQuery -->
    <title>JS 实现显示和隐藏div(以百度地图为例)</title>
</head>
<body>
    <div id="allmap"></div>
    <p>点击地图右上角的图标,实现显示或隐藏div内容</p>
</body>
</html>
<script type="text/javascript">
// 百度地图初始化
var map = new BMap.Map("allmap");
map.centerAndZoom(new BMap.Point(116.3964,39.9093), 15);
map.enableScrollWheelZoom();

//添加自定义的覆盖物
function ZoomControl_Center(){
    this.defaultAnchor = BMAP_ANCHOR_TOP_RIGHT;
    this.defaultOffset = new BMap.Size(20, 10);
}
ZoomControl_Center.prototype = new BMap.Control();
ZoomControl_Center.prototype.initialize = function(map){
    var div = document.createElement("div");
    div.innerHTML = "<img src=‘images/profle.png‘ width=‘32px‘ height=‘32px‘>";
    div.style.cursor = "pointer";

    div.onclick = function(){        //添加响应事件
        var x = document.getElementById("userInfoDiv");
        //方式1,
/*         if(x.style.display=="none"){
            x.style.display="block";                  //显示
        }else{
            x.style.display="none";                   //隐藏
        } */

        //方式2,原生简写(三元运算)
        //x.style.visibility=x.style.visibility=="hidden"?"visible":"hidden";

        //方式3,jquery
        if($("#userInfoDiv").css("display")==‘none‘){//如果是隐藏的
            $("#userInfoDiv").css("display","block");//display属性设置为block(显示)
        }else{
            $("#userInfoDiv").css("display","none");
        }
    }
    map.getContainer().appendChild(div);
    return div;
};
map.addControl(new ZoomControl_Center());

openUserInfoDiv();

//覆盖层显示内容
function openUserInfoDiv(){
    var newDiv = document.createElement("div");
    newDiv.id = "userInfoDiv";
    newDiv.style.position = "absolute";
    newDiv.style.zIndex = "9999";

    newDiv.style.width ="150px";
     newDiv.style.top = "50px";
    newDiv.style.right = "0px";

    newDiv.style.background = "#ffffff";
    newDiv.style.opacity = "0.9";
    newDiv.style.padding = "5px";
    newDiv.style.display="none";          //隐藏
    //newDiv.style.visibility="hidden";   //隐藏

    var routeName = "测试路线";
    var empName = "张三";
    var taskTimeStart = "2016-12-19 19:00:00";

    var HTMLstr = "<div style=‘background:#1868bd;color:#fff; ‘>"
        +"<span style=‘margin:10px;padding:0.2em 0;line-height:1.5;font-size:15px‘><b>"+routeName+"</b></span></div>"
        +"<ul style=‘margin:0px;padding:15px;color:#1868bd;line-height:1.2;‘>"
        +"<li><font size=‘1.5‘><b>执行人员:"+empName+"</b></font></li>"
        +"<li><font size=‘1.5‘><b>执行时间:</b></font></br><font size=‘1‘ color=‘#000‘>"+taskTimeStart+"</font></li>"
        +"</ul>";
    newDiv.innerHTML = HTMLstr;

    document.getElementById("allmap").appendChild(newDiv);
}
</script>

简单介绍:

1.百度地图初始化,注意添加百度地图的秘钥key;

2.添加自定义的覆盖物,用于点击事件;

3.添加覆盖层,用于显示内容;

4.添加覆盖物的响应事件

时间: 2024-10-14 11:20:46

JS 实现显示和隐藏div(以百度地图为例)的相关文章

js简单显示和隐藏div,触发超链接,动态更改button值,setInterval()简单使用,jquery easyui弹出框简单使用 .

js简单显示和隐藏div 01.<!DOCTYPE html> 02.<html> 03.<head> 04.<meta charset="UTF-8"> 05.<title>Insert title here</title> 06.<script type="text/javascript"> 07. window.onload=function(){ 08. document.g

JavaScript网站设计实践(四)编写about.html页面,利用JavaScript和DOM,选择性的显示和隐藏DIV元素

一.现在我们在网站设计(三)的基础上,来编写about.html页面. 这个页面要用到的知识点是利用JavaScript和DOM实现选择性地显示和隐藏某些DIV about.html页面在前面我们为了看导航栏菜单项高亮显示时,已经写了部分内容,只是那时写的代码没有实现div显示和隐藏,现在就在之前编写的基础上,为页面添加显示和隐藏div的效果. 没有写JavaScript之前看到的效果: 实现后的效果图: 这个就是我们现在要做的效果. 1.背景: 我们在about.html页面中写了一个ul列表

JavaScript DOM操作案例点击按钮通过类样式的方式显示跟隐藏div

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title></title> <style> div { width: 300px; height: 300px; background-color: pink; } .cls { display: none; } </style> </h

问题:关于坛友的一个定时重复显示和隐藏div的实现

需求:打开页面只看到DIV2,等完秒数之后在显示DIV3.手动关闭DIV3后在重新数秒 我设置的间隔时间是3秒,代码如下: html+css: 1: <!DOCTYPE HTML> 2: <html> 3: <head> 4: <meta http-equiv="content-type" content="text/html;charset=utf-8"> 5: <title>Test</title

第十二篇 JavaScript(简称JS) 实现显示与隐藏

JavaScript JavaScript简称JS.JS是脚本语言,它是一种轻量级的编程语言,是可以插入HTML页面的编程代码,几乎所有现代浏览器都是支持的. 理论老师不行,我就抄袭手册上的一些关键字段给大家,然后我们写代码来学习. JS也和CSS一样,是可以外部引用的,但是CSS用的是link标签,而JS用的则是script标签,和CSS一样,要写在head标签里哦,引用文件都要写在这里的. 我们来写一个看看: <head lang="en"> <script sr

jquery点击区域显示或隐藏DIV,点击非该DIV的地方隐藏该DIV

<div class="Content_top"> <div class="Reserve"> <h3><span class="current">散租自驾</span><span>商务代驾</span><span> </span><span> </span><span> </span><

显示或隐藏div

代码来源于博客,如有侵权,请联系我! ASP.NET中TextBox控件设置ReadOnly="true"H或Enabled=false后台取不到值 当TextBox设置了ReadOnly="true" 后,要是在前台为控件添加了值,后台是取不到的,值为"空" . 方法一:不设置ReadOnly属性,通过onfocus=this.blur()来模拟,如下: <asp:TextBox ID="TextBox1" runat

JQuery - 垂直显示隐藏DIV

效果: 代码: <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebApplication1.WebForm1" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <

React 点击按钮显示div与隐藏div,并给div传children

最近做了一个react的点击按钮显示与隐藏div的一个小组件: [筛选]组件FilterButton import React,{Component} from 'react'; import {render} from 'react-dom'; export default class FilterButton extends Component{ constructor(props){ super(props); this.state = { clickProps:{ display: 'n