• 技术文章 >Web开发 >JavaScript

    生日快乐代码js特效

    小妮浅浅小妮浅浅2021-01-22 17:41:59原创8929

    在学习了不少js知识点后,如果有身边人快过生日,可以通过js代码编写出生日快乐的特效送给他。既是给别人一个惊喜,也是自身js学习的一个检验。在开始js运行时,我们要先检验下代码运行的环境是否符合,然后就生日快乐的代码展开讲解。

    1.js代码运行环境

    浏览器(引擎)

    node(基于v8渲染js)

    webview(v8引擎)

    2.js生日快乐代码

    <div class="button-style1">
    <a href="Memories.html" class="lk1">
    	<div class="link1">
    		<div class="bt1">
    			我很喜欢
    		</div>
    	</div>
    </a>    
    </div>
    <div class="button-style2">
    <a class="lk2">
    	<div class="link2">
    		<div class="bt1">
    			我不喜欢
    		</div>
    	</div>
    </a> 
    </div>

    .button-style1 ,.button-style2{
    position:absolute;
    top:41%;
    opacity:1;
    z-index:100;
    }
    .button-style1 {
    position:absolute;
    left:20%;
    animation:btn1 15s; /*这是CSS3的动画属性,着这里定义动画的名称和持续时间,也可以用animation-delay定义动画延时多少s播放*/
    }
    .button-style2 {
    position:absolute;
    left:68%;
    animation:btn2 15s;
    }
    @keyframes btn1 { /*这里是对动画的定义,我们只需要定义几个关键帧,它会自动完成补间。*/
    0% {
    	opacity:0;
    	left:43.5%;
    }
    70% {
    	opacity:0;
    	left:43.5%;
    }
    100% {
    	opacity:1;
    	left:20%;
    }
    }
    @-webkit-keyframes btn1 { /*这里是声明获取不同浏览器的支持,还有几个干脆我就懒得写了,反正我也不是给所有人写的,自己能看就行*/
    0% {
    	opacity:0;
    	left:43.5%;
    }
    70% {
    	opacity:0;
    	left:43.5%;
    }
    100% {
    	opacity:1;
    	left:20%;
    }
    }
    @keyframes btn2 {
    0% {
    	opacity:0;
    	left:43.5%;
    }
    70% {
    	opacity:0;
    	left:43.5%;
    }
    100% {
    	opacity:1;
    	left:68%;
    }
    }
    @-webkit-keyframes btn2 {
    0% {
    	opacity:0;
    	left:43.5%;
    }
    70% {
    	opacity:0;
    	left:43.5%;
    }
    100% {
    	opacity:1;
    	left:68%;
    }
    }
    .lk1,.lk2 {
    text-decoration:none;
    font-family: Microsoft YaHei;
    color:#fff;
    transition:all 0.5s;
    }
    .link1,.link2 {
    width:170px;
    height:60px;
    border:2px solid #fff;
    -webkit-border:1px solid #fff;
    border-radius:30px;
    font-size: 23px;
    text-align:center;
    background: #ee9ca7;
    transition:all 0.8s;
    }
    .link2 {
    cursor:not-allowed;
    }
    .bt1,.bt2 {
    position:relative;
    top:22%;
    vertical-align:middle;
    }
     
    a.lk1:hover { /*这里使用CSS选择器,定义鼠标滑过效果*/
    color:#ee9ca7;
    transition:all 0.5s;
    }
    .link1:hover {
    background-color:#fff;
    background-color:rgba(255,255,255,0,2);
    border:2px solid #BBB;
    transition:all 0.8s;
    }
    a.lk2:hover {
    color:#ee9ca7;
    transition:all 0.5s;
    }
    .link2:hover {
    background-color:#fff;
    background-color:rgba(255,255,255,0,2);
    border:2px solid #BBB;
    transition:all 0.8s;
    }

    <div class="section">
              <div class="ly-box01">
                <div class="ly-txt01">
                  <p class="ly-stxt01">XXXXXXXXXXXXXXXXXXXXXXX</p>
                  <p class="ly-stxt02">XXXXXXXXXXXXXXXXXXXXXXX</p>
                  <p class="ly-stxt03">XXXXXXXXXXXXXXXXXXXXXXX</p>
                  <p class="ly-stxt04">XXXXXXXXXXXXXXXXXXXXXXX</p>
                  <p class="ly-stxt05">XXXXXXXXXXXXXXXXXXXXXXX</p>
                </div>
                <div class="ly-txt02">
                  <p class="ly-stxt06">XXXXXXXXXXXXXXXXXXXXXXX</p>
                  <p class="ly-stxt07">XXXXXXXXXXXXXXXXXXXXXXX</p>
                  <p class="ly-stxt08">XXXXXXXXXXXXXXXXXXXXXXX</p>
                  <p class="ly-stxt09">XXXXXXXXXXXXXXXXXXXXXXX</p>
                  <p class="ly-stxt10">XXXXXXXXXXXXXXXXXXXXXXX</p>
                </div>
            </div>
          </div>
    .ly-box01 {
    	width:50px;
    	height:50px;
    	background-color:#FFF;
    	border-radius: 25px;
    	position: absolute;
    	left: 48%;
    	bottom: 50%;
    	margin-bottom:50%;
    	overflow: hidden;
    	transform-origin:center bottom;
    	animation:box_to_point 18.5s 0s,bounce 2.5s 18.5s;
    }
     
    @keyframes box_to_point{
    	0% {
    		margin-bottom:50%;
    		width:50px;
    		height:50px;
    		border-radius: 25px;
    		position: absolute;
    		left: 48%;
    		bottom: 50%;
    		}
    	10% {
    		margin-bottom:0;
    		width:50px;
    		height:50px;
    		border-radius: 25px;
    		background-color:rgba(255,255,255,1);
    		position: absolute;
    		left: 48%;
    		bottom: 50%;
    	}
    	14% {
    		margin-bottom:0;
    		width: 80%;
    		height: 550px;
    		border-radius: 6px;
    		background-color:rgba(255,255,255,0.5);
    		position: absolute;
    		left: 10%;
    		bottom: 12%;
    	}
    	96% {
    		margin-bottom:0;
    		width: 80%;
    		height: 550px;
    		border-radius: 6px;
    		background-color:rgba(255,255,255,0.6);
    		position: absolute;
    		left: 10%;
    		bottom: 12%;
    	}
    	100% {
    		margin-bottom:0;
    		width:50px;
    		height:50px;
    		border-radius: 25px;
    		background-color:rgba(255,255,255,1);
    		position: absolute;
    		left: 48%;
    		bottom: 50%;
    	}
    }
    @-webkit-keyframes box_to_point{
    	0% {
    		margin-bottom:50%;
    		width:50px;
    		height:50px;
    		border-radius: 25px;
    		position: absolute;
    		left: 48%;
    		bottom: 50%;
    		}
    	10% {
    		margin-bottom:0;
    		width:50px;
    		height:50px;
    		border-radius: 25px;
    		background-color:rgba(255,255,255,1);
    		position: absolute;
    		left: 48%;
    		bottom: 50%;
    	}
    	14% {
    		margin-bottom:0;
    		width: 80%;
    		height: 550px;
    		border-radius: 6px;
    		background-color:rgba(255,255,255,0.5);
    		position: absolute;
    		left: 10%;
    		bottom: 12%;
    	}
    	96% {
    		margin-bottom:0;
    		width: 80%;
    		height: 550px;
    		border-radius: 6px;
    		background-color:rgba(255,255,255,0.6);
    		position: absolute;
    		left: 10%;
    		bottom: 12%;
    	}
    	100% {
    		margin-bottom:0;
    		width:50px;
    		height:50px;
    		border-radius: 25px;
    		background-color:rgba(255,255,255,1);
    		position: absolute;
    		left: 48%;
    		bottom: 50%;
    	}
    }
    @keyframes bounce{
    	0% {
    		margin-bottom:0;
    		width: 50px;
    		height: 50px;
    		border-radius: 25px;
    		bottom:50%;
    		left: 48%;
    	}
    	50% {
    		margin-bottom:0;
    		left: 48%;
    		width: 50px;
    		height: 50px;
    		border-radius: 25px;
    		bottom:0;
    		left: 48%;
    	}
    	100% {
    		margin-bottom:0;
    		width: 20px;
    		height: 20px;
    		border-radius: 10px;
    		left: 48%;
    		bottom: 0;
    		left: 20%;
    	}
    }
    @-webkit-keyframes bounce{
    		0% {
    		margin-bottom:0;
    		width: 50px;
    		height: 50px;
    		border-radius: 25px;
    		bottom:50%;
    		left: 48%;
    	}
    	50% {
    		margin-bottom:0;
    		left: 48%;
    		width: 50px;
    		height: 50px;
    		border-radius: 25px;
    		bottom:0;
    		left: 48%;
    	}
    	100% {
    		margin-bottom:0;
    		width: 20px;
    		height: 20px;
    		border-radius: 10px;
    		left: 48%;
    		bottom: 0;
    		left: 20%;
    	}
    }
    /*文本*/
    .ly-txt01 {
    	position:absolute;
    	width: 40%;
    	left:10%;
    	top:10%;
    }
    .ly-txt02 {
    	position:absolute;
    	width: 40%;
    	left:60%;
    	top:10%;
    }
    .ly-stxt01 {
    	font-family: Microsoft YaHei;
    	font-size: 30px;
    	font-color: #000;
    	position: relative;
    	left: 5%;
    	top: 5%;
    	opacity: 0;
    	animation:ly-stxt01_move 15s;
    	animation-delay:3s;
    	-webkit-animation:ly-stxt01_move 15s;
    	-webkit-animation-delay:3s;
    }
    @keyframes ly-stxt01_move{
    	0% {opacity:0;}
    	8% {opacity:1;}
    	90% {opacity:1;}
    	98% {opacity:0;}
    	100% {opacity:0;}
    }
    @-webkit-keyframes ly-stxt01_move{
    	0% {opacity:0;}
    	8% {opacity:0;}
    	90% {opacity:1;}
    	98% {opacity:0;}
    	100% {opacity:0;}
    }
     
    .ly-stxt02 {
    	font-family: Microsoft YaHei;
    	font-size: 30px;
    	font-color: #000;
    	position: relative;
    	left: 5%;
    	top: 5%;
    	margin-top:-71px;
    	opacity: 0;
    	animation:ly-stxt02_move 15s;
    	animation-delay:3s;
    	-webkit-animation:ly-stxt02_move 15s;
    	-webkit-animation-delay:3s;
    }
    @keyframes ly-stxt02_move{
    	0% {opacity:0;margin-top:-71px;}
    	8% {opacity:0;margin-top:-71px;}
    	16% {opacity:1;margin-top:0;}
    	90% {opacity:1;margin-top:0;}
    	100% {opacity:0;margin-top:0;}
    }
    @-webkit-keyframes ly-stxt02_move{
    	0% {opacity:0;margin-top:-71px;}
    	8% {opacity:0;margin-top:-71px;}
    	16% {opacity:1;margin-top:0;}
    	90% {opacity:1;margin-top:0;}
    	100% {opacity:0;margin-top:0;}
    }
     
    .ly-stxt03 {
    	font-family: Microsoft YaHei;
    	font-size: 30px;
    	font-color: #000;
    	position: relative;
    	left: 5%;
    	top: 5%;
    	opacity: 0;
    	margin-top:-71px;
    	animation:ly-stxt03_move 15s;
    	animation-delay:3s;
    	-webkit-animation:ly-stxt03_move 15s;
    	-webkit-animation-delay:3s;
    }
    @keyframes ly-stxt03_move{
    	0% {opacity:0;margin-top:-71px;}
    	16% {opacity:0;margin-top:-71px;}
    	24% {opacity:1;margin-top:0;}
    	90% {opacity:1;margin-top:0;}
    	100% {opacity:0;margin-top:0;}
    }
    @-webkit-keyframes ly-stxt03_move{
    	0% {opacity:0;margin-top:-71px;}
    	16% {opacity:0;margin-top:-71px;}
    	24% {opacity:1;margin-top:0;}
    	90% {opacity:1;margin-top:0;}
    	100% {opacity:0;margin-top:0;}
    }
     
    .ly-stxt04 {
    	font-family: Microsoft YaHei;
    	font-size: 30px;
    	font-color: #000;
    	position: relative;
    	left: 5%;
    	top: 5%;
    	opacity: 0;
    	margin-top:-71px;
    	animation:ly-stxt04_move 15s;
    	animation-delay:3s;
    	-webkit-animation:ly-stxt04_move 15s;
    	-webkit-animation-delay:3s;
    }
    @keyframes ly-stxt04_move{
    	0% {opacity:0;margin-top:-71px;}
    	24% {opacity:0;margin-top:-71px;}
    	32% {opacity:1;margin-top:0;}
    	90% {opacity:1;margin-top:0;}
    	100% {opacity:0;margin-top:0;}
    }
    @-webkit-keyframes ly-stxt04_move{
    	0% {opacity:0;margin-top:-71px;}
    	24% {opacity:0;margin-top:-71px;}
    	32% {opacity:1;margin-top:0;}
    	90% {opacity:1;margin-top:0;}
    	100% {opacity:0;margin-top:0;}
    }
     
    .ly-stxt05 {
    	font-family: Microsoft YaHei;
    	font-size: 30px;
    	font-color: #000;
    	position: relative;
    	left: 5%;
    	top: 5%;
    	opacity: 0;
    	margin-top:-71px;
    	animation:ly-stxt05_move 15s;
    	animation-delay:3s;
    	-webkit-animation:ly-stxt05_move 15s;
    	-webkit-animation-delay:3s;
    }
    @keyframes ly-stxt05_move{
    	0% {opacity:0;margin-top:-71px;}
    	32% {opacity:0;margin-top:-71px;}
    	40% {opacity:1;margin-top:0;}
    	90% {opacity:1;margin-top:0;}
    	100% {opacity:0;margin-top:0;}
    }
    @-webkit-keyframes ly-stxt05_move{
    	0% {opacity:0;margin-top:-71px;}
    	32% {opacity:0;margin-top:-71px;}
    	40% {opacity:1;margin-top:0;}
    	90% {opacity:1;margin-top:0;}
    	100% {opacity:0;margin-top:0;}
    }
     
    .ly-stxt06 {
    	font-family: Microsoft YaHei;
    	font-size: 30px;
    	font-color: #000;
    	position: relative;
    	right: 5%;
    	top: 5%;
    	opacity: 0;
    	animation:ly-stxt06_move 15s;
    	animation-delay:3s;
    	-webkit-animation:ly-stxt06_move 15s;
    	-webkit-animation-delay:3s;
    }
    @keyframes ly-stxt06_move{
    	0% {opacity:0;}
    	40% {opacity:0;}
    	48% {opacity:1;}
    	90% {opacity:1;}
    	100% {opacity:0;}
    }
    @-webkit-keyframes ly-stxt06_move{
    	0% {opacity:0;}
    	40% {opacity:0;}
    	48% {opacity:1;}
    	90% {opacity:1;}
    	100% {opacity:0;}
    }
     
    .ly-stxt07 {
    	font-family: Microsoft YaHei;
    	font-size: 30px;
    	font-color: #000;
    	position: relative;
    	right: 5%;
    	top: 5%;
    	opacity: 0;
    	margin-top:-71px;
    	animation:ly-stxt07_move 15s;
    	animation-delay:3s;
    	-webkit-animation:ly-stxt07_move 15s;
    	-webkit-animation-delay:3s;
    }
    @keyframes ly-stxt07_move{
    	0% {opacity:0;margin-top:-71px;}
    	48% {opacity:0;margin-top:-71px;}
    	56% {opacity:1;margin-top:0;}
    	90% {opacity:1;margin-top:0;}
    	100% {opacity:0;margin-top:0;}
    }
    @-webkit-keyframes ly-stxt07_move{
    	0% {opacity:0;margin-top:-71px;}
    	48% {opacity:0;margin-top:-71px;}
    	56% {opacity:1;margin-top:0;}
    	90% {opacity:1;margin-top:0;}
    	100% {opacity:0;margin-top:0;}
    }
     
    .ly-stxt08 {
    	font-family: Microsoft YaHei;
    	font-size: 30px;
    	font-color: #000;
    	position: relative;
    	right: 5%;
    	top: 5%;
    	opacity: 0;
    	margin-top:-71px;
    	animation:ly-stxt08_move 15s;
    	animation-delay:3s;
    	-webkit-animation:ly-stxt08_move 15s;
    	-webkit-animation-delay:3s;
    }
    @keyframes ly-stxt08_move{
    	0% {opacity:0;margin-top:-71px;}
    	56% {opacity:0;margin-top:-71px;}
    	64% {opacity:1;margin-top:0;}
    	90% {opacity:1;margin-top:0;}
    	100% {opacity:0;margin-top:0;}
    }
    @-webkit-keyframes ly-stxt08_move{
    	0% {opacity:0;margin-top:-71px;}
    	56% {opacity:0;margin-top:-71px;}
    	64% {opacity:1;margin-top:0;}
    	90% {opacity:1;margin-top:0;}
    	100% {opacity:0;margin-top:0;}
    }
     
    .ly-stxt09 {
    	font-family: Microsoft YaHei;
    	font-size: 30px;
    	font-color: #000;
    	position: relative;
    	right: 5%;
    	top: 5%;
    	opacity: 0;
    	margin-top:-71px;
    	animation:ly-stxt09_move 15s;
    	animation-delay:3s;
    	-webkit-animation:ly-stxt09_move 15s;
    	-webkit-animation-delay:3s;
    }
    @keyframes ly-stxt09_move{
    	0% {opacity:0;margin-top:-71px;}
    	64% {opacity:0;margin-top:-71px;}
    	72% {opacity:1;margin-top:0;}
    	90% {opacity:1;margin-top:0;}
    	100% {opacity:0;margin-top:0;}
    }
    @-webkit-keyframes ly-stxt09_move{
    	0% {opacity:0;margin-top:-71px;}
    	64% {opacity:0;margin-top:-71px;}
    	72% {opacity:1;margin-top:0;}
    	90% {opacity:1;margin-top:0;}
    	100% {opacity:0;margin-top:0;}
    }
     
    .ly-stxt10 {
    	font-family: Microsoft YaHei;
    	font-size: 30px;
    	font-color: #000;
    	position: relative;
    	right: 5%;
    	top: 5%;
    	opacity: 0;
    	margin-top:-71px;
    	animation:ly-stxt10_move 15s;
    	animation-delay:3s;
    	-webkit-animation:ly-stxt10_move 15s;
    	-webkit-animation-delay:3s;
    }
    @keyframes ly-stxt10_move{
    	0% {opacity:0;margin-top:-71px;}
    	72% {opacity:0;margin-top:-71px;}
    	80% {opacity:1;margin-top:0;}
    	90% {opacity:1;margin-top:0;}
    	100% {opacity:0;margin-top:0;}
    }
    @-webkit-keyframes ly-stxt10_move{
    	0% {opacity:0;margin-top:-71px;}
    	72% {opacity:0;margin-top:-71px;}
    	80% {opacity:1;margin-top:0;}
    	90% {opacity:1;margin-top:0;}
    	100% {opacity:0;margin-top:0;}
    }

    以上就是使用js代码做的生日快乐特效,其中还包括了HTML5和CSS3的知识点,在进行代码编写时要灵活运用其他的知识模块。

    专题推荐:生日快乐代码js特效
    上一篇:js数组操作方法 下一篇:js定时器为什么会出现第一次延迟

    相关文章推荐

    • js四舍五入保留两位小数 5入• js正则限制字符串长度• js代码在线运行• js数组操作方法

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网