动态的9*9乘法表效果的实现代码


Posted in Javascript onMay 16, 2016

近日在群里看到有个题目,拿出来写写,

要求:

用html,css,原生js实现如图的效果,先正向输出,然后逆向回溯,最后停留在完整的画面。

动态的9*9乘法表效果的实现代码

首先:

HTML部分代码:

 <div id="result"></div> 

就是这么简单一行搞定。

CSS代码:

#result{
 width:550px;
 margin:30px auto;
 font-size:0;
 font-family:Consolas,"Liberation Mono",Menlo,Courier,monospace;
}
#result span{
 display:inline-block;
 width:60px;
 height:25px;
 line-height:25px;
 font-size:12px;
 text-align:center;
 border:1px solid #eee;
 margin: -1px 0 0 -1px;
}

CSS代码也很简单,span中的margin主要就是为了消除出现双border的问题。

接下来重点来了

javascript代码:

首先创建一个9*9乘法表的函数

function create(){
 var html = [];
 for(var i = 1;i <= 9;i++){
  for(var j = 1;j <= i;j++){
    html.push('<span>'+j+'*'+i+'='+(j*i)+'</span>');
  }
   html.push('<br/>');
 }
 return html;
}

1,新建一个用来放html代码片段的空数组:

var html = [];

2,使用for循环遍历出9*9乘法表格:

for(var i = 1;i <= 9;i++){
 for(var j = 1;j <= i;j++){
 //内容
 } 
}

3,将循环内容push进之前新建的空数组:

html.push('<span>'+j+'*'+i+'='+(j*i)+'</span>');

4,注意为了实现阶梯在j循环完毕之后添加一个换行字符:

html.push('<br/>');

5,最后记得return出刚刚那个数组:

return html;

创建9*9乘法表的函数就完成了。

接下来是将展示到页面中:

function inHTML(){
   var html = create(),
    i = 0,
    tmp = create(),
    timer = null,
    result = document.getElementById('result');
   timer = setInterval(function(){
    if(i > html.length){
     html.splice(html.length-1,1)
     result.innerHTML = html.join('');
    }
    else{
     result.innerHTML += html[i++];
    }
    if(!html.length){
     result.innerHTML = tmp.join('');
     clearInterval(timer);
    }
   },100)
  }

我们依然是创建一个新的函数:inHTML()

1,首先声明一些初始化变量

var html = create(),//调用之前创建的9*9函数
  i = 0,//初始化变量i
  tmp = create(),
  timer = null,//初始化
  result = document.getElementById('result');//获取id

2,接着我们创建一个定时器,让数据依次展示:

timer = setInterval(function(){
 //内容 
},100)

让100毫秒执行一次这个定时器

3,接着写定时器中的内容:

if(i > html.length){ //判断i是否大于html.length,如果大于就逆向展示
 html.splice(html.length-1,1)
 result.innerHTML = html.join('');
}
else{ //如果小于就正向展示
 result.innerHTML += html[i++];
}
if(!html.length){ //判断如果html.length为false时展示。
 result.innerHTML = tmp.join('');
 clearInterval(timer);//清除定时器
}

inHTML()函数也写完了,那就剩下调用了

inHTML();

完成。

大家可以去自己去试试,有更好的想法可以给我留言。

以上这篇动态的9*9乘法表效果的实现代码就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
[原创]静态页面也可以实现预览 列表不同的显示方式
Oct 14 Javascript
默认让页面的第一个控件选中的javascript代码
Dec 26 Javascript
Javascript事件热键兼容ie|firefox
Dec 30 Javascript
JQuery中判断一个元素下面是否有内容或者有某个标签的判断代码
Feb 02 Javascript
JQuery验证工具类搜集整理
Jan 16 Javascript
JS获取IP、MAC和主机名的五种方法
Nov 14 Javascript
jQuery1.9.1针对checkbox的调整方法(prop)
May 01 Javascript
js实现YouKu的漂亮搜索框效果
Aug 19 Javascript
vue指令以及dom操作详解
Mar 04 Javascript
VSCode配置react开发环境的步骤
Dec 27 Javascript
JavaScript私有变量实例详解
Jan 24 Javascript
JS使用canvas中的measureText方法测量字体宽度示例
Feb 02 Javascript
Svg.js实例教程及使用手册详解(一)
May 16 #Javascript
限制只能输入数字的实现代码
May 16 #Javascript
JavaScript开发Chrome浏览器扩展程序UI的教程
May 16 #Javascript
基于javascript实现最简单的选项卡切换效果
May 16 #Javascript
JavaScript实现页面跳转的方式汇总
May 16 #Javascript
js实现页面跳转的几种方法小结
May 16 #Javascript
WebApi+Bootstrap+KnockoutJs打造单页面程序
May 16 #Javascript
You might like
实用函数5
2007/11/08 PHP
DedeCMS 核心类TypeLink.class.php摘要笔记
2010/04/07 PHP
PHP setTime 设置当前时间的代码
2012/08/27 PHP
php封装的验证码工具类完整实例
2016/10/19 PHP
PHP的mysqli_ssl_set()函数讲解
2019/01/23 PHP
Javascript算符的优先级介绍
2013/03/20 Javascript
Nodejs+express+html5 实现拖拽上传
2014/08/08 NodeJs
详解Angular-Cli中引用第三方库
2017/05/21 Javascript
vue动画之点击按钮往上渐渐显示出来的实例
2018/09/29 Javascript
JS实现二维数组元素的排列组合运算简单示例
2019/01/28 Javascript
不刷新网页就能链接新的js文件方法总结
2020/03/01 Javascript
如何在JavaScript中等分数组的实现
2020/12/13 Javascript
[01:02:17]2014 DOTA2华西杯精英邀请赛 5 24 DK VS VG
2014/05/26 DOTA
python提取内容关键词的方法
2015/03/16 Python
定制FileField中的上传文件名称实例
2017/08/23 Python
python实现多线程行情抓取工具的方法
2018/02/28 Python
python如何让类支持比较运算
2018/03/20 Python
Python 保存矩阵为Excel的实现方法
2019/01/28 Python
如何用Python绘制3D柱形图
2020/09/16 Python
美国领先的礼品卡网站:GiftCards.com
2016/11/02 全球购物
中专毕业自我鉴定
2013/10/16 职场文书
机械电子工程毕业生自荐信
2013/11/23 职场文书
电子商务自荐书范文
2014/01/04 职场文书
2014年中班元旦活动方案
2014/02/14 职场文书
教育专业毕业生推荐信
2014/07/10 职场文书
党代会心得体会
2014/09/04 职场文书
三问三解心得体会
2014/09/05 职场文书
个人总结与自我评价
2014/09/18 职场文书
毕业实习自我鉴定范文2014
2014/09/26 职场文书
工伤事故赔偿协议书(标准)
2014/09/29 职场文书
财务整改报告范文
2014/11/05 职场文书
2014幼儿园班主任工作总结
2014/12/04 职场文书
创先争优承诺书
2015/01/20 职场文书
自主招生自荐信范文
2015/03/04 职场文书
2015年安全保卫工作总结
2015/05/14 职场文书
3050和2060哪个好 性能差多少 差距有多大 谁更有性价比
2022/06/17 数码科技