一个随机排列元素的方法, 其实之前是在摄影页面写的一个小效果.
查看演示: 点此查看DEMO
实现方法
利用Math.random()产生随机数, 再通过sort()进行随机排列.
核心代码
function
randomFun
(){
var h5 = document . getElementsByTagName ( ' h5 ' )[ 0 ]
var spanItem = document . getElementsByTagName ( ' span ' ) ;
var random = function (){ return Math . random () > 0.5 ? - 1 : 1 } ; //为sort()传入的随机排列参数
var spanArr = new Array () ; //用来存放元素的数组
var cssArr = new Array () ; //用来存放样式值的数组
var k , m ;
for ( var i = 0 ; i < spanItem . length ; i ++ ){
spanArr . push ( spanItem [ i ]) ; //将元素存入元素数组
cssArr . push ( i ) ; //将对应的下标值存入样式值数组
}
spanArr . sort ( random ) ; //打乱元素数组排列顺序
cssArr . sort ( random ) ; //打乱样式值数组排列顺序
for ( k = 0 ; k < spanArr . length ; k ++ ){
h5 . appendChild ( spanArr [ k ]) ; //将打乱后的元素重新插入到页面中
}
for ( m in cssArr ){
spanArr [ m ] . className = ' color_ ' + cssArr [ m ] ; //将打乱后的样式加给元素
}
}
var h5 = document . getElementsByTagName ( ' h5 ' )[ 0 ]
var spanItem = document . getElementsByTagName ( ' span ' ) ;
var random = function (){ return Math . random () > 0.5 ? - 1 : 1 } ; //为sort()传入的随机排列参数
var spanArr = new Array () ; //用来存放元素的数组
var cssArr = new Array () ; //用来存放样式值的数组
var k , m ;
for ( var i = 0 ; i < spanItem . length ; i ++ ){
spanArr . push ( spanItem [ i ]) ; //将元素存入元素数组
cssArr . push ( i ) ; //将对应的下标值存入样式值数组
}
spanArr . sort ( random ) ; //打乱元素数组排列顺序
cssArr . sort ( random ) ; //打乱样式值数组排列顺序
for ( k = 0 ; k < spanArr . length ; k ++ ){
h5 . appendChild ( spanArr [ k ]) ; //将打乱后的元素重新插入到页面中
}
for ( m in cssArr ){
spanArr [ m ] . className = ' color_ ' + cssArr [ m ] ; //将打乱后的样式加给元素
}
}