「CSS畅想」定时+随机,开启今日上上签

简介: 用技术实现梦想,用梦想打开前端技术之门。今天写个小功能,为自己加点好运。

前言

之前做了一个小功能,批量上传福气,借用好彩妹的口头禅:“笑口常开,好彩自然来。”这次,延续好运的buff加持,做了一个简单的随机获取好运上上签的功能。

Math.random()

众所周知,JavaScript的内置对象Math,可以帮忙实现各种数字相关的功能。它拥有较多数学常数属性和数学函数方法。

其中,random方法,可以帮助生成一个从0(包括0)往上,但是不包括1(排除1)的随机浮点数。

除了0-1,还可以根据四则运算,生成某个数值段的随机数,官网也给出了实现的例子,官网文档

得到一个两数之间的随机数

先看一个例子。

例子中会返回了一个在指定值之间的随机数。随机数的值不小于 min(有可能等于),并且不大于(不会出现等于)max。

functiongetRandomArbitrary(min, max) {
returnMath.random() * (max-min) +min;
}
constmin=1;
constmax=9;
constres=getRandomArbitrary(min, max);
console.log(res, 'res'); // 1.0964061777787624 res

抽签咯

功能实现

html

  • 页面展示主要包括两部分内容,顶部内容和签文随机展示内容;
  • 顶部内容,包括左侧的标题、开始按钮、结束按钮,右侧的获取的签文展示部分;
  • 签文随机展示部分和头部通过虚线进行了分割;
  • 签文随机展示部分,展示最终获取的签文内容。
<divclass='center'><divclass='head'><divclass='left'><divclass='title'>点击按钮获取今日幸运签</div><divclass='btn-group'><buttonclass='mr20'id='beginBtn'>开始</button><buttonid='endBtn'disabled>结束</button></div></div><divclass='right'id='luck'></div></div><divclass='content'id='content'></div></div>

css

  • 分割线是虚线,虚线的实现通过为边框设置border,将值设置为dashed即可;
  • 签文边框加了外阴影,阴影用box-shadow实现。
* {
padding: 0;
margin: 0;
}
.center {
width: 600px;
height: auto;
margin: 30pxauto;
}
.head {
display: flex;
justify-content: space-between;
}
.title {
line-height: 1.2;
font-size: 22px;
color: #333;font-weight: 300;
}
.btn-group {
margin-top: 20px;
}
.btn-groupbutton {
line-height: 32px;
background: #4860d6;padding: 040px;
color: #fff;border-radius: 15px;
border: none;
font-weight: 300;
font-size: 13px;
}
.mr20 {
margin-right: 20px;
}
.right {
width: 240px;
height: 80px;
font-size: 26px;
border: 1pxsolid#4860d6;color: #4860d6;padding: 20px;
box-shadow: 3px5px5px#4860d6;border-radius: 5px;
font-weight: 300;
}
.content {
border-top: 2pxdashed#4860d6;width: 100%;
margin-top: 50px;
height: 80px;
line-height: 80px;
font-size: 38px;
padding-top: 10px;
text-align: center;
color: #4860d6;font-weight: 300;
}

js

  • 设置签文内容数组,包含所有的抽签内容;
  • Math.random()实现0-9的随机数,随机数的值即为签文数组的索引值,从而确定最终的展示内容;
  • 签文动态循环出现的效果,是通过setInterval设置定时实现的。点击开始按钮启动定时任务,签文数组开始随机出现在页面上;
  • 点击结束按钮中止定时任务,获取最终的签文,并回显在页面中签文随机展示区域。
