php循环图案正方形,javascript输出指定行数正方形图案效果的实现方法

本文实例讲述了javascript实现输出指定行数正方形图案的方法。分享给大家供大家参考。具体如下:

javascript实现输出指定行数的正方形图案:点击生成图案,会有2个提示框,1,输入图案的组成字符,只能是1个字符哦2,输入正方形行数,路过大于10,会设置为10行数<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"

"http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<title> 生成正方形 </title>

<Script type="text/javascript">

//动态测字符的宽度,传入字符,放在span,判断宽度变化,返回

function get_width(zifu){

if(cwidth.innerHTML.length>0)cwidth.innerHTML="";//路过有元素,清空

var oldwidth=cwidth.offsetWidth;

cwidth.innerHTML=zifu;

var zifu_width=cwidth.offsetWidth-oldwidth;

cwidth.innerHTML="";

//alert(zifu_width);

return zifu_width;

}

//输出正方形函数

function create(){

var tuxing=prompt("请输入图案,必须1个字符");//图案,路 a

if(tuxing==null||tuxing==""||tuxing.length>1){

alert("请输入图 案,图案必须1个字符");

return false;

}

//提示框,输入行数

var count=prompt("请输入正方形的行数");

if(count==null||count==""||count<1||isNaN(count)){

alert("您的输入的行数存在问题,1.不得空2.大于1 3.不得为非数字");

return false;

}

//根据行数,得到一行的字符窜

if(count>10){count=10;alert("输入的行数大于10,自动修改为10");}

var hangstr="";

for(i=1;i<=count;i++){

hangstr+=tuxing+" ";

//判断变长是否超过文档的

if(get_width(hangstr)>maxw-100){

alert("过长的行");

count=i-1;

hangstr=oldhangstr;

break;

}

oldhangstr=hangstr;

}

//生成图形字符串

var tustr="";//图形字符串

for(i=1;i<=count;i++)tustr+=hangstr+"<br/>";

//把图形字符串放入图形层

zengfang.innerHTML=tustr;

}

</script>

</head>

<body>

<p id="zengfang">此处显示图形</p>

<input type="button" value="生成正方形图案" οnclick="create()">

<br>

<span id="cwidth"></span>

<!-- 测试获取字符串的宽度,因为行数过大,会超过文档范围,而发生折行

<input type="text" value="" id="text1">

<input type="button" value="显示字符宽度" οnclick="get_width(text1.value)">

-->

<Script type="text/javascript">

var maxh=document.body.clientHeight;//文档高 正方形最大长度

var maxw=document.body.clientWidth;//文档宽,正方形最大长度

//alert(maxh);

//alert(maxw);

</script>

</body>

</html>

效果图:

图案字符:A,行数:5

07d04a60f9d9451ad385b3d7bb128cc8.png

71642fca5d1d249691019a5ff51b88c9.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值