innerHTML应用--自动生成一个V字形(高级版)

一、效果图按钮可以多次点击。

二、HTML+CSS代码。

<style>
.box{ width:800px; margin:90px auto;}
.btn{ padding:5px 10px; color:#fff; background:#ff6600; cursor:pointer; font-size:16px; border-radius:5px;}
.list{ position:relative; margin-top:20px;}
.list li{ width:48px; height:48px; position:absolute; left:0; top:0;  line-height:50px; text-align:center; font-size:30px; border:1px solid #000; background:red; color:#fff;}
</style>

<div class="box">
    <input type="button" value="自动生成可以变化的V字型" id="btn" class="btn" />
    <ul id="list" class="list"></ul>
</div>

三、js代码。

<script>

window.onload = function(){

var oBtn = document.getElementById(‘btn‘);
    var oUl =document.getElementById(‘list‘);
    var aLi =oUl.getElementsByTagName(‘li‘);
    var on =true;
    var onOff = true;
    var onOff1 = false;
    var onOff2 = false;
    var onOff3 = false;
    
    var len =5;
    
    oBtn.onclick = function(){
        
        if(on){
            for(var i=0;i<len;i++){
                oUl.innerHTML+=‘<li>‘+i+‘</li>‘;
            }
            on=false;
        }
        
        if(onOff){
            
            for(var i=0;i<len;i++){

aLi[i].style.left=(0+i)*50+‘px‘;

if(i<Math.floor(len/2)){
                    aLi[i].style.top=(Math.floor(len/2)-i)*50+‘px‘;
                }else{
                    aLi[i].style.top=(i-Math.floor(len/2))*50+‘px‘;
                }
    
            }
            onOff=false;
            onOff1=true;
        }else if(onOff1){
            
            for(var i=0;i<len;i++){
                
                aLi[i].style.left=(0+i)*50+‘px‘;
                aLi[i].style.top=(0+i)*50+‘px‘;
                    
                if(i<Math.floor(len/2)){
                    aLi[i].style.top=(0+i)*50+‘px‘;
                }else{
                    aLi[i].style.left=(Math.floor(len/2)-(i-Math.floor(len/2)))*50+‘px‘;
                    
                }
    
            }
            onOff1=false;
            onOff2=true;
        
        }else if(onOff2){
            
            for(var i=0;i<len;i++){
                
                
                aLi[i].style.left=(0+i)*50+‘px‘;
                
                if(i<Math.floor(len/2)){
                    aLi[i].style.top=(0+i)*50+‘px‘;        
                }else{
                    aLi[i].style.top=(Math.floor(len/2)-(i-Math.floor(len/2)))*50+‘px‘;
                }
        
            }
            onOff2=false;
            onOff3=true;
        }else if(onOff3){
            for(var i=0;i<len;i++){
                
                aLi[i].style.top=(0+i)*50+‘px‘;    
                
                if(i<=Math.floor(len/2)){
                    aLi[i].style.left=(Math.floor(len/2)-2-(i-Math.floor(len/2)))*50+‘px‘;        
                }else{
                    aLi[i].style.left=(i-2)*50+‘px‘;
                }
            }
            onOff3=false;
            onOff=true;
        }

}

</script>

时间: 2024-10-18 06:36:25

innerHTML应用--自动生成一个V字形(高级版)的相关文章

innerHTML应用--自动生成一个V字形

一.效果图. 二.HTML+CSS代码. <style>.box{ width:800px; margin:90px auto;}.btn{ padding:5px 10px; color:#fff; background:#ff6600; cursor:pointer; font-size:16px; border-radius:5px;}.list{ position:relative; margin-top:20px;}.list li{ width:50px; height:50px;

wordpress4.4+版本自动生成一个768w像素缩略图的解决办法

4.4版本以后,wordpress增加了响应式图片的功能,目的是让图片能适应手机.平板等不同屏幕,但是我不想要这个功能,把缩略图大小全调成0,function.php里的相关函数全删除了, 上传图片还是会生成一个768*x像素的缩略图,这个问题你在网上是找不到解决办法的,所能找到的方法全部失效,好在我今天研究了一天,终于解决了. 在文件wp-admin\includes\schema.php里有如下代码,可以看出是4.4新增的功能. // 4.4.0 'medium_large_size_w'

javascript:第二章for 练习 自动生成V字形的div!

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-

设置并删除Dreamweaver自动生成的_notes文件夹

在使用Dreamweaver做项目时站点下面的每个文件夹里面都会自动生成一个_notes文件夹,删除之后马上又会再次生成.最近做项目时,有童鞋一不小心把所有的_notes文件夹全部存回到SVN上面了,使得大家都无法从服务器上获取最新版本,这下麻烦大了,只能在版本控制上面一个一个删除. 什么?不知道_notes文件夹是什么?_notes文件夹是记录一些维护设计备注的,比如给某个文件夹作一个备注,说明这个文件夹的作用. 有没有什么方法能够删除全部_notes文件夹并且不再让其自动生成呢?在站点管理器

CentOS 下使用SFTP实现网站自动生成FTP账号,实现Chroot功能

背景 手上有一个这样的系统:后台可以直接新建项目(网站),只需输入项目名称.访问域名(二级)以及其他一些额外信息,就可自动生成一个模板网站.大致原理是:提交这些信息的时候,后台会给项目新建一个目录,并把一些必须的文件拷贝过去,然后会有一个二级域名映射文件实现二级域名访问.当然,一级域名可实现访问,前提是要完成备案. 之前对于单个项目都是通过一个统一sftp账号管理的,随着项目的增多,发现要找到相应目录会比较困难,所以现在希望在新建项目的时候能够自动生成对应的sftp账号,实现一对一管理. 过程

java自动生成代码

看到这个标题,如果你以为真的可以完全自动生成,那你就太Naive啦 我这里想介绍的是,利用模板生成我们需要的代码 一.模板 首先来说说模板,常见的java模板有:FreeMarker.Velocity.Jamon.JByte等等. 不熟悉的可以百度下,其实我了解也不多,哈哈. 二.原理 其实就是利用模板,填充数据,得到我们需要的代码.即:输出=模板+数据 三.实例 实例利用FreeMarker来做的,所以你需要先导入freemarker的jar包 假设我们需要自动生成一个java bean,那么

serialVersionUID的作用以及IDEA、Eclipse如何自动生成serialVersionUID

说到serialVersionUID,首先要讲讲序列化. 序列化: 序列化可以将一个java对象以二进制流的方式在网络中传输并且可以被持久化到数据库.文件系统中,反序列化则是可以把之前持久化在数据库或文件系统中的二进制数据以流的方式读取出来重新构造成一个和之前相同内容的java对象. 当两个进程在进行远程通信时,彼此可以发送各种类型的数据.无论是何种类型的数据,都会以二进制序列的形式在网络上传送.发送方需要把这个Java对象转换为字节序列,才能在网络上传送:接收方则需要把字节序列再恢复为Java

如何根据动态SQL代码自动生成DTO

当前的状况 一般做数据库相关开发, 除非学习, 否则很少有人愿意直接使用JDBC.本来Java代码就比较啰嗦了,而直接用JDBC写代码之啰嗦简直有些令人发狂!所以在实际开发过程中,我们通常都会使用一些框架/库来帮助我们操作数据库.而且开源市场上的选择也比较多,就我个人接触到的有:Hibernate,MyBatis,JdbcTemplate,DbUtils,ActiveRecord,JavaLite等等. 这些框架都能大幅的提高开发效率,对于一些基本CRUD操作来说,虽然各有差异,但总的来说基本是

Nginx根据目录自动生成二级域名

前言:     每次创建二级域名如果都修改一次配置文件的话,项目多了会带来很多不必要的工作量,如果能够在一个web目录下创建一个文件夹并且自动生成文件目录的话,那真是极好的,本文就基于Nginx贴出这个配置文件. 实验环境(基于阿里云):     阿里云CentOS-6.5     domain.com 域名管理权限 正文:     首先需要在域名管理处做一个泛解析 把*.domain.com 指向你自己的服务器的ip,然后在Nginx配置文件里面增加配置,这个配置还可以制作三级域名,例如*.d