动态的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 相关文章推荐
Javascript面向对象编程(二) 构造函数的继承
Aug 28 Javascript
JSONP 跨域共享信息
Aug 16 Javascript
页面右下角弹出提示框示例代码js版
Aug 02 Javascript
javascript操作css属性
Dec 30 Javascript
JavaScript实现的GBK、UTF8字符串实际长度计算函数
Aug 27 Javascript
JS简单编号生成器实现方法(附demo源码下载)
Apr 05 Javascript
js中数组的常用方法小结
Dec 30 Javascript
js+html5实现页面可刷新的倒计时效果
Jul 15 Javascript
vue的toast弹窗组件实例详解
May 14 Javascript
详解小程序如何避免多次点击,重复触发事件
Apr 08 Javascript
函数式编程入门实践(一)
Apr 20 Javascript
AutoJs实现刷宝短视频的思路详解
May 22 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
php实现文件下载代码分享
2014/08/19 PHP
微信公众平台开发实现2048游戏的方法
2015/04/15 PHP
PHP中preg_match函数正则匹配的字符串长度问题
2015/05/27 PHP
PHP的中使用非缓冲模式查询数据库的方法
2017/02/05 PHP
删除重复数据的算法
2006/11/23 Javascript
js 中 document.createEvent的用法
2010/08/29 Javascript
对xmlHttp对象方法和属性的理解
2011/01/17 Javascript
Extjs中TabPane如何嵌套在其他网页中实现思路及代码
2013/01/27 Javascript
jQuery实现复选框全选/取消全选/反选及获得选择的值
2014/06/12 Javascript
JS中关于事件处理函数名后面是否带括号的问题
2016/11/16 Javascript
浅谈Javascript中的Label语句
2016/12/14 Javascript
使用webpack打包koa2 框架app
2018/02/02 Javascript
微信自定义分享链接信息(标题,图片和内容)实现过程详解
2019/09/04 Javascript
React-redux实现小案例(todolist)的过程
2019/09/29 Javascript
JavaScript原型继承和原型链原理详解
2020/02/04 Javascript
处理JavaScript值为undefined的7个小技巧
2020/07/28 Javascript
python基础教程之实现石头剪刀布游戏示例
2014/02/11 Python
Python3实现从文件中读取指定行的方法
2015/05/22 Python
python 编码规范整理
2018/05/05 Python
Python用for循环实现九九乘法表
2018/05/31 Python
Python实现批量执行同目录下的py文件方法
2019/01/11 Python
Python快速转换numpy数组中Nan和Inf的方法实例说明
2019/02/21 Python
Python3.5文件读与写操作经典实例详解
2019/05/01 Python
Python获取数据库数据并保存在excel表格中的方法
2019/06/12 Python
python标识符命名规范原理解析
2020/01/10 Python
Python通过Pillow实现图片对比
2020/04/29 Python
Python代码需要缩进吗
2020/07/01 Python
专门出售各种儿童读物的网站:Put Me In The Story
2016/08/07 全球购物
伦敦哈德森鞋:Hudson Shoes
2018/02/06 全球购物
Notino意大利:购买香水和化妆品
2018/11/14 全球购物
住房公积金接收函
2014/01/09 职场文书
金融管理毕业生求职信
2014/03/03 职场文书
远程培训的心得体会
2014/09/01 职场文书
班主任班级管理心得体会
2016/01/07 职场文书
护理培训心得体会
2016/01/22 职场文书
springboot如何接收application/x-www-form-urlencoded类型的请求
2021/11/02 Java/Android