window.onload=function(){

var oSpiral=document.getElementById('spiral');

var oUl=oSpiral.getElementsByTagName('ul')[0];

var aLi=oUl.getElementsByTagName('li');

var size=6;

var len=size*size;

var eachSize=50;

var col=0;

var row=0;

var min=0;

var max=size-1;

var arr=[];

var bgArr=[];

oUl.style.width=size*(eachSize+1)+'px';

oUl.style.height=size*(eachSize+1)+'px';

for(var i=0;i<len;i++){

var oLi=document.createElement('li');

oLi.style.width=eachSize+'px';

oLi.style.height=eachSize+'px';

oUl.appendChild(oLi);

}

for(var j=0;j<len;j++){

//aLi[ row * size + col ].innerHTML = j;

arr.push(aLi[row*size+col]);

if(row === min && col < max){

col++;

}else if(col === max && row < max){

row++;

}else if(row ===max && col > min){

col--;

}else if(col === min && row > min){

row--;

}if(row-1===min && col===min){

min++;

max--;

}

}

for(var i=0;i<len;i++){

if(i%4===0){

var n=Math.floor(Math.random()*10);

var bgImg='url(../images/'+n+'.jpg)';

arr[i].style.backgroundImage=bgImg;

bgArr.push([i,bgImg]);

}

}

move();

setInterval(move,1000);

function move(){

for(var i=0;i<aLi.length;i++){

aLi[i].style.backgroundImage='';

aLi[i].className='';

}

for(var i=0;i<bgArr.length;i++){

bgArr[i][0]++;

if(arr[bgArr[i][0]]){

arr[bgArr[i][0]].style.backgroundImage=bgArr[i][1];

arr[bgArr[i][0]].className='active';

arr[bgArr[i][0]].style.animationDelay = -Math.random()*1 + 's';

arr[bgArr[i][0]].style.webkitAnimationDelay = -Math.random()*1 + 's';

}else{

bgArr.pop();

var n=Math.floor(Math.random()*10);

var bgImg='url(../images/'+n+'.jpg)';

bgArr.unshift([0,bgImg]);

}





}

}

}

原生js螺旋运动的更多相关文章

  1. 原生JS封装Ajax插件(同域&&jsonp跨域)

    抛出一个问题,其实所谓的熟悉原生JS,怎样的程度才是熟悉呢? 最近都在做原生JS熟悉的练习... 用原生Js封装了一个Ajax插件,引入一般的项目,传传数据,感觉还是可行的...简单说说思路,如有不正 ...

  2. 常用原生JS方法总结(兼容性写法)

    经常会用到原生JS来写前端...但是原生JS的一些方法在适应各个浏览器的时候写法有的也不怎么一样的... 今天下班有点累... 就来总结一下简单的东西吧…… 备注:一下的方法都是包裹在一个EventU ...

  3. 原生JS实现"旋转木马"效果的图片轮播插件

    一.写在最前面 最近都忙一些杂七杂八的事情,复习软考.研读经典...好像都好久没写过博客了... 我自己写过三个图片轮播,一个是简单的原生JS实现的,没有什么动画效果的,一个是结合JQuery实现的, ...

  4. 再谈React.js实现原生js拖拽效果

    前几天写的那个拖拽,自己留下的疑问...这次在热心博友的提示下又修正了一些小小的bug,也加了拖拽的边缘检测部分...就再聊聊拖拽吧 一.不要直接操作dom元素 react中使用了虚拟dom的概念,目 ...

  5. React.js实现原生js拖拽效果及思考

    一.起因&思路 不知不觉,已经好几天没写博客了...近来除了研究React,还做了公司官网... 一直想写一个原生js拖拽效果,又加上近来学react学得比较嗨.所以就用react来实现这个拖 ...

  6. 原生JS实现全屏切换以及导航栏滑动隐藏及显示——重构前

    思路分析: 向后滚动鼠标滚轮,页面向下全屏切换:向前滚动滚轮,页面向上全屏切换.切换过程为动画效果. 第一屏时,导航栏固定在页面顶部,切换到第二屏时,导航条向左滑动隐藏.切换回第一屏时,导航栏向右滑动 ...

  7. 原生js实现autocomplete插件

    在实际的项目中,能用别人写好的插件实现相关功能是最好不过,为了节约时间成本,因为有的项目比较紧急,没充分时间让你自己来写,即便写了,你还要花大量时间调试兼容性.但是出于学习的目的,你可以利用闲暇时间, ...

  8. 原生js封装ajax:传json,str,excel文件上传表单提交

    由于项目中需要在提交ajax前设置header信息,jquery的ajax实现不了,我们自己封装几个常用的ajax方法. jQuery的ajax普通封装 var ajaxFn = function(u ...

  9. 原生JS实现购物车结算功能代码+zepto版

    html <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3 ...

随机推荐

  1. Knockout 重新绑定注意要点

    function ReImport(id) { //点击按钮时调用函数名称, var node = document.getElementById('bindingNode'); //bindingN ...

  2. 小米开源文件管理器MiCodeFileExplorer-源码研究(8)-文件排序工具类FileSortHelper

    FileSortHelper的核心功能就是,对文件集合FileInfo排序.FileInfo有若干字段,根据字段定义了4种比较器Comparator.调用示例:Collections.sort(Lis ...

  3. PA模块经常使用表

    SELECT * FROM pa_projects_all; --项目 SELECT * FROM pa_project_types; --项目类型 SELECT * FROM pa_project_ ...

  4. 2.vector数组

    创建vector数组 vector<,,,, }; 尾部插入 ; i < ; i++) { myint.push_back(i); } 读取头部和尾部 cout << myin ...

  5. C#解析HTML源码

    刚做了一个小任务,需要抓取其他网站的部分数据,这里就顺便介绍使用Winista.Text.HtmlParser这个类库如何解析HTML并抓取部分数据 1.获取指定网站的页面源码 string url ...

  6. 为RecyclerView添加item的点击事件

    RecyclerView侧重的是布局的灵活性,虽说可以替代ListView但是连基本的点击事件都没有,这篇文章就来详细讲解如何为RecyclerView的item添加点击事件,顺便复习一下观察者模式. ...

  7. golang sync.Mutex(2)

    package main import ( "fmt" "sync" "time" ) type User struct { Name st ...

  8. 推广一下新Blog www.hrwhisper.me

    新博客地址:www.hrwhisper.me 欢迎互访加友链~

  9. Spring CORS

    转载:Spring MVC 4.2 增加 CORS 支持 http://spring.io/blog/2015/06/08/cors-support-in-spring-framework http: ...

  10. 怎样让索引仅仅能被一个SQL使用

    有个徒弟问我,要创建一个索引,去优化一个SQL,可是创建了索引之后其它 SQL 也要用 这个索引,其它SQL慢死了.要优化的SQL又快.遇到这样的问题咋搞? 一般遇到这样的问题还是非常少的.处理的方法 ...