js瀑布流

来源:互联网 发布:方舟网络错误信息 编辑:程序博客网 时间:2024/05/21 05:18
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>瀑布流</title>
<style type="text/css">
*{
margin: 0;
padding: 0;
}
#wrap{
width: 800px;
border: 1px red solid;
margin: 0 auto;
overflow: hidden;
}
#wrap ul{
width: 200px;
padding: 10px;
list-style-type: none;
font-size: 50px;
border: 1px skyblue solid;
box-sizing: border-box;
float: left;
}
#wrap ul li{
margin-bottom: 20px;
padding-left: 5px;
background-color: #ccc;
width: 180px;

}
#square{
width: 50px;
height: 50px;
background-color: #ccc;
position: fixed;
bottom: 50px;
right: 50px;
display: none;
}
</style>
</head>

<body>

  <!-- 基本的HTML结构-->

<div id="wrap">
<ul></ul>
<ul></ul>
<ul></ul>
<ul></ul>
</div>
<div id="square"></div>
</body>
<script src="../js/tween.js"></script>//调用的js 库 可以实现一些基本的动画效果
<script type="text/javascript">
var wrap = document.querySelector("#wrap");//获取wrap的元素名
var uls  =wrap.children;//获取wrap下面的子元素
var num = 0; //计数

//随机函数
function rand(min,max){
return parseInt(Math.random()*(max-min+1)+min);

}

//将实现瀑布流功能的函数封装起来 并且在外部调用一下

function pbl(){



for (var i = 0; i < 20; i++) {
num++;
var newLi = document.createElement("li");//创建li标签
var h = rand(200,400);//定义一下随机的高度值
newLi.style.height = h+"px";//给每个li设置高度
newLi.innerHTML = num;//给每个li赋个数值



var arrH=[]; //定义一个数组 用来存放每次ul中li得高度
for (var j = 0; j < uls.length; j++) {
arrH.push(uls[j].offsetHeight);
}


var minHeight =arrH[0];//假设第一个il的高度最低
var minIndex = 0;//定义一个变量 用来存放最低值的下标值
for (var j = 0; j < uls.length; j++) {
if(minHeight>arrH[j]){//判断当前li是否是那组数中最低的 是的话就获取当前的下标
minHeight = arrH[j];
minIndex = j;


}
uls[minIndex].appendChild(newLi);//在高度值最小的那个元素下面输出li
}


}
}
pbl();
//当屏幕滚动的时候 出现小方框
window.onscroll = function(){
var square = document.getElementById('square');
var t =  document.documentElement.scrollTop||document.
body.scrollTop;
if(t>0){
square.style.display = "block";
}else{
square.style.display = "none";
}
}
//实现点击小方框 返回顶部的效果
square.onclick = function(){
var start = document.documentElement.scrollTop||document.
body.scrollTop;
var end = 0;
var change = end-start;
var t = 0;
var d = 30;
timer = setInterval(function(){
t++;
if(t>d){
clearInterval(timer);
}
if (document.documentElement.scrollTop) {
document.documentElement.scrollTop = Tween.Back.easeIn(t,start,change,d);
}else{
document.body.scrollTop = Tween.Back.easeIn(t,start,change,d);
}
},30)
}




































</script>
</html>
0 0
原创粉丝点击