热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

用JavaScript实现的太空人手表

用JavaScript实现的太空人手表-JS写的太空人手表,没有用canvas、svg。主要用几个大的函数来动态显示时间、天气这些。天气的获取用到了AJAX请求。代码中有详细的注释

JS写的太空人手表,没有用canvas、svg。
主要用几个大的函数来动态显示时间、天气这些。
天气的获取用到了AJAX请求。
代码中有详细的注释,可以通过看注释了解。
![在这里插入图片描述](https://img-blog.csdnimg.cn/2021033118492454.gif#pic_center

主要是JS部分

setInterval(function time () {   //因为要实时获取时间,索引用了一个定时器,每隔10ms就会执行一次time这个函数
            var data=new Date()
            var hour=data.getHours(); //获取当前时间:时分秒
            var min=data.getMinutes()
            var second=data.getSeconds()
            if(second<10){            //为了美观,个位数的时间就会在前面添加一个数字0。
                second="0"+second;
            }
            if(min<10){
                min="0"+min;
            }
            if(hour<10){
                hour="0"+hour
            }
            var p=document.getElementById("p")
            p.innerText=hour+":"+min+":"+second  //把用JS实时获取的时间插入到p标签。
         },10)

        
         //获取当前天气,并动态显示
         var xmlhttp;
         function wether(){
            $.ajax({        //用jqurey封装的AJAX来从网站获取天气数据
                url:"http://wthrcdn.etouch.cn/weather_mini?city=成都", //查找天气的网站,
                dataType:"json",   //预期服务器返回的数据类型。
                async:false,   //设为同步请求,将锁住浏览器,用户的其他操作必须等请求完成才能进行
            success:function(data){    //必须是function类型的参数,如果请求成功就会调用这个函数,
                    function tianqi(){ // 闭包函数  函数外部可以访问内部的变量
                        xmlhttp=data;
                        return xmlhttp;
                    };
                tianqi();
                }
            })
            console.log(xmlhttp);
    }
    setInterval(wether(),1000);  //因为是显示实时温度所以就用定时器,每个1s调用一次函数。
    
    var high=xmlhttp.data.forecast[0].high  //获取最高气温  数据类型是: 高温 26℃
    var low=xmlhttp.data.forecast[0].low;   //获取最低气温  数据类型是: 低温 16℃
    high=high.replace(/[高温 ]/g,"")        //利用正则表达式把 “高温 ”去除 
    low=low.replace(/[低温 ]/g,"")          //利用正则表达式把 “低温 ”去除 
    var now=xmlhttp.data.wendu;              //获取当前的温度
    var img=["./太阳.png","./多云.png","./霾.png","./下雨.png"] //该数组保存的是天气的图标的地址名
    var weather=xmlhttp.data.forecast[0].type;   //获取天气的类型  例如:小雨  多云  阴
    
    function tem(){
        let temhigh=document.getElementById("tem-high");
        let temlow=document.getElementById("tem-low");  //获取准备用来保存最高温和最低温的标签
        temlow.innerText=low                            //往这个标签中插入数据
        temhigh.innerText=high
        let wh=document.getElementById("weather");     //获取准备用来保存天气类型的标签
        wh.innerText=weather
        var whnow=document.getElementById("now");      //保存现在的温度
        whnow.innerText=now+"℃"
    }
   setInterval(tem(),1000);      //因为是显示实时温度所以就用定时器,每个1s调用一次函数。

    //天气图片动态改变
   function whimg(){
       let sun=document.getElementById("sun");  //获取用来保存天气图片的img标签。
       if(weather=="多云"||weather=="阴"){       //weather是从网站获取的天气类型。
           sun.src=img[1];                      //然后用if判断里面是否等于 “多云”、“阴”,如果相等,就把img标签中的src地址赋值位之前的img数组的值 
       }                        //下面依次类推
       else if(weather=="霾"){
            sun.src=img[2];
            
        }
            else if(/[雨]/g.test(weather)){
                sun.src=img[3]
            }
            else{
                sun.src=img[0]
            }
   }
   setInterval(whimg(),1000)   

   //显示月份 日期  星期的函数
   function shijian(){    
       let date=new Date();   
       let month=date.getMonth()+1;  //用来显示月份  因为date.getMonth()获取到的月份要少一个月,所以就加1。
       let day=date.getDate();         //获取日
       let week=date.getDay();          //获取星期几  但是是阿拉伯数字
       let timer=document.getElementById("time");

       let number=["一","二","三","四","五","六","日"];  //因为星期显示阿拉伯数字 所以用if来改变阿拉伯数字,显示大写的数字
       if(week==1){
            week=number[0];
            timer.innerHTML=month+"月"+day+"日"+"
"
+"星期"+week; }else if(week==2){ week=number[1]; timer.innerHTML=month+"月"+day+"日"+"
"
+"星期"+week; }else if(week==3){ week=number[2]; timer.innerHTML=month+"月"+day+"日"+"
"
+"星期"+week; }else if(week==4){ week=number[3]; timer.innerHTML=month+"月"+day+"日"+"
"
+"星期"+week; }else if(week=5){ week=number[4] timer.innerHTML=month+"月"+day+"日"+"
"
+"星期"+week; }else if(week==6){ week=number[5]; timer.innerHTML=month+"月"+day+"日"+"
"
+"星期"+week; }else { timer.innerHTML=month+"月"+day+"日"+"
"
+"星期"+week; } } shijian();

推荐阅读
  • 作为一名CSS初学者,我在博客园中尝试通过CSS美化页面,特别是为超链接添加图标,以提升阅读体验。本文将分享如何使用CSS和字体图标库来实现这一功能。 ... [详细]
  • SVG 动态滤镜实现水面波动效果
    探讨如何使用SVG滤镜技术创建动态的水面波动效果,包括HTML、CSS和JavaScript代码示例。 ... [详细]
  • JavaScript 基础语法指南
    本文详细介绍了 JavaScript 的基础语法,包括变量、数据类型、运算符、语句和函数等内容,旨在为初学者提供全面的入门指导。 ... [详细]
  • Python处理Word文档的高效技巧
    本文详细介绍了如何使用Python处理Word文档,涵盖从基础操作到高级功能的各种技巧。我们将探讨如何生成文档、定义样式、提取表格数据以及处理超链接和图片等内容。 ... [详细]
  • JavaScript 中创建对象的多种方法
    本文详细介绍了 JavaScript 中创建对象的几种常见方式,包括对象字面量、构造函数和 Object.create 方法,并提供了示例代码和属性描述符的解释。 ... [详细]
  • 本文介绍如何使用 Angular 6 的 HttpClient 模块来获取 HTTP 响应头,包括代码示例和常见问题的解决方案。 ... [详细]
  • 实用正则表达式有哪些
    小编给大家分享一下实用正则表达式有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下 ... [详细]
  • 云函数与数据库API实现增删查改的对比
    本文将深入探讨使用云函数和数据库API实现数据操作(增删查改)的不同方法,通过详细的代码示例帮助读者更好地理解和掌握这些技术。文章不仅提供代码实现,还解释了每种方法的特点和适用场景。 ... [详细]
  • yikesnews第11期:微软Office两个0day和一个提权0day
    点击阅读原文可点击链接根据法国大选被黑客干扰,发送了带漏洞的文档Trumps_Attack_on_Syria_English.docx而此漏洞与ESET&FireEy ... [详细]
  • 基于JQuery实现的评分插件
    本文介绍了一个使用JQuery创建的交互式评分控件。当用户将鼠标悬停在星星上时,左侧的星星会变为实心,右侧保持空心,并显示对应的评分等级;移开鼠标后,所有星星恢复为空心状态。 ... [详细]
  • 在项目部署后,Node.js 进程可能会遇到不可预见的错误并崩溃。为了及时通知开发人员进行问题排查,我们可以利用 nodemailer 插件来发送邮件提醒。本文将详细介绍如何配置和使用 nodemailer 实现这一功能。 ... [详细]
  • 本文介绍如何从JSON格式的文件中提取数据并将其分配给Bash脚本中的变量。我们将探讨具体的命令和工具,帮助你高效地完成这一任务。 ... [详细]
  • 深入解析Java虚拟机(JVM)架构与原理
    本文旨在为读者提供对Java虚拟机(JVM)的全面理解,涵盖其主要组成部分、工作原理及其在不同平台上的实现。通过详细探讨JVM的结构和内部机制,帮助开发者更好地掌握Java编程的核心技术。 ... [详细]
  • 为了解决不同服务器间共享图片的需求,我们最初考虑建立一个FTP图片服务器。然而,考虑到项目是一个简单的CMS系统,为了简化流程,团队决定探索七牛云存储的解决方案。本文将详细介绍使用七牛云存储的过程和心得。 ... [详细]
  • 经过一段时间的学习与实践,我已经使用D3.js完成了一些项目。鉴于中文D3教程稀缺,而英文资料虽丰富却对英语水平有一定要求,特此撰写一系列D3实战文章,旨在通过具体案例(如统计数据可视化、地图信息展示等)分享D3的使用技巧,促进技术交流。 ... [详细]
author-avatar
文竹
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有