iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >用Vue.js开发网页时钟
  • 138
分享到

用Vue.js开发网页时钟

2024-04-02 19:04:59 138人浏览 独家记忆
摘要

本文实例为大家分享了vue.js开发网页时钟的具体代码,供大家参考,具体内容如下 本次实例的重点是父子通信,这也是学习Vue.js的重点部分和难点部分,能掌握好父子通信是对后期的Vu

本文实例为大家分享了vue.js开发网页时钟的具体代码,供大家参考,具体内容如下

本次实例的重点是父子通信,这也是学习Vue.js的重点部分和难点部分,能掌握好父子通信是对后期的Vue学习是一个很大的帮助,而且如果不跨过这个难点部分,是无法进行后期的学习的。
父子通信很好用,但是很难理解而且写着写着还很容易出现错误

父子通信的重点知识

1、子组件通过props属性监听从父组件中传过来的值(值)
2、子组件通过$emit('方法名‘)来向父组件发出请求(方法)
3、学习vue必须要知道属性只要绑定好后就是动态的模式(我个人理解),就只需要接收和请求就行了,不需要做其他的监听操作

话不多说,上代码

一、页面部分

1、 创建模板
2、通过父子通信来对子组件的部分属性进行监听

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Time</title>
    <link href="../CSS/index_css.css" rel="stylesheet">//采用外部连接的格式
</head>

<body>

<div id="content" class="content">
    <div id="over" @click="show()" :style="o_style">{{o_style.value}}</div>
    <clock :cur_time="current_time" @get_hour="getHours()" @get_minute="getMinutes()" @get_second="getSeconds()"
         :hour_s="hour_style" :minute_s="minute_style" :second_s="second_style" :com_s="o_style">
    </clock>
</div>


//模板部分
<template id="time_template">
    <div class="root">
            <span :style="{color:com_s.isNight==true?'white':'black'}">12</span>
            <span :style="{color:com_s.isNight==true?'white':'black'}">3</span>
            <span :style="{color:com_s.isNight==true?'white':'black'}">6</span>
            <span :style="{color:com_s.isNight==true?'white':'black'}">9</span>
            <span class="over-point"></span>
            <div id="hour" :style="hour_s"></div>
            <div id="minute" :style="minute_s"></div>
            <div id="second" :style="second_s"></div>
            <div id="show_time">{{cur_time.hour}}:{{cur_time.minute}}:{{cur_time.second}}</div>
    </div>
</template>

<script src="../external_lib/vue.js"></script>//这里是vue.js包的导入
<script src="../js/index_js.js"></script>//采用外部连接的格式
<script src="../js/pageControl.js"></script>//采用外部连接的格式
</body>
</html>

二、CSS部分

*{
    margin:0px;
    padding:0px;
}
body{
    display: flex;
    justify-content: center;
    align-items: center;
    align-content: center;
    background:skyblue;
    overflow: hidden;
}
#content{
    position:relative;
    width:100%;
    height:100vh;
    display:flex ;
    justify-content: center;
    align-content: center;
    align-items: center;
}
.root{
    width:500px;
    height:500px;
    border-radius: 50%;
    border:2px solid grey;
    position:relative;
    top:50px;
    background: url("../img/day.jpg") -170px;
    background-size:cover;
    overflow: hidden;
    box-shadow: 0px 0px 15px gray;
}

.root>span,.root>div{
    position:absolute;
    font-size:20px;
}
span:first-child{
    left:240px;
    top:10px;
    z-index:10;
}
span:nth-child(2){
    left:480px;
    top:240px;
    z-index:10;
}
span:nth-child(3){
    left:250px;
    top:470px;
    z-index:10;
}
span:nth-child(4){
    left:10px;
    top:240px;
    z-index:10;
}
span:nth-child(5){
    left:225px;
    top:225px;
    display: inline-block;
    width:50px;
    height:50px;
    line-height:50px;
    text-align: center;
    font-weight:bolder;
    border-radius: 50%;
    background:cadetblue;
    box-shadow: 0px 0px 18px #5f9ea0,inset 0px 0px 10px #4faee0;
    z-index:12;
}
#hour{
    width:20px;
    height:120px;
    border-radius:12px;
    background:white;
    top:136px;
    left:242px;
    opacity:88%;
    box-shadow: 0 0 18px whitesmoke;
    z-index:11;
}
#minute{
    width:15px;
    height:160px;
    border-radius:12px;
    background:dodgerblue;
    top:90px;
    left:243px;
    opacity: 0.85;
    box-shadow: 0 0 18px deepskyblue;
    z-index:11;
}
#second{
    width:10px;
    height:200px;
    border-radius:12px;
    background:gray;
    top:50px;
    left:250px;
    opacity:0.8;
    box-shadow: 0 0 18px snow;
    z-index:11;
}
#show_time{
    width:100px;
    height:50px;
    background:black;
    opacity:0.6;
    left:200px;
    top:300px;
    color:white;
    text-align: center;
    line-height:50px;
    z-index:10;
}
#over{
    position:absolute;
    width:100%;
    height:100vh;
    color:white;
    background:black;
    opacity: 0.8;
    transition:1s;
    z-index:10;
}

