动态的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 相关文章推荐
jQuery基本过滤选择器使用介绍
Apr 18 Javascript
js实现Select列表各项上移和下移的方法
Aug 14 Javascript
jquery实现点击弹出带标题栏的弹出层(从右上角飞入)效果
Sep 19 Javascript
javascript实现计时器的简单方法
Feb 21 Javascript
JavaScript判断是否是微信浏览器
Jun 13 Javascript
Javascript对象字面量的理解
Jun 22 Javascript
举例讲解jQuery对DOM元素的向上遍历、向下遍历和水平遍历
Jul 07 Javascript
利用JavaScript实现栈的数据结构示例代码
Aug 02 Javascript
Vue 页面跳转不用router-link的实现代码
Apr 12 Javascript
React如何解决fetch跨域请求时session失效问题
Nov 02 Javascript
基于vue2的canvas时钟倒计时组件步骤解析
Nov 05 Javascript
使用electron制作满屏心特效的示例代码
Nov 27 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
一个程序下载的管理程序(一)
2006/10/09 PHP
PHP中uploaded_files函数使用方法详解
2011/03/09 PHP
PHP会话操作之cookie用法分析
2016/09/28 PHP
PHP实现的同步推荐操作API接口案例分析
2016/11/30 PHP
[原创]静态页面也可以实现预览 列表不同的显示方式
2006/10/14 Javascript
类似天猫商品详情随浏览器移动的示例代码
2014/02/27 Javascript
thinkphp中常用的系统常量和系统变量
2014/03/05 Javascript
js改变embed标签src值的方法
2015/04/10 Javascript
Js和JQuery获取鼠标指针坐标的实现代码分享
2015/05/25 Javascript
深入理解js函数的作用域与this指向
2016/05/28 Javascript
AngularJs ng-route路由详解及实例代码
2016/09/14 Javascript
关于Vue.js一些问题和思考学习笔记(1)
2016/12/02 Javascript
微信小程序开发之入门实例教程篇
2017/03/07 Javascript
javascript checkbox/radio onchange不能兼容ie8处理办法
2017/06/13 Javascript
vue iView 上传组件之手动上传功能
2018/03/16 Javascript
layui实现动态和静态分页
2018/04/28 Javascript
vue-cli3项目展示本地Markdown文件的方法
2019/06/07 Javascript
微信小程序实现日期格式化和倒计时
2020/11/01 Javascript
基于vue-draggable 实现三级拖动排序效果
2020/01/10 Javascript
Python3实现从文件中读取指定行的方法
2015/05/22 Python
python开发之字符串string操作方法实例详解
2015/11/12 Python
Python 内置函数进制转换的用法(十进制转二进制、八进制、十六进制)
2018/04/30 Python
Python数据类型之列表和元组的方法实例详解
2019/07/08 Python
Python实现微信翻译机器人的方法
2019/08/13 Python
使用OpenCV实现仿射变换—旋转功能
2019/08/29 Python
python将dict中的unicode打印成中文实例
2020/05/11 Python
对python中list的五种查找方法说明
2020/07/13 Python
css3实现图片遮罩效果鼠标hover以后出现文字
2013/11/05 HTML / CSS
Pretty Green美国:英式摇滚服饰风格代表品牌之一
2019/01/23 全球购物
总经理办公室主任岗位职责
2013/11/12 职场文书
2014年小学植树节活动方案
2014/03/02 职场文书
超级礼物观后感
2015/06/15 职场文书
vue-element-admin项目导入和导出的实现
2021/05/21 Vue.js
详解Laravel框架的依赖注入功能
2021/05/27 PHP
Python实现简单得递归下降Parser
2022/05/02 Python
Android Canvas绘制文字横纵向对齐
2022/06/05 Java/Android