动态的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给input和textarea设定ie中的focus
May 29 Javascript
纯js简单日历实现代码
Oct 05 Javascript
jQuery实现页面内锚点平滑跳转特效的方法总结
May 11 Javascript
ionic组件ion-tabs选项卡切换效果实例
Aug 27 Javascript
可输入文字查找ajax下拉框控件 ComBox的实现方法
Oct 25 Javascript
ES6概念 Symbol toString()方法
Dec 25 Javascript
jQuery加密密码到cookie的实现代码
Apr 18 jQuery
基于Vue中点击组件外关闭组件的实现方法
Mar 06 Javascript
layui弹出层按钮提交iframe表单的方法
Aug 20 Javascript
JS实现查找数组中对象的属性值是否存在示例
May 24 Javascript
关于layui的动态图标不显示的解决方法
Sep 04 Javascript
video.js添加自定义组件的方法
Dec 09 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
磨咖啡豆的密诀
2021/03/03 冲泡冲煮
php 数学运算验证码实现代码
2009/10/11 PHP
PHP时间戳 strtotime()使用方法和技巧
2013/10/29 PHP
PHP使用SOAP扩展实现WebService的方法
2016/04/01 PHP
Mootools 1.2教程 输入过滤第二部分(字符串)
2009/09/15 Javascript
锋利的jQuery 第三章章节总结的例子
2010/03/23 Javascript
ExtJs Excel导出并下载IIS服务器端遇到的问题
2011/09/16 Javascript
基于dom编程中 动态创建与删除元素的使用
2013/04/17 Javascript
js setTimeout 常见问题小结
2013/08/13 Javascript
jquery弹窗插件colorbox绑定动态生成元素的方法
2014/06/20 Javascript
原生javascript实现图片按钮切换
2015/01/12 Javascript
基于JS实现密码框(password)中显示文字提示功能代码
2016/05/27 Javascript
jquery实现图片放大点击切换
2017/06/06 jQuery
ajax +NodeJS 实现图片上传实例
2017/06/06 NodeJs
vue中实现移动端的scroll滚动方法
2018/03/03 Javascript
vue.js单文件组件中非父子组件的传值实例
2018/09/13 Javascript
axios取消请求的实践记录分享
2018/09/26 Javascript
vue多层嵌套路由实例分析
2019/03/19 Javascript
JS实现根据详细地址获取经纬度功能示例
2019/04/16 Javascript
微信小程序--获取用户地理位置名称(无须用户授权)的方法
2019/04/29 Javascript
layui表格数据重载
2019/07/27 Javascript
vue中get请求如何传递数组参数的方法示例
2019/11/08 Javascript
vue 使用async写数字动态加载效果案例
2020/07/18 Javascript
通过实例解析json与jsonp原理及使用方法
2020/09/27 Javascript
仅用50行代码实现一个Python编写的计算器的教程
2015/04/17 Python
Python交互环境下实现输入代码
2018/06/22 Python
对Python3 序列解包详解
2019/02/16 Python
总结python中pass的作用
2019/02/27 Python
详解Python字典的操作
2019/03/04 Python
解决os.path.isdir() 判断文件夹却返回false的问题
2019/11/29 Python
采用冷却技术的超自然舒适度:GhostBed床垫
2018/09/18 全球购物
安德玛菲律宾官网:Under Armour菲律宾
2020/07/28 全球购物
医学毕业生自荐信
2013/10/11 职场文书
个人授权委托书范文
2014/09/21 职场文书
员工年终考核评语
2014/12/31 职场文书
电话营销开场白
2015/05/29 职场文书