Day7-网页交互功能开发(前端)

1.界面构思

原型分析

image-20200506185135762

界面构思

标题栏

布局
标题设计
大标题:智慧教室管理系统
小标题:灯光,报警,风扇,温度,湿度,光照
样式设计
  • 背景色配置
  • 字体配置
    • 字体大小,格式,颜色

导航栏

布局
导航栏标题
提示用户用于智能管理使用的,用图片进行设计
导航标签
6个导航标签
3 个用于传感器
3 个用于控制
每一个标签,都有图标和文件进行展示
6个导航展示界面
3 个传感器
    显示传感器名称和传感器值
3 个控制
    显示控制名称和控制按钮
样式设计
当鼠标每点击一个导航标签,我都需要进行导航界面展示
前后台交互设计
  • 定时刷新传感器数据值(当用户点击传感器标签,需要把传感器值实时的展示给用户)
  • 控制下发(当用户点击控制标签,需要根据用户下发的命令进行控制实际的硬件,并且在主题栏进行动态展示)

主题栏

布局
  • 主题界面

    给用户展示一个智慧教室的图片
    
  • 风扇图标

    当用户开关风扇时,这个图标要进行动态效果
    
  • 报警器图标

    当用户开关报警器时,这个图标要进行动态效果
    
  • 灯光控制

    当用户开关灯泡时,我们教室的主界面要展示动态效果
    

素材设计

导航栏素材

image-20200506190542736

主题栏素材

image-20200506190908002

2.前端开发技术

开发工具

https://code.visualstudio.com/

image-20200508150635632

前端开发基本技能

html

image-20200508150801684

CSS

image-20200508150827505

JavaScript

image-20200508150930055

jQuery

http://jquery.cuishifeng.cn/index.html

image-20200508151139667

基于框架开发

BootStrap

https://www.bootcss.com/

image-20200508151227159

Vue

https://cn.vuejs.org/

image-20200508151332626

react

https://react.docschina.org/

image-20200508151419019

项目用到的技术

image-20200508151659390

3.Web页面布局

标题栏布局

image-20200508170259667

    <div class="header">
        <div class="content">
            <h1>智慧教室管理系统
                <small>温度、湿度、风扇、报警,光照
                </small>
            </h1>
        </div>
    </div>

导航栏布局

image-20200508172009405

<div class="body-left">
    <img src="images/left-title.png" style="margin:26px 0;">
    <div>
        <ul class="left-nav">
            <li class="line active">
                <a href="#title1" data-toggle="tab">
                    <img src="images/tubiao01.png" width="40px">温度传感器
                </a>
            </li>
            <li class="line">
                <a href="#title2" data-toggle="tab">
                    <img src="images/tubiao02.png" width="40px">湿度传感器
                </a>
            </li>
            <li class="line">
                <a href="#title3" data-toggle="tab">
                    <img src="images/tubiao03.png" width="40px">光照传感器
                </a>
            </li>
            <li class="line">
                <a href="#title4" data-toggle="tab">
                    <img src="images/tubiao04.png" width="40px">LED
                </a>
            </li>
            <li class="line">
                <a href="#title5" data-toggle="tab">
                    <img src="images/tubiao05.png" width="38px">风扇
                </a>
            </li>
            <li class="line">
                <a href="#title6" data-toggle="tab">
                    <img src="images/tubiao06.png" width="40px">报警器
                </a>
            </li>
        </ul>
        <div class="content">
            <div class="box fade in active" id="title1">
                <p>温度值<br /><span>
                        <lable id="temperature"></lable>
                    </span></p>
            </div>
            <div class="box fade" id="title2">
                <p>湿度值<br /><span>
                        <lable id="humidity"></lable>
                    </span></p>
            </div>
            <div class="box fade" id="title3">
                <p>光照值<br /><span>
                        <lable id="light"></lable>
                    </span></p>
            </div>
            <div class="box fade" id="title4">
                <h3>开关</h3>
                <img id="button01" src="images/an-off.png" onclick="anniu01()" />
            </div>
            <div class="box fade" id="title5">
                <h3>开关</h3>
                <img id="button02" src="images/an-off.png" onclick="anniu02()" />
            </div>
            <div class="box fade" id="title6">
                <h3>开关</h3>
                <img id="button03" src="images/an-off.png" onclick="anniu03()" />
            </div>
        </div>
    </div>

背景栏布局

image-20200508172257649

<div class="body-right">
    <img id="sgbj" class="sgbj" src="images/sgbj-off.png" />
    <img id="fan" class="fan" src="images/fan-off.png" />
    <img id="bg" src="images/sys-bg.jpg" />
    <audio id="alarm" src="music/alarm.mp3"></audio>
</div>

4.Web页面样式设计

外部文件引入

<link rel="stylesheet" type="text/css" href="css/bootstrap.css" />
<script src="js/jquery-1.11.0.min.js" type="text/javascript"></script>
<script src="js/bootstrap.min.js" type="text/javascript"></script>

标题栏样式设计

        h1 {
            padding: 0; 
            margin: 0 0 0 15px;
            font-size: 24px;
            color: #fff;
            line-height: 3em;
            font-weight: 100;
        }

        h1 small {
            font-size: 12px;
            color: #fff;
            margin-left: 10px;
        }

        .content {
            width: 1200px;
            margin: 0 auto;
        }

导航栏样式设计

