模态对话框/省市二级联动/左右移动

一.模态对话框-css实现

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
<style>
    *{
        margin: 0px;
    }
    #div1{
        height: 2000px;
        background-color: aqua;
        position: fixed;
        /*用了fixed必须写width:100%*/
        width: 100%;
        top:0;
        left:0;
        z-index: 1000;

    }
    #div2{
        position: fixed;
        width: 100%;
        top:0;
        left: 0;
        right: 0;
        bottom: 0;
        background-color: rebeccapurple;
        opacity: 0.3;


    }
    #div3{
        height: 200px;
        width: 200px;
        background-color: aquamarine;
        position: absolute;
        top:50%;
        left: 50%;
        z-index:1003;
        /*z-index 属性设置元素的堆叠顺序。Z-index 仅能在定位元素上奏效(例如 position:absolute;)
        !Z-index 可用于将在一个元素放置于另一元素之后。*/
        margin-left: -100px;
        margin-top: -100px;
    }
    .hide{
        display: none;
    }
</style>
</head>
<body>
    <div id="div1">
        <input type="button" value="click" onclick="show()">
    </div>
    <div id="div2" class="hide"></div>
    <div id="div3" class="hide">
        <input type="button" value="cancel" onclick="cancel()">
    </div>

</body>
</html>
<script>
    function show() {
        var ele=document.getElementsByClassName("hide")
        for (var i=0;i<ele.length;i++){
            ele[i].classList.remove("hide");
        }

    }
    function cancel() {
        var ele=document.getElementsByClassName("hide")
        for(var i=0;i<ele.length;i++){
            ele[i].classList.add("hide")
        }

    }
</script>

二.省市二级联动

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <select id="province" onchange="func1(this)">
    </select>
    <select id="city">
    </select>
</body>
</html>
<script>
    data={"河北":["邯郸","廊坊"],"北京":["海淀","朝阳"],"江苏":["南京","扬州"]}
    var province=document.getElementById("province")
    var city=document.getElementById("city")
    // 给province这个 <select>添加<option>标签,在标签里面添加省份
    for(var i in data){
        var option_pro=document.createElement("option")
        option_pro.innerHTML=i
        province.appendChild(option_pro)
    }
    //触发province的时候,点击就会出现相应的城市名
    // self.selectedIndex表示选中标签的索引
    // self.options是<select>标签的属性
    function func1(self) {
        var choice=(self.options[self.selectedIndex]).innerHTML
        //方法一
        // var options=city.children
        // for(var k=0; k<options.length;k++){
        //     city.removeChild(options[k])
        //     k--
        // }
        //方法二
        city.options.length=0
        //city.options.length=0表示将city列表中的内容都清空
        for(var i in data[choice]){
            var option_city=document.createElement("option")
            option_city.innerHTML=data[choice][i]
            city.appendChild(option_city)
    }
    }

</script>

三.左右移动

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<style>
    #box-l,#choice,#box_r{
        display: inline-block;
    }

</style>
<body>
    <div id="box-l">
        <select id="left" multiple size="10">
            <option>选一</option>
            <option>选二</option>
            <option>选三</option>
            <option>选四</option>
            <option>选五</option>
            <option>选六</option>
        </select>
    </div>
    <div id="choice">
        <input type="button" value="------>" onclick="add()"><br>
        <input type="button" value="======>" onclick="addall()"><br>
        <input type="button" value="<------" ><br>
        <input type="button" value="<=======" ><br>
    </div>
    <div id="box_r">
        <select multiple size="10" id="right">
            <option>选七</option>
        </select>
    </div>
<script>
    var right=document.getElementById("right")
    var left=document.getElementById("left")
    function add() {
        var options=left.children;
        for(var i=0;i<options.length;i++){
            if(options[i].selected==true){
                // options[i].selected=false
                right.appendChild(options[i])
                // i--
            }
        }

    }
</script>
</body>
</html>

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值