varluckList= ['莓有烦恼', '大橘大利', '心想事橙', '一篇光芒', '雨过天晴', '好景发生', '抬头见喜', '功成名就', '安居乐业', '国泰民安'];
vartask,
num=0;
varluck=document.getElementById('luck');
varcontent=document.getElementById('content');
varbeginBtn=document.getElementById('beginBtn');
varendBtn=document.getElementById('endBtn');
// 生成随机数functiongetRandomNum(minNum, maxNum) {
returnparseInt(Math.random() * (maxNum-minNum+1) +minNum, 10);
}
// 开始functionstartTask() {
// 设置循环任务task=setInterval(function () {
// 随机索引num=getRandomNum(0, 10);
content.innerHTML=luckList[num];
beginBtn.disabled=true;
endBtn.disabled=false;
  }, 100);
}
// 结束functionendTask() {
// 清除循环任务clearInterval(task);
luck.innerHTML=luckList[num];
beginBtn.disabled=false;
endBtn.disabled=true;
}
beginBtn.onclick=startTask;
endBtn.onclick=endTask;


效果展示

可以到在线预览平台,查看详细代码,进行效果体验,抽取自己的好运签。


总结

“笑口常开,好彩自然来。”希望每个人都收获自己的好运,无论是生活、事业、家庭等等。

未来如果有好的想法,还会不断去尝试实现。

目录
相关文章
|
移动开发 前端开发 JavaScript
通过CSS,H5,JavaScript实现表格表单的随机选择,和简单的随机点名
学习通过CSS,H5,JavaScript实现表格表单的随机选择,和简单的随机点名。
198 0
通过CSS,H5,JavaScript实现表格表单的随机选择,和简单的随机点名
|
前端开发 JavaScript
纯CSS实现随机翻牌效果之 steps 妙用
翻牌是大家很熟悉的一个互动效果,通常在抽奖活动中出现。那么不借助 JavaScript 是否能够实现随机翻牌效果?翻牌效果肯定是没有问题,CSS 没有随机函数,今天就来分享一个另类的交互实现思路。
415 0
纯CSS实现随机翻牌效果之 steps 妙用
|
前端开发 算法
CSS实现随机不规则圆角头像
CSS实现随机不规则圆角头像
414 0
CSS实现随机不规则圆角头像
|
Web App开发 前端开发 JavaScript
|
4月前
|
前端开发
2s 利用 HTML+css动画实现企业官网效果
2s 利用 HTML+css动画实现企业官网效果
HTML+CSS 实现通用的企业官网页面(记得收藏)
HTML+CSS 实现通用的企业官网页面(记得收藏)
|
23天前
|
前端开发 测试技术 定位技术
如何利用HTML和CSS构建企业级网站的全过程。从项目概述到页面结构设计,再到HTML结构搭建与CSS样式设计,最后实现具体页面并进行优化提升,全面覆盖了网站开发的关键步骤
本文深入介绍了如何利用HTML和CSS构建企业级网站的全过程。从项目概述到页面结构设计,再到HTML结构搭建与CSS样式设计,最后实现具体页面并进行优化提升,全面覆盖了网站开发的关键步骤。通过实例展示了主页、关于我们、产品展示、新闻动态及联系我们等页面的设计与实现,强调了合理布局、美观设计及用户体验的重要性。旨在为企业打造一个既专业又具吸引力的线上平台。
48 7
|
23天前
|
前端开发 JavaScript 搜索推荐
HTML与CSS在Web组件化中的核心作用及前端技术趋势
本文探讨了HTML与CSS在Web组件化中的核心作用及前端技术趋势。从结构定义、语义化到样式封装与布局控制,两者不仅提升了代码复用率和可维护性,还通过响应式设计、动态样式等技术增强了用户体验。面对兼容性、代码复杂度等挑战,文章提出了相应的解决策略,强调了持续创新的重要性,旨在构建高效、灵活的Web应用。
32 6
|
23天前
|
存储 移动开发 前端开发
高效的 HTML 与 CSS 编写技巧,涵盖语义化标签、文档结构优化、CSS 预处理、模块化设计、选择器优化、CSS 变量、媒体查询等内容
本文深入探讨了高效的 HTML 与 CSS 编写技巧,涵盖语义化标签、文档结构优化、CSS 预处理、模块化设计、选择器优化、CSS 变量、媒体查询等内容,旨在提升开发效率、网站性能和用户体验。
35 5