2021-06-22

任务一:生成广告图片
首先,可以用HTML+CSS+JavaScript在页面生成一幅广告图片

<style>
    img {
        width: 480px;
        height: 270px;
        position: absolute;
        left: 50%;
        top: 50%;
        margin-left: -240px;
        margin-top: -135px;
    }
</style>
<div>
    <img src="image/1.jpeg" id="img">
</div>

代码预览图:
c4-0
其次,用javascript数组在页面上放置多个图片,并动态计算不同广告位置的布局,实现水平间距布局。

<style>
    body{
        margin: 0;
    }
</style>
<script>
    var imgArr=new Array("image/0.jpeg","image/1.jpeg","image/2.jpeg","image/3.jpeg","image/4.jpeg");
    var window_width=1920;
    var mar=40;
    var mor=mar;
    for (var i in imgArr){
        var img_width=(window_width-mar*(imgArr.length+1))/imgArr.length;
        window.document.write(`<img src="${imgArr[i]}" style="width: ${img_width}px;margin:0 ${mar}px 0 ${mor}px;">`);
        if (mor===mar){
            mor=0;
        }
    }
</script>

在这里插入图片描述
到此为止只是实现了间距相等,当浏览器的页面大小变化时,并不能保持间距不变。
修改后的代码:

<style>
    body{
        margin: 0;
    }
</style>
<script>
    window.onresize=imageArray();
    function imageArray() {
        var imgArr=new Array("image/0.jpeg","image/1.jpeg","image/2.jpeg","image/3.jpeg","image/4.jpeg");
        var window_width=document.documentElement.clientWidth
        var mar=40;
        var mor=mar;
        for (var i in imgArr){
            var img_width=(window_width-mar*(imgArr.length+1))/imgArr.length;
            window.document.write(`<img src="${imgArr[i]}" style="width: ${img_width}px;margin:0 ${mar}px 0 ${mor}px;">`);
            if (mor===mar){
                mor=0;
            }
        }
    }
</script>

效果图1:
在这里插入图片描述
效果图2:
在这里插入图片描述
定时轮播图片:
实现代码:

<style>
    img{
        width: 480px;
        height: 270px;
        position: absolute;
        left: 50%;
        top: 50%;
        margin-left: -240px;
        margin-top: -135px;
    }
    .box{
        width: 480px;
        height: 280px;
        position: absolute;
        left: 50%;
        top: 50%;
        margin-left: -55px;
        margin-top: +95px;
    }
</style>
<div class="">
    <img src="image/1.jpeg" id="img">
    <div class="box">
        <input id="radio1" type="radio" name="small" checked="checked"/>
        <input id="radio2" type="radio" name="small"/>
        <input id="radio3" type="radio" name="small"/>
        <input id="radio4" type="radio" name="small"/>
        <input id="radio5" type="radio" name="small"/>
    </div>
</div>
<script>
    window.onload=function () {
        var changeSecond=1000*3;
        var changeIndex=0;
        var imgSrc=document.getElementById('img');
        var radio=document.getElementsByName('small');
        function changeImg() {
            if (changeIndex>4){
                changeIndex=0;
            }
            imgSrc.src='image/'+changeIndex+".jpeg";
            radio[changeIndex++].checked='checked';
            // changeSecond++;
        }
        v=window.setInterval(changeImg,changeSecond);
    }
</script>

在这里插入图片描述

任务二:程序逻辑训
任务扩展:多级联动菜单

代码实现如下:

<?php
?>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<!-- jQuery and JavaScript Bundle with Popper -->
<script src="js/jquery-3.6.0.min.js"></script>
<script src="js/bootstrap.bundle.min.js"></script>
<link href="css/bootstrap.min.css" rel="stylesheet">
<!--<script src="china-area-data/data.js"></script>-->
<div class="container">
    <form id="china">

        <label for="location_depth"></label>
        <input type="text" hidden id="location_depth" value="1">
    </form>
    <button class="btn-block btn alert-warning">submit</button>
    <script>
        function add_select_location(data,location,depth=0) {
            // id of append select
            var fa=location+'_'+depth;
            // append select item
            $(`#china`).append(`<select id='${fa}' name='${depth}' class="custom-select alert-success" required="required"><option selected></option></select>`);
            // add option
            for(var key in data[`${location}`]){
                var value1=data[`${location}`][`${key}`];
                $(`#${fa}`).append(`<option id='${key}'>${value1}</option>`);
            }
            var counter=0;
            $(`#${fa}`).change(function () {
                var value=$(`#${fa} option:selected`).attr('id');
                var location_depth=$('#location_depth').val();
                if (value===undefined){
                    for (var i=1;i<=location_depth;i++){
                        $(`select[name="${i}"]`).remove();
                    }
                    $('#location_depth').attr('value',1);
                }
                if (data.hasOwnProperty(value)){
                    if (counter===1){
                        var val=$(`#${fa}`).attr('name');
                        ++val;
                        for (var i=val;i<=location_depth;i++){
                            $(`select[name="${i}"]`).remove();
                        }
                        add_select_location(data,value,val);
                        $('#location_depth').attr('value',++val);
                    }else {
                        add_select_location(data,value,++depth);
                        counter++;
                        $('#location_depth').attr('value',++location_depth)
                    }
                }
            });
        }
        $.get("china-area-data/data.json",function(json,status){
            if (!status){
                alert('lost data.json');
            }
            var jsonStr = JSON.stringify(json);
            var data=eval('('+jsonStr+')');
            add_select_location(data,'86');
        });
    </script>
</div>

使用了jquerybootstrap 和来自airyland的china-area-data

效果图1:
在这里插入图片描述效果图2:
在这里插入图片描述

效果图3:
在这里插入图片描述
效果图4:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值