动态的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 相关文章推荐
Ext javascript建立超链接,进行事件处理的实现方法
Mar 22 Javascript
jquery Firefox3.5中操作select的问题
Jul 10 Javascript
js multiple全选与取消全选实现代码
Dec 04 Javascript
js批量设置样式的三种方法不推荐使用with
Feb 25 Javascript
JS获取月的最后一天与JS得到一个月份最大天数的实例代码
Dec 16 Javascript
showModalDialog模态对话框的使用详解以及浏览器兼容
Jan 11 Javascript
移动端H5开发 Turn.js实现很棒的翻书效果
Jun 20 Javascript
详解获取jq ul第一个li定位的四种解决方案
Nov 23 Javascript
BootstrapTable加载按钮功能实例代码详解
Sep 22 Javascript
VueJs组件之父子通讯的方式
May 06 Javascript
如何使node也支持从url加载一个module详解
Jun 05 Javascript
JS实现判断图片是否加载完成的方法分析
Jul 31 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
Oracle 常见问题解答
2006/10/09 PHP
一步一步学习PHP(1) php开发环境配置
2010/02/15 PHP
php 在文件指定行插入数据的代码
2010/05/08 PHP
PHP iconv()函数字符编码转换的问题讲解
2019/03/22 PHP
与jquery serializeArray()一起使用的函数,主要来方便提交表单
2011/01/31 Javascript
JS 操作Array数组的方法及属性实例解析
2014/01/08 Javascript
使用jquery解析XML的方法
2014/09/05 Javascript
AngularJS基础 ng-value 指令简单示例
2016/08/03 Javascript
vue中的非父子间的通讯问题简单的实例代码
2017/07/19 Javascript
nodejs Assert中equal(),strictEqual(),deepEqual(),strictDeepEqual()比较
2017/09/18 NodeJs
详解适配器在JavaScript中的体现
2018/09/28 Javascript
webpack4之如何编写loader的方法步骤
2019/06/06 Javascript
vue实现随机验证码功能(完整代码)
2019/12/10 Javascript
[48:35]2018DOTA2亚洲邀请赛 4.1 小组赛 A组加赛 TNC vs Optic
2018/04/03 DOTA
[48:22]VGJ.S vs VG 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
Python with用法实例
2015/04/14 Python
Python中isnumeric()方法的使用简介
2015/05/19 Python
python统计cpu利用率的方法
2015/06/02 Python
Python金融数据可视化汇总
2017/11/17 Python
Python qqbot 实现qq机器人的示例代码
2019/07/11 Python
Python获取命令实时输出-原样彩色输出并返回输出结果的示例
2019/07/11 Python
Django框架基础模板标签与filter使用方法详解
2019/07/23 Python
解决django 新增加用户信息出现错误的问题
2019/07/28 Python
详解python3中用HTMLTestRunner.py报ImportError: No module named 'StringIO'如何解决
2019/08/27 Python
处理HTML5新标签的浏览器兼容版问题
2017/03/13 HTML / CSS
利群广告词
2014/03/20 职场文书
《金孔雀轻轻跳》教学反思
2014/04/20 职场文书
七一建党节演讲稿
2014/09/11 职场文书
健康状况证明书
2014/11/26 职场文书
个人政治思想总结
2015/03/05 职场文书
民事诉讼代理词
2015/05/25 职场文书
Idea连接MySQL数据库出现中文乱码的问题
2021/04/14 MySQL
微软PC Health Check电脑健康状况检查应用下载(Win11配置检测工具)
2021/06/26 数码科技
CSS使用伪类控制边框长度的方法
2022/01/18 HTML / CSS
Win11电脑显示本地时间与服务器时间不一致怎么解决?
2022/04/05 数码科技
Qt数据库应用之实现图片转pdf
2022/06/01 Java/Android