全栈组第二次任务——js基础(网页时钟, 随机谚语, 计算器)

1.网页时钟

思路: 获取电脑当前的时间戳, 再用用字符串拼接的方式把数字显示在页面上。

JS代码如下:

let weekArr = ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"];
function addZero(num) {
    if (num >= 10) {
        return num;
    }
    else {
        return "0" + num;
    }
}
let dateDom = document.getElementById("date");
let weekDom = document.getElementById("week");
let timeDom = document.getElementById("time");

//更新时间
function updateTime() {
    let now = new Date();
    let date = now.getFullYear() + "-" + addZero(now.getMonth() + 1) + "-" + addZero(now.getDate());
    let week = weekArr[now.getDay()];
    let time = addZero(now.getHours()) + ":" + addZero(now.getMinutes()) + ":" + addZero(now.getSeconds());

    setText(dateDom, date);
    setText(weekDom, week);
    setText(timeDom, time);
}
function setText(dom, text) {
    dom.innerText = text;

}
setInterval(updateTime, 1000);//每秒更新一次
updateTime();

 效果图将会在后面给出。

2.随机谚语

思路: 把谚语内容放在一个数组里面, 再生成随机数来随机取出对应的内容, 设置按下刷新按键和浏览器页面的刷新键来生成随机谚语。

JS代码如下:

const p = document.querySelector('.saying p');
let span = document.querySelector('.saying span');
let refresh = document.querySelector('.refresh');
let content = document.querySelector('.content');
let author = document.querySelector('.author');

let sayingArr = [{ "content": "大家都是夜空中的飞行员, 抚慰孤独的是月亮", "author": "KKKiss_sky" },
{ "content": "清醒是一种细小而有耐性的英雄主义", "author": "麦克尤恩" },
{ "content": "一个人只拥有此生此世是不够的, 他还应该拥有诗意的世界", "author": "王小波" },
{ "content": "一个能够升起月亮的身体, 必然驮住了无数次日落", "author": "余秀华" },
{ "content": "人生的旅程就是这样, 用大把时间迷茫, 在几个瞬间成长", "author": "瑞卡斯" },
{ "content": "这个世界是唯一的, 人都要回家, 都要用布把星星盖好然后把灯碰亮", "author": "顾城" },
{ "content": "愿所有梦见过远方的人, 心有惊雷, 生似静湖", "author": "蔡崇达" },
{ "content": "我们的忧愁将会崩解, 灵魂将会穿梭如风", "author": "聂鲁达" },
{ "content": "嫉妒、抱负、自私或慷慨, 各有一方宇宙", "author": "加缪" },
{ "content": "现在的人不快乐, 是因为我们和别人越来越贴近, 却和自己越来越疏远", "author": "朱德庸" },
{ "content": "他认识了自己是如何的脆弱, 没有向善的决心, 也没有作恶的勇气", "author": "茅盾" },
{ "content": "所有的改变都是一种深思熟虑过后的奇迹, 每个瞬间奇迹都在发生", "author": "梭罗" },
{ "content": "不能听命与自己者, 就要受命于他人", "author": "尼采" },
]

let num = randomNum(0, sayingArr.length - 1);
refresh.onclick = function newquote() {
    let num = randomNum(0, sayingArr.length - 1);
    p.innerHTML = sayingArr[num].content;
    span.innerHTML = sayingArr[num].author;

}

p.innerHTML = sayingArr[num].content;
span.innerHTML = sayingArr[num].author;


function randomNum(min, max) {
    return min + Math.floor(Math.random() * (max - min));
}

function setText(dom, text) {
    dom.innerHTML = text;
}

效果图如下:

3.计算器

思路: 先获取对应按键, 并设置对应的功能, 最后使用JS中内置的eval()函数来进行数据的运算。

JS代码如下:

let numbers = document.querySelectorAll('.number');
        let operators = document.querySelectorAll('.operator');
        let result = document.querySelector('.result');
        let AC = document.querySelector('.ac');
        let DEL = document.querySelector('.del');
        let dot = document.querySelector('.dot');
        let isdot = true;
        let flag = false;
        let equal = document.querySelector('.equal');
        let retreat = document.querySelector('retreat');

        let display = "";

        for (i = 0; i < numbers.length; i++) {
            let number = numbers[i];
            number.onclick = function () {
                if (flag) {
                    display = "";
                    display += this.innerHTML;
                    result.innerHTML = display;
                    flag = false;
                }
                else {
                    display += this.innerHTML;
                    result.innerHTML = display;
                }
            }
        }
        for (i = 0; i < operators.length; i++) {
            let operator = operators[i];
            operator.onclick = function () {
                display += this.innerHTML;
                result.innerHTML = display;
                isdot = true;
                flag = false;
            }
        }
        AC.onclick = function () {
            display = "";
            result.innerHTML = '0';
        }
        dot.onclick = function () {
            if (display == "") {
                display += '0.';
                result.innerHTML = display;
            }
            if (display == "00") {
                display = "0";
                result.innerHTML = display;
            }
            if (isdot) {
                display += ".";
                result.innerHTML = display;
            }
            isdot = false;
        }
        equal.onclick = function () {
            display = eval(display);
            result.innerHTML = display;
            flag = true;
        }

        DEL.onclick = function () {
            let str = result.innerHTML.substr(0, result.innerHTML.length - 1);
            result.innerHTML = str;
            display = result.innerHTML;
        }

效果图如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值