三、JS部分(重点部分)

父子通信


let clock={
    template:'#time_template',
    data(){
        return{
            interval:'',//定时器对象
        }
    },
    props:{//监听从父组件中传过来的对象
        cur_time: '',
        com_s:{},
        hour_s:{},
        minute_s:{},
        second_s:{},
    },
    methods:{
            display(){
                this.interval=setInterval((e)=>{
                    this.setHours();
                    this.setMinutes();
                    this.setSeconds();
                },1000);
            },
            setHours(){
                this.$emit('get_hour');
            },
            setMinutes(){
                this.$emit('get_minute');
            },
            setSeconds(){
                this.$emit('get_second');
            },
    },
    created(){//让方法在一开始就自动调用,一般适用于有定时器的方法
        this.display();
    }
};


let fatherComponent=new Vue({
    el:'#content',
    data:{
        date:new Date(),
        current_time:{//表示当前时间的对象
            hour:'',
            minute:'',
            second:'',
        },
        //需要传给子组件的对象
        hour_style: {},
        minute_style:{},
        second_style:{},
        //页面样式的初始化属性
        o_style:{
           left:'97%',
            isNight:false,//监听是白天还是黑夜,默认是白天
            value:'N-M',
        },
    },
    //通过子组件向父组件发起请求的方法
    methods:{
        getHours(){
            this.date=new Date();
            this.current_time.hour=this.date.getHours()>=10?this.date.getHours():'0'+this.date.getHours();
            let hour=this.date.getHours()%12+(this.date.getMinutes()+(this.date.getSeconds()/60)/60);
            this.hour_style={
                transfORMOrigin:'bottom center',
                transform:'rotate('+this.date.getHours()*30+'deg)',
            }
        },
        getMinutes(){
            this.date=new Date();
            this.current_time.minute=this.date.getMinutes()>=10?this.date.getMinutes():'0'+this.date.getMinutes();
            let m=this.date.getMinutes();
            this.minute_style={
                transformOrigin:'bottom center',
                transform:'rotate('+(m*6)+'deg)',//分为六十等分,每份为一分钟
            }
        },
        getSeconds(){
            this.date=new Date();
            this.current_time.second=this.date.getSeconds()>=10?this.date.getSeconds():'0'+this.date.getSeconds();
            this.second_style={
                transformOrigin:'bottom center',
                transform:'rotate('+this.date.getSeconds()*6+'deg)',//将圆分为六十份,每份为一秒钟。
            }
        },
        //对页面对象的属性进行修改
        show(){
            if(this.o_style.isNight){
                this.o_style.left='97%';
                this.o_style.isNight=false;
                this.o_style.value='N-M'
            }else{
                this.o_style.left='0%';
                this.o_style.isNight=true;
                this.o_style.value='D-M'
            }
        }
    },
    //在父组件内声明子组件,这是必须的
    components:{
        clock
    }
});

四、效果图

白天模式:

在白天模式中,单击N-M层就能变成夜间模式

夜晚模式:

在夜晚模式中单击任何地方都可以变回白天模式
夜晚模式中每个指针都是发光的

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: 用Vue.js开发网页时钟

