动态的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 相关文章推荐
js 中{},[]中括号,大括号使用详解
May 12 Javascript
jquery ajax return没有返回值的解决方法
Oct 20 Javascript
JavaScript onkeypress事件入门实例(按下或按住一个键盘按键)
Oct 17 Javascript
javascript基于DOM实现省市级联下拉框的方法
May 14 Javascript
jQuery mobile 移动web(4)
Dec 20 Javascript
JavaScript基于原型链的继承
Jun 22 Javascript
vue构建单页面应用实战
Apr 10 Javascript
js最简单的双向绑定实例讲解
Jan 02 Javascript
vue自定义指令用法经典实例小结
Mar 16 Javascript
JavaScript变速动画函数封装添加任意多个属性
Apr 03 Javascript
Vue全局loading及错误提示的思路与实现
Aug 09 Javascript
vue route新窗口跳转页面并且携带与接收参数
Apr 10 Vue.js
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位运算的简单权限设计
2013/06/30 PHP
php对象在内存中的存在形式分析
2015/02/03 PHP
PHP实现简单爬虫的方法
2015/07/29 PHP
PHP魔术方法使用方法汇总
2016/02/14 PHP
[原创]PHPCMS遭遇会员投稿审核无效的解决方法
2017/01/11 PHP
php两点地理坐标距离的计算方法
2018/12/29 PHP
php使用redis的有序集合zset实现延迟队列应用示例
2020/02/20 PHP
CL vs ForZe BO5 第三场 2.13
2021/03/10 DOTA
CL vs ForZe BO5 第四场 2.13
2021/03/10 DOTA
jQuery each()方法的使用方法
2010/03/18 Javascript
js输出阴历、阳历、年份、月份、周示例代码
2014/01/29 Javascript
javascript常用函数归纳整理
2014/10/31 Javascript
JQuery表单验证插件EasyValidator用法分析
2014/11/15 Javascript
利用js实现禁止复制文本信息
2015/06/03 Javascript
jQuery增加和删除表格项目及实现表格项目排序的方法
2016/05/30 Javascript
node.js平台下利用cookie实现记住密码登陆(Express+Ejs+Mysql)
2017/04/26 Javascript
JS实现方形抽奖效果
2018/08/27 Javascript
你或许不知道的一些npm实用技巧
2019/07/04 Javascript
解决$store.getters调用不执行的问题
2019/11/08 Javascript
js通过循环多张图片实现动画效果
2019/12/19 Javascript
[40:05]DOTA2上海特级锦标赛A组小组赛#1 EHOME VS MVP.Phx第一局
2016/02/25 DOTA
使用Python实现BT种子和磁力链接的相互转换
2015/11/09 Python
Python 'takes exactly 1 argument (2 given)' Python error
2016/12/13 Python
基于随机梯度下降的矩阵分解推荐算法(python)
2018/08/31 Python
python实现在图片上画特定大小角度矩形框
2018/10/24 Python
python对象与json相互转换的方法
2019/05/07 Python
python-视频分帧&amp;多帧合成视频实例
2019/12/10 Python
用Python做一个久坐提醒小助手的示例代码
2020/02/10 Python
DjangoWeb使用Datatable进行后端分页的实现
2020/05/18 Python
paramiko使用tail实时获取服务器的日志输出详解
2020/12/06 Python
使用css3 属性如何丰富图片样式(圆角 阴影 渐变)
2012/11/22 HTML / CSS
html5是什么_动力节点Java学院整理
2017/07/07 HTML / CSS
浅析HTML5 meta viewport参数
2020/10/28 HTML / CSS
小学教师评语大全
2014/04/23 职场文书
远程教育学习心得体会
2016/01/23 职场文书
导游词之寿县报恩寺
2020/01/19 职场文书