动态的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实现点击单元格改变背景色的方法
Feb 12 Javascript
JS获取鼠标相对位置的方法
Sep 20 Javascript
bootstrap的3级菜单样式,支持母版页保留打开状态实现方法
Nov 10 Javascript
使用JavaScript解决网页图片拉伸问题(推荐)
Nov 25 Javascript
JavaScript实现离开页面前提示功能【附jQuery实现方法】
Sep 26 jQuery
详解Vuex中mapState的具体用法
Sep 28 Javascript
JS实现的合并多个数组去重算法示例
Apr 11 Javascript
深入浅析Vue.js计算属性和侦听器
May 05 Javascript
vue 实现边输入边搜索功能的实例讲解
Sep 16 Javascript
手把手教你写一个微信小程序(推荐)
Oct 17 Javascript
解决vue单页面修改样式无法覆盖问题
Aug 05 Javascript
element-ui封装一个Table模板组件的示例
Jan 04 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获取数组最大值下标的方法
2015/05/12 PHP
php实现xml转换数组的方法示例
2017/02/03 PHP
php mysql_list_dbs()函数用法示例
2017/03/29 PHP
浅谈PHP匿名函数和闭包
2019/03/08 PHP
javascript实现的像java、c#之类的sleep暂停的函数代码
2010/03/04 Javascript
jQuery UI 实现email输入提示实例
2013/08/15 Javascript
JAVASCRIPT函数作用域和提前声明 分享
2013/08/22 Javascript
Nodejs关于gzip/deflate压缩详解
2015/03/04 NodeJs
深入JavaScript高级程序设计之对象、数组(栈方法,队列方法,重排序方法,迭代方法)
2015/12/01 Javascript
使用jQuery制作浮动工具栏的实例分享
2016/05/13 Javascript
AngularJS 自定义指令详解及示例代码
2016/08/17 Javascript
小程序视频或音频自定义可拖拽进度条的示例代码
2018/09/30 Javascript
vue-router 起步步骤详解
2019/03/26 Javascript
jQuery实现input输入框获取焦点与失去焦点时提示的消失与显示功能示例
2019/05/27 jQuery
javascript实现动态时钟的启动和停止
2020/07/29 Javascript
JS基础之逻辑结构与循环操作示例
2020/01/19 Javascript
Vue中点击active并第一个默认选中功能的实现
2020/02/24 Javascript
如何搭建一个完整的Vue3.0+ts的项目步骤
2020/10/18 Javascript
Python学习笔记_数据排序方法
2014/05/22 Python
实例讲解python函数式编程
2014/06/09 Python
Python基于pygame实现的弹力球效果(附源码)
2015/11/11 Python
python实现随机梯度下降法
2020/03/24 Python
python使用循环打印所有三位数水仙花数的实例
2018/11/13 Python
Python unittest框架操作实例解析
2020/04/13 Python
python爬虫爬取网页数据并解析数据
2020/09/18 Python
利用python进行文件操作
2020/12/04 Python
Python基于mediainfo批量重命名图片文件
2020/12/29 Python
python 使用xlsxwriter循环向excel中插入数据和图片的操作
2021/01/01 Python
详解CSS透明opacity和IE各版本透明度滤镜filter的最准确用法
2016/12/20 HTML / CSS
阿根廷在线宠物商店:Puppis
2018/03/23 全球购物
prAna官网:瑜伽、旅行和冒险服装
2019/03/10 全球购物
美国室内盆栽植物购买网站:Plants.com
2020/04/24 全球购物
个人工作主要事迹
2014/05/08 职场文书
检讨书范文
2015/01/27 职场文书
2015年营业员工作总结
2015/04/23 职场文书
解决vue $http的get和post请求跨域问题
2021/06/07 Vue.js