Javascript-循环输出菱形,并可菱形自定义大小
var Cen = 6;//定义菱形中部为第几行(起始值为0)
//for循环输出菱形
document.write("<button onclick='xh()'>点我for循环</button>");//在HTML里输出一个按钮,点击后执行输出菱形的操作
document.write("<p id='xunhuan'></p>");//在HTML里输出一个段落p来容纳菱形
function xh() {
var kong = "";
var x = 0;//控制margin的数值增加减少的值
for (i = 0 ; i <= Cen * 2 ; i++) {
if (i == 0 || i == Cen * 2) {
kong += "<p style='margin-left:" + (Cen * 20 + 5) + "px'>8</p>";
};
if (i != 0 && i <= Cen) {
x += 20
kong += "<p style='margin-left:" + (Cen * 20 - x) + "px'> <span style='margin-right:" + (2 * x) + "px'>8</span> <span>8</span> </p>";
};
console.log(x);
if (i != Cen * 2 && i > Cen) {
x -= 20
kong += "<p style='margin-left:" + (Cen * 20 - x) + "px'> <span style='margin-right:" + (2 * x) + "px'>8</span> <span>8</span> </p>";
};
};
document.getElementById("xunhuan").innerHTML = kong;
};
//while循环输出菱形
document.write("<button onclick='xh2()'>点我while循环</button>");
document.write("<p id='xunhuan2'></p>");
function xh2() {
var kong = "";
var i = 0, x = 0;
while (i <= Cen * 2) {
if (i == 0 || i == Cen * 2) {
kong += "<p style='margin-left:" +( Cen * 20 + 5) + "px'>8</p>";
};
if (i != 0 && i <= Cen) {
x += 20;
kong += "<p style='margin-left:" + (Cen * 20 - x) + "px'> <span style='margin-right:" + (2 * x) + "px'>8</span> <span>8</span> </p>";
};
if (i != Cen * 2 && i > Cen) {
x -= 20;
kong += "<p style='margin-left:" + (Cen * 20 - x) + "px'> <span style='margin-right:" + (2 * x) + "px'>8</span> <span>8</span> </p>";
};
i++
};
document.getElementById("xunhuan2").innerHTML = kong;
};
逻辑分析:
1、我们用html建立一个中部处于第三行时的小的菱形,来分析它的构成和规律

