html+css+js实现一个简易备忘录

本文详细描述了一个包含HTML、CSS和JavaScript的网页项目,实现了用户登录、注册功能,展示了实时时间更新以及可添加和删除的备忘录列表,涉及表单验证和基本前端交互。
摘要由CSDN通过智能技术生成

网页设计与网站建设作业html+css+js

网页查看

在这里插入图片描述

实现要求

  • 用户可以登录注册
  • 点击注册后提示注册成功
  • 用户名或密码错误提示错误
  • 登录成功提示欢迎页面和自动跳转
  • 跳转后显示当前时间,每秒刷新
  • 备忘录可以添加删除且内容不能为空

代码

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title></title>
    <link href="./main.css" rel="stylesheet">
</head>

<body>
    <div class="wrap" id="wrap">
        <!-- 登录 -->
        <form class="login-form" id="login-form">
            <label>用户名:</label>
            <input type="text" class="login-username" id="login-username">
            <label>密码:</label>
            <input type="password" class="login-password" id="login-password">
            <button onclick="return login()">登录</button>
            <button onclick="return showRegister()">注册</button>
            <button onclick="reset()">重置</button>
        </form>
        <!-- 注册  -->
        <form class="register hide" action="" id="register">
            <h3>注册用户</h3>
            <label>用户名:</label>
            <input type="text" class="register-username" name="register-username" id="register-username">
            <label>密码:</label>
            <input type="password" class="register-password" name="'register-password" id="register-password">
            <button onclick="return register('msg')">注册</button>
            <p id="msg"></p>
        </form>
        <div class="container">
            <!-- 时间 -->
            <div id="showtime" style="width: 100%;text-align:center;"></div>
            <!-- 备忘录 -->
            <div class="memorandum hide" id="memorandum">
                <input type="text" id="title" placeholder="请输入标题">
                <textarea rows="5" id="content"></textarea>
                <div class="btns">
                    <button onclick="add()">确认</button>
                    <button onclick="resetCont()">重置</button>
                </div>

                <table border="1">
                    <tr>
                        <th>创建时间</th>
                        <th>标题</th>
                        <th>内容</th>
                        <th>操作</th>
                    </tr>
                    <tr>
                        <td>2019-07-23 19:12:33</td>
                        <td>1</td>
                        <td>备忘录1</td>
                        <td>
                            <a href="javascript:(0);">删除</a>
                        </td>
                    </tr>
                    <tr>
                        <td>2021-11-24 22:12:33</td>
                        <td>2</td>
                        <td>备忘录2</td>
                        <td>
                            <a href="javascript:(0);">删除</a>
                        </td>
                    </tr>
                </table>
            </div>
        </div>
    </div>

    <script>
        var reg_form = document.getElementById('register')
        var flag = false;
        var current = '';

        // 点击注册
        function showRegister() {
            if (flag) {
                flag = false;
                reg_form.className = 'hide register';
            } else {
                reg_form.className = 'register';
                flag = true
            }
            return false;
        }

        // 重置
        function reset() {
            document.getElementById("login-username").value = '';
            document.getElementById("login-password").value = '';
        }

        // 登录
        function login() {
            reg_form.className = 'hide register';
            /*创建表单对象*/
            var data = new Object;

            /*获取输入框数据*/
            data.login_username = document.getElementById("login-username").value;
            data.login_password = document.getElementById("login-password").value;
            if (localStorage.getItem('user')) {
                let username = JSON.parse(localStorage.getItem('user')).register_username;
                let password = JSON.parse(localStorage.getItem('user')).register_password;
                if (username !== data.login_username || password !== data.login_password) {
                    alert('用户名或密码错误!')
                    return false;
                }
            } else {
                alert('未注册')
                return false
            }

            var login_form = document.getElementById('login-form')
            login_form.className = 'hide'
            var showtime = document.getElementById('showtime')

            var second = 3;
            setInterval(function refer() {
                if (second === 0) {
                    getTime()
                    return false
                }
                showtime.innerHTML = `<h3>欢迎你,${data.login_username}</h3><br>
            <p>还剩${second}秒自动跳转</p>`
                second--;

            }, 1000); //启动1秒定时

            return false
        }

        // 注册
        function register(id) {
            /*创建表单对象*/
            var data = new Object;
            /*获取输入框数据*/
            data.register_username = document.getElementById("register-username").value;
            data.register_password = document.getElementById("register-password").value;

            /*判断账号*/
            if (data.register_username == '') {

                document.getElementById(id).innerHTML = "用户名不能为空";
                return false;
            }

            /*判断密码*/
            if (data.register_password == '') {
                document.getElementById(id).innerHTML = "密码不能为空";
                return false;
            }


            /*提交数据*/
            var str = JSON.stringify(data);
            // 本地浏览器缓存
            localStorage.setItem('user', str);
            alert("注册成功!");
            reg_form.className = 'hide register';

            return false;
        }

        // 获取当前时间
        function getTime() {
            var t = null;
            var h, m, s, y, mt, day;
            var showtime = document.getElementById('showtime')
            t = setTimeout(time(t), 1000); //開始运行

            // 显示备忘录模块
            var memorandum = document.getElementById('memorandum')
            memorandum.className = 'memorandum'
        }

        // 获取时间函数
        function time(t) {
            clearTimeout(t); //清除定时器
            dt = new Date();
            y = dt.getFullYear();
            mt = dt.getMonth() + 1;
            if (mt < 10) mt = '0' + mt
            day = dt.getDate();
            if (day < 10) day = '0' + day
            h = dt.getHours(); //获取时
            m = dt.getMinutes(); //获取分
            if (m < 10) m = '0' + m
            s = dt.getSeconds(); //获取秒
            if (s < 10) s = '0' + s
            showtime.innerHTML = `<h1>${h} : ${m} : ${s}</h1>`;
            current = `${y}-${mt}-${day} ${h}:${m}:${s}`
        }

        // 设置每列索引
        function setIndex() {
            var tr_dom = document.querySelectorAll('table tr')
            tr_dom.forEach((item, i) => {
                if (item.children[3].children[0]) {
                    item.children[3].children[0].onclick = function () {
                        // 删除备忘录
                        item.remove()
                    }
                }
            })
        }

        setIndex()

        // 添加备忘录
        function add() {
            var title = document.querySelector('#title').value
            var cont = document.querySelector('#content').value
            var t = document.querySelector("table tbody");
            var tr = document.createElement("tr");
            var td1 = document.createElement("td");
            var td2 = document.createElement("td");
            var td3 = document.createElement("td");
            var td4 = document.createElement("td");

            if (title === '') {
                alert('标题不能为空')
                return false;
            } else if (cont === '') {
                alert('内容不能为空')
                return false;
            }

            td1.innerHTML = current;
            td2.innerHTML = title;
            td3.innerHTML = cont;
            td4.innerHTML = `<a href="javascript:(0);" >删除</a>`;
            tr.appendChild(td1);
            tr.appendChild(td2);
            tr.appendChild(td3);
            tr.appendChild(td4);
            t.append(tr);
            setIndex()
        }

        // 重置备忘录
        function resetCont() {
            document.querySelector('#title').value = ''
            document.querySelector('#content').value = ''
        }
    </script>
