動態(tài)的9*9乘法表效果的實現(xiàn)代碼
近日在群里看到有個題目,拿出來寫寫,
要求:
用html,css,原生js實現(xiàn)如圖的效果,先正向輸出,然后逆向回溯,最后停留在完整的畫面。
首先:
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主要就是為了消除出現(xiàn)雙border的問題。
接下來重點來了
javascript代碼:
首先創(chuàng)建一個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循環(huán)遍歷出9*9乘法表格:
for(var i = 1;i <= 9;i++){ for(var j = 1;j <= i;j++){ //內容 } }
3,將循環(huán)內容push進之前新建的空數組:
html.push('<span>'+j+'*'+i+'='+(j*i)+'</span>');
4,注意為了實現(xiàn)階梯在j循環(huán)完畢之后添加一個換行字符:
html.push('<br/>');
5,最后記得return出剛剛那個數組:
return html;
創(chuàng)建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) }
我們依然是創(chuàng)建一個新的函數:inHTML()
1,首先聲明一些初始化變量
var html = create(),//調用之前創(chuàng)建的9*9函數 i = 0,//初始化變量i tmp = create(), timer = null,//初始化 result = document.getElementById('result');//獲取id
2,接著我們創(chuàng)建一個定時器,讓數據依次展示:
timer = setInterval(function(){ //內容 },100)
讓100毫秒執(zhí)行一次這個定時器
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();
完成。
大家可以去自己去試試,有更好的想法可以給我留言。
以上這篇動態(tài)的9*9乘法表效果的實現(xiàn)代碼就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
元素的內聯(lián)事件處理函數的特殊作用域在各瀏覽器中存在差異
在一個元素的屬性中綁定事件,實際上就創(chuàng)建了一個內聯(lián)事件處理函數(如<h1 onclick="alert(this);"...>...</h1>),內聯(lián)事件處理函數有其特殊的作用域鏈,并且各瀏覽器的實現(xiàn)細節(jié)也有差異。2011-01-01實現(xiàn)checkbox全選、反選、取消JavaScript小腳本異常
實現(xiàn)checkbox全選,反選,取消JavaScript小腳本的時出現(xiàn)點小異常,大家可以看看,以后就不要犯這個特別2的錯誤了2014-04-04常見的瀏覽器存儲方式(cookie、localStorage、sessionStorage)
今天我們從前端的角度了解一下瀏覽器存儲,我們常見且常用的存儲方式主要由兩種:cookie、webStorage(localStorage和sessionStorage)。本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友參考下吧2019-05-05