2. (1)输出段落,菱形中部=3,段落p=5,因此我们首先用for||while循环输出5个段落;
(2)第一个p和最后一个p为菱形的顶点,仅需要在<p>里输入一个8即可,因此首先我们做一个判断,让其先输入两个顶点;
(3)中部为菱形的两条边,其中菱形为对称图图形,因此我们发现其和分为两个部分需递增和递减其margin-left和两条边相隔的margin-right就可以实现了,因此我们做了两个判断;
(4)最后我们来发现这个菱形的中部其实就是他对称分隔的两个判断的值,而最后一个顶点就是他输出的总的段落值,因此我们来根据这个中部值去定义每一个判断值
(5)最后我们来分析他的margin-left和两条边相隔的margin-right的规律,发现除了一头一尾一样,上面和下面出现规律递增递减,因此我们这里定义一个x=0
,通过其递增递减来实现菱形边距离的变化。
综上所述,步骤就几个:
html里输入一个菱形,分析他的结构,找出规律
判断两个顶点的位置和
判断中部和中部以上的边的位置
判断中部以上的边的位置
最后根据这个死的菱形去分析如何变成中部可以活动的菱形,分析其中不值与其的关联
Javascript-循环输出菱形,并可菱形自定义大小的更多相关文章
- JavaScript学习笔记-循环输出菱形,并可菱形自定义大小
var Cen = 6;//定义菱形中部为第几行(起始值为0) //for循环输出菱形 document.write("<button onclick='xh()'>点我for循 ...
- 09-使用for循环输出空心菱形(循环)
/** * 使用for循环输出空心菱形 * */ public class Test7 { public static void main(String[] args) { for (int i = ...
- for循环输出空心菱形的形状【java】
使用for循环语句输出以下“空心菱形”效果: * * * * * * * * * * * * * * * * 建议优先参考笔者的另一篇文章:<for循环输出菱形的形状[java]> 代码: ...
- javascript循环遍历数组输出key value
javascript循环遍历数组输出key value用$.each方法肯定不行的 所以采用如下方法<pre> markers = []; markers[2]=3; markers[3] ...
- Javascript打印金字塔,倒立金字塔,空心金字塔,菱形,空心菱形等
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- 面试题-一个for循环输出一个棱形
用一个for循环输出以下棱形 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ...
- JavaScript循环之for/in循环
今天学到了JavaScript的语句篇.同其他常见编程语言如C.Java等一样,JavaScript中的语句包含:①表达式语句②复合语句和空语句③声明语句④条件语句⑤循环语句⑥跳转语句,当然JavaS ...
- JavaScript循环语句-6---for语句,while语句的应用逻辑
JavaScript循环语句 学习目标 1.掌握for语句的语法结构 2.掌握for语句的应用逻辑 for语句 语法: For(语句1:语句2:语句3){ 被执行的代码块: } 语句1:在循环(代码块 ...
- java基础61 JavaScript循环语句之while、do...while、for及for...in循环(网页知识)
本文知识点(目录): 1.while循环语句 2.do...while循环语句 3.for循环语句 4.for...in循环语句 5.附录1(with语句) 6.附录2( ...
随机推荐
- 【AT3611】Tree MST
题目 这个题的输入首先就是一棵树,我们考虑一下点分 我们对于每一个分治重心考虑一下跨过这个分治重心的连边情况 就是把当前分治区域内所有的点向距离分治重心最近的点连边 考虑一下这个算法的正确性,如果我们 ...
- Android开发 ExpandableListView 可折叠列表详解
前言 在需要实现一个List的item需要包含列表的时候,我们就可以选择ExpandableListView. 其实这个View的原始设计还是ListView的那套.就是增加2层的ListView而已 ...
- js 面向对象几种数据模式
一.单例模式: 把描述同一事物的属性和方法放在同一内存空间下,实现了分组的作用,防止同一属性或者方法冲突.我们把这种分组编写代码的模式叫做单例模式即普通的对象. 单例模式是项目开发中最常用的一种开发模 ...
- a common method to rotate the image
/* * clockwise rotate * first reverse up to down, then swap the symmetry * 1 2 3 7 8 9 7 4 1 * 4 5 6 ...
- sip会话流程以及sip介绍(1)
参考连接 :https://www.2cto.com/kf/201609/546336.html https://www.w3cschool.cn/session_initiation_protoco ...
- 07_springmvc校验
一.概述 项目中,通常使用较多是前端的校验,比如页面中js校验.对于安全要求较高点建议在服务端进行校验. 服务端校验: 控制层conroller:校验页面请求的参数的合法性.在服务端控制层conrol ...
- 07_jQuery对象初识(五)事件(非常重要)
1. 目前为止学过的绑定事件的方式 1. 在标签里面写 onclick=foo(this); 2. 原生DOM的JS绑定 DOM对象.onclick=function(){...} 3. jQuery ...
- python数据类型,数据结构
数据类型:int,bool 数据结构:dict,list,tuple,set,str
- 2019-5-21-dotnet-core-使用-CoreRT-将程序编译为-Native-程序
title author date CreateTime categories dotnet core 使用 CoreRT 将程序编译为 Native 程序 lindexi 2019-05-21 11 ...
- 联想 Z470个人安装黑苹果参考
笔记本是联想 Z470,cpu i3-2350M 傻瓜图文式]Win系统下制作U盘CLOVER引导 EDIT部分 进去黑屏 U盘引导盘