动态的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 相关文章推荐
写了一个layout,拖动条连贯,内容区可为iframe
Aug 19 Javascript
让innerText在firefox火狐和IE浏览器都能用的写法
May 14 Javascript
JS实现浏览器状态栏显示时间的方法
Oct 27 Javascript
JQuery组件基于Bootstrap的DropDownList(完整版)
Jul 05 Javascript
switch语句的妙用(必看篇)
Oct 03 Javascript
JS正则子匹配实例分析
Dec 22 Javascript
vue2.0使用Sortable.js实现的拖拽功能示例
Feb 21 Javascript
JavaScript实现时间表动态效果
Jul 15 Javascript
微信小程序开发教程之增加mixin扩展
Aug 09 Javascript
ES6 Class中实现私有属性的一些方法总结
Jul 08 Javascript
JavaScript通如何过RGraph实现动态仪表盘
Oct 15 Javascript
小程序实现上下切换位置
Nov 16 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/11/25 PHP
PHP图像处理技术实例总结【绘图、水印、验证码、图像压缩】
2018/12/08 PHP
制作特殊字的脚本
2006/06/26 Javascript
jqPlot 图表中文API使用文档及源码和在线示例
2012/02/07 Javascript
jquery 插件学习(一)
2012/08/06 Javascript
jquery实现带复选框的表格行选中删除时高亮显示
2013/08/01 Javascript
一款jquery特效编写的大度宽屏焦点图切换特效的实例代码
2013/08/05 Javascript
javascript在myeclipse中报错的解决方法
2013/10/29 Javascript
js操纵dom生成下拉列表框的方法
2014/02/24 Javascript
jquery提交form表单简单示例分享
2014/03/03 Javascript
使用focus方法让光标默认停留在INPUT框
2014/07/29 Javascript
字段太多jquey快速清空表单内容方法
2014/08/21 Javascript
基于jQuery实现的图片切换焦点图整理
2014/12/07 Javascript
Javascript实现的SHA-256加密算法完整实例
2016/02/02 Javascript
使用Bootstrap框架制作查询页面的界面实例代码
2016/05/27 Javascript
浅谈javascript中的Function和Arguments
2016/08/30 Javascript
JavaScript的继承实现小结
2017/05/07 Javascript
vue 2.0 购物车小球抛物线的示例代码
2018/02/01 Javascript
全站最详细的Vuex教程
2018/04/13 Javascript
jQuery中常用动画效果函数知识点整理
2018/08/19 jQuery
Vue 实例事件简单示例
2019/09/19 Javascript
简单了解three.js 着色器材质
2020/08/03 Javascript
超详细小程序定位地图模块全系列开发教学
2020/11/24 Javascript
python代码实现ID3决策树算法
2017/12/20 Python
Python创建普通菜单示例【基于win32ui模块】
2018/05/09 Python
Python3.6实现连接mysql或mariadb的方法分析
2018/05/18 Python
使用python的pandas为你的股票绘制趋势图
2019/06/26 Python
python3.7 openpyxl 删除指定一列或者一行的代码
2019/10/08 Python
Topshop法国官网:英国快速时尚品牌
2018/04/08 全球购物
利达恒信公司.NET笔试题面试题
2016/03/05 面试题
大学生预备党员自我评价分享
2013/11/16 职场文书
2014年文学毕业生自我鉴定
2014/04/23 职场文书
2015年教师业务工作总结
2015/05/26 职场文书
致我们终将逝去的青春观后感
2015/06/10 职场文书
安全第一课观后感
2015/06/18 职场文书
2015年初中教务处工作总结
2015/07/21 职场文书