本文链接: https://www.lsjlt.com/news/166369.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 用Vue.js开发网页时钟
    本文实例为大家分享了Vue.js开发网页时钟的具体代码,供大家参考,具体内容如下 本次实例的重点是父子通信,这也是学习Vue.js的重点部分和难点部分,能掌握好父子通信是对后期的Vu...
    99+
    2024-04-02
  • 用JavaScript实现简单网页时钟
    利用JavaScript实现网页时钟,效果如下图所示: 首先在body中完成表盘、指针的资源载入: <div><img src="../../image/cl...
    99+
    2024-04-02
  • JavaScript实现网页电子时钟
    本文实例为大家分享了JavaScript实现网页电子时钟的具体代码,供大家参考,具体内容如下 如图就是一个简易的网页电子时钟,利用Javascript和 html和 css就可以制...
    99+
    2024-04-02
  • JavaScript实现动态网页时钟
    本文实例为大家分享了JavaScript实现动态网页时钟的具体代码,供大家参考,具体内容如下 设计思路: 1先建立一个数组保存带有0〜9数字的10张图片; 2.通过GETDATE()...
    99+
    2024-04-02
  • 利用JavaScript实现简单的网页时钟
    目录一、效果展示二、使用的技术三、日期对象1.指定时间2.获取目前时间三、源代码前言: 今天带大家使用JavaScript定制一款网页时钟 一、效果展示 二、使用的技术 主要使用了...
    99+
    2024-04-02
  • 怎么使用JavaScript实现网页电子时钟
    这篇文章主要讲解了“怎么使用JavaScript实现网页电子时钟”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么使用JavaScript实现网页电子时钟”吧!如图就是一个简易的网页电子时钟...
    99+
    2023-07-02
  • JavaScript如何实现动态网页时钟
    这篇文章主要讲解了“JavaScript如何实现动态网页时钟”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“JavaScript如何实现动态网页时钟”吧!设计思路:1先建立一个数组保存带有0〜...
    99+
    2023-07-02
  • Android自定义定时闹钟开发
    本文实例为大家分享了Android开发之自定义闹钟实现,供大家参考,具体内容如下 闹钟时间设置及显示 闹钟的布局很简单,就是一个简单时间设置,所以自己写一个简单的布局按钮之类的也可以...
    99+
    2024-04-02
  • javascript如何实现网页在线时钟功能
    本篇内容介绍了“javascript如何实现网页在线时钟功能”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!...
    99+
    2024-04-02
  • 动态网页开发
    目录 一:什么是动态Web 二 Web服务器 三 常用动态Web开发技术 Web应用程序基于网页的应用程序,用户无需安装任何专用程序,只用浏览器来访问服务器,最终实现业务逻辑,也称为(B/S)Brower/Server。 一:什么是动态...
    99+
    2023-09-16
    开发语言 php 服务器
  • vue.js用什么开发工具
    vue.js可以用vscode开发工具,vscode是微软出的一款轻量级代码编辑器,对JavaScript和NodeJS的支持非常好,功能强大,如果想开发vue还需要下载插件,操作步骤如下:进入vscode官网插件商店,地址:“https:...
    99+
    2024-04-02
  • Python使用Dash开发网页应用
    Python Dash开发Web应用的控件基础本文主要是通过Dash的Checklist组件,简单介绍使用Dash开发的Web应用展示效果如下:python dash简单基础Dash应用程序由两部分组成:第一部分是应用程序的布局(Layou...
    99+
    2023-05-14
    Python Dash
  • python可以开发网页吗
    是的,Python可以用于开发网页。Python有许多流行的Web框架,如Django和Flask,可以帮助开发人员构建功能强大、可...
    99+
    2023-09-16
    python
  • Python应用开发——爬取网页图片
    Python应用开发——爬取网页图片 目录 Python应用开发——爬取网页图片前言1 爬取原理讲解1.1 查看网页源代码1.2 分析网页源码并制定对应的爬取方案1.3 完善爬取流程和细节 ...
    99+
    2023-09-10
    python 爬虫 网页图片
  • div css网页开发布局时怎么去掉下划线
    这篇文章主要讲解了“div css网页开发布局时怎么去掉下划线”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“div css网页开发布局时怎么去掉下划线”吧!...
    99+
    2024-04-02
  • ajax是网页开发技术吗
    这篇文章主要介绍“ajax是网页开发技术吗”,在日常操作中,相信很多人在ajax是网页开发技术吗问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”ajax是网页开发技术吗”的疑惑...
    99+
    2024-04-02
  • 如何使用vue开发公众号网页
    目录项目背景开始通过vue-cli创建项目关于移动的适配使用 normalize.css接入vant库方式一. 自动按需引入组件 (推荐)方式二. 手动按需引入组件方式三. 导入所有...
    99+
    2024-04-02
  • python如何做一个网页响应超时提醒小"闹钟
    这篇文章给大家介绍python如何做一个网页响应超时提醒小"闹钟,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。前言由于网络速度或对方服务器问题, 爬取一个网页的时候,都需要时间。如果该网页长时间未响应,那么系...
    99+
    2023-06-02
  • Vue3(三)网站首页布局开发
    目录一、前言二、实际案例1、修改App.vue2、调整布局3、修改路由实现跳转三、最后一、前言 上篇文章Vue3集成Ant Design Vue 已经提到集成Ant Design V...
    99+
    2024-04-02
  • django开发的网页如何部署
    Django是一个基于Python的开源Web框架,部署Django网页通常需要以下步骤: 配置服务器环境:首先需要在服务器上安...
    99+
    2024-03-01
    django
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作