.body-left {
    float: left;
    width: 311px;
    margin-right: 10px;
    text-align: center;
    color: #fff;
}

.body-left .left-nav {
    float: left;
    width: 180px;
    list-style: none;
    margin: 0;
    padding: 0;
    text-align: left;
}
.body-left .left-nav .line {
    background: #010146;
}

.body-left .left-nav .active {
    background: #020220;
}

.body-left .left-nav a {
    position: relative;
    display: block;
    line-height: 63px;
    text-decoration: none;
    color: #fff;
    padding-left: 60px;
}

.body-left .left-nav a img {
    position: absolute;
    top: 7px;
    left: 10px;
}

.body-left .content {
    float: left;
    width: 131px;
    background: #020220;
    height: 378px;
}

.body-left .content .box {
    position: absolute;
    margin: 20px 10px;
    width: 111px;
}

.body-left .content .box h3 {
    font-size: 16px;
    padding: 0;
    margin: 20px 0;
}

.body-left .content .box p {
    padding: 0;
    margin: 10px 0;
}

.body-left .content .box p span {
    font-size: 20px;
    color: #FFFF00;
}

.body-left .content .active {
    z-index: 10;
}

#button {
    width: 80px;
}

主题栏样式设计

.body-right {
    position: relative;
    float: left;
    width: 879px;
}

.body-right .sgbj {
    position: absolute;
    top: 135px;
    left: 12px;
    width: 50px;
}

.body-right .fan {
    position: absolute;
    top: 186px;
    left: 473px;
    width: 40px;
}

样式效果设计

bootstrap教程

https://www.runoob.com/bootstrap/bootstrap-tab-plugin.html

导航标签样式设计

<li class="line active">
    <a href="#title1" data-toggle="tab">
        <img src="images/tubiao01.png" width="40px">温度传感器
    </a>
</li>

导航标签内容设计

<div class="box fade in active" id="title1">
    <p>温度值<br /><span>
            <lable id="temperature"></lable>
        </span></p>
</div>

5.前后台交互设计

传感器数据获取

传感器数据初始化

$("#temperature").text("25℃");
$("#humidity").text("45%");
$("#light").text("1233lux");

ajax后台数据获取

//获取传感器数据
function ReadData() {
    $.ajax({
        url: "/DATA/Sensor",
        type: "get",
        cache: false,
        timeout: 2000,
        dataType: "json",
        success: function (data) {
            console.log(data);
            $("#temperature").text(data.temperature + "℃");
            $("#humidity").text(data.humidity + "%");
            $("#light").text(data.light + "lux");
        }
    })
}
        //命令交互
        function SendCmd(type, cmd) {
            $.ajax({
                url: "/CMD/" + type,
                type: "post",
                cache: false,
                timeout: 2000,
                data: cmd,
                success: function (data) {
                    console.log(data);
                }
            })


        }

定时刷新传感器数据

setInterval(ReadData, 5000);

按钮命令交互

灯光控制

function anniu01() {
    var anNiu = $("#button01")[0];
    var bG = $("#bg")[0];
    if (LightStatus) {
        //发送关闭灯光命令
        SendCmd("Light", "Off");
        anNiu.src = ("images/an-off.png");
        bG.src = ("images/sys-bg-off.jpg");
        bG = $("#fan")[0];
        if (FanStatus) {
            bG.src = ("images/bg-fan-on.png");
        }
        else {
            bG.src = ("images/bg-fan-off.png");
        }
        LightStatus = false;
    } else {
        //发送开启灯光命令
        SendCmd("Light", "On");
        anNiu.src = ("images/an-on.png");
        bG.src = ("images/sys-bg.jpg");
        bG = $("#fan")[0];
        if (FanStatus) {
            bG.src = ("images/fan-on.png");
        }
        else {
            bG.src = ("images/fan-off.png");
        }
        LightStatus = true;

    }
}

风扇控制

function anniu02() {
    var anNiu = $("#button02")[0];
    var bG = $("#fan")[0];
    if (FanStatus) {
        //发送关闭风扇命令
        SendCmd("Fan", "Off");
        anNiu.src = ("images/an-off.png");
        if (LightStatus) {
            bG.src = ("images/fan-off.png");
        }
        else {
            bG.src = ("images/bg-fan-off.png");
        }

        FanStatus = false;
    }
    else {
        //发送开启风扇命令
        SendCmd("Fan", "On");
        anNiu.src = ("images/an-on.png");
        if (LightStatus) {
            bG.src = ("images/fan-on.png");
        }
        else {
            bG.src = ("images/bg-fan-on.png");
        }

        FanStatus = true;
    }
}

报警控制

function anniu03() {
    var anNiu = $("#button03")[0];
    var bG = $("#sgbj")[0];
    var AS = $("#alarm")[0];
    if (AlarmStatus) {
        //发送关闭风扇命令
        SendCmd("Alarm", "Off");
        anNiu.src = ("images/an-off.png");
        bG.src = ("images/sgbj-off.png");
        AS.removeEventListener('ended', loop, false);
        AS.pause();
        AlarmStatus = false;
    }
    else {
        //发送开启风扇命令
        SendCmd("Alarm", "On");
        anNiu.src = ("images/an-on.png");
        bG.src = ("images/sgbj-on.gif");
        AS.addEventListener('ended', loop, false);
        AS.play();
        AlarmStatus = true;
    }
}
  • 20
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值