</body>

</html>
* {
    margin: 0;
    padding: 0;
}

button {
    cursor: pointer;
    padding: 5px;
}

input {
    height: 25px;
}

.show {
    display: block !important;
}

.hide {
    display: none !important;
}

#msg {
    height: 30px;
    color: red;
    width: 100%;
    text-align: center;
}

.register {
    width: 200px;
    margin: 200px auto;
    background-color: #8ebc8e;
    padding: 21px 124px;
}

.register h3 {
    margin-bottom: 30px;
    text-align: center;
}

.register label {
    width: 100%;
}

.register input {
    width: 100%;
    margin: 15px 0;
}

.register button {
    display: block;
    margin: 10px auto;
}

.container {
    height: 100vh;
    width: 100%;
}

.memorandum {
    text-align: center;
    width: 400px;
    margin: 50px auto;
    display: grid;
}

.memorandum #title {
    margin: 20px 0;
}

.memorandum #content {
    margin: 0 0 20px;
}

.memorandum .btns {
    margin-bottom: 20px;
}

.memorandum table td:nth-child(3) {
    max-width: 130px;
    height: 25px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

更多文章源码查看

  • 11
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是一个简单的HTML+CSS+JS实现的日历,包含节假日的显示: HTML代码: ```html <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>日历</title> <link rel="stylesheet" type="text/css" href="calendar.css"> </head> <body> <div class="calendar"> <div class="header"> <span class="prev" onclick="prevMonth()"><</span> <span class="date" id="date"></span> <span class="next" onclick="nextMonth()">></span> </div> <table> <thead> <tr> <th>日</th> <th>一</th> <th>二</th> <th>三</th> <th>四</th> <th>五</th> <th>六</th> </tr> </thead> <tbody id="tbody"> </tbody> </table> </div> <script src="calendar.js"></script> </body> </html> ``` CSS代码: ```css .calendar { width: 300px; margin: 20px auto; border: 1px solid #ccc; box-shadow: 0 0 5px #ccc; font-size: 14px; font-family: Arial, sans-serif; } .header { background-color: #f0f0f0; text-align: center; padding: 10px; position: relative; } .header span { cursor: pointer; } .prev { position: absolute; left: 10px; top: 10px; } .next { position: absolute; right: 10px; top: 10px; } .date { font-weight: bold; } table { width: 100%; border-collapse: collapse; } thead th { background-color: #f0f0f0; border: 1px solid #ccc; padding: 5px; text-align: center; } tbody td { border: 1px solid #ccc; padding: 5px; text-align: center; } .today { background-color: #c0c0c0; } .holiday { color: red; } ``` JS代码: ```js var date = new Date(); var year = date.getFullYear(); var month = date.getMonth() + 1; var tbody = document.getElementById("tbody"); var dateEle = document.getElementById("date"); // 获取当前月份的天数 function getDaysInMonth(year, month) { return new Date(year, month, 0).getDate(); } // 获取当前月份第一天是星期几 function getFirstDayOfWeek(year, month) { return new Date(year, month - 1, 1).getDay(); } // 获取当前月份的所有日期 function getDates(year, month) { var daysInMonth = getDaysInMonth(year, month); var firstDayOfWeek = getFirstDayOfWeek(year, month); var dates = []; for (var i = 1; i <= daysInMonth; i++) { dates.push(i); } for (var i = 0; i < firstDayOfWeek; i++) { dates.unshift(""); } return dates; } // 获取指定日期的节假日 function getHoliday(year, month, day) { var holidays = { "0101": "元旦", "0214": "情人节", "0308": "妇女节", "0312": "植树节", "0401": "愚人节", "0501": "劳动节", "0601": "儿童节", "0701": "建党节", "0801": "建军节", "0910": "教师节", "1001": "国庆节", "1224": "平安夜", "1225": "圣诞节" }; var monthStr = (month < 10 ? "0" : "") + month; var dayStr = (day < 10 ? "0" : "") + day; var dateStr = monthStr + dayStr; if (holidays[dateStr]) { return holidays[dateStr]; } return ""; } // 显示指定年月的日历 function showCalendar(year, month) { var dates = getDates(year, month); var html = ""; for (var i = 0; i < dates.length; i++) { if (i % 7 === 0) { html += "<tr>"; } var date = dates[i]; var holiday = getHoliday(year, month, date); if (holiday !== "") { html += '<td class="holiday">' + date + '<br>' + holiday + '</td>'; } else if (date !== "") { if (year === new Date().getFullYear() && month === new Date().getMonth() + 1 && date === new Date().getDate()) { html += '<td class="today">' + date + '</td>'; } else { html += "<td>" + date + "</td>"; } } else { html += "<td></td>"; } if (i % 7 === 6) { html += "</tr>"; } } tbody.innerHTML = html; dateEle.innerHTML = year + "年" + month + "月"; } // 上一个月 function prevMonth() { month--; if (month < 1) { month = 12; year--; } showCalendar(year, month); } // 下一个月 function nextMonth() { month++; if (month > 12) { month = 1; year++; } showCalendar(year, month); } // 显示当前月份的日历 showCalendar(year, month); ``` 这个日历会显示当前月份的日期,并标出当天和节假日。你可以根据自己的需要修改CSS样式和节假日数据。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值