```
<style>
*{
margin: 0;
padding: 0;
}
img{
width: 230px;
padding: 5px;
vertical-align: bottom;
}
.content{
width: 240px;
border: 1px solid #eee;
/* box-shadow: 0 0 1px 1px #ccc; */
float: left;
position: relative;
}
#container{
position: relative;
margin-right: auto;
margin-left: auto;
}
</style>
</head>
<body>
<div id="container">
<div class="content">
<img src="images/01.jpg" alt="">
</div>
<div class="content">
<img src="images/02.jpg" alt="">
</div>
<div class="content">
<img src="images/03.jpg" alt="">
</div>
<div class="content">
<img src="images/04.jpg" alt="">
</div>
<div class="content">
<img src="images/05.jpg" alt="">
</div>
<div class="content">
<img src="images/06.jpg" alt="">
</div>
<div class="content">
<img src="images/07.jpg" alt="">
</div>
<div class="content">
<img src="images/08.jpg" alt="">
</div>
<div class="content">
<img src="images/09.jpg" alt="">
</div>
</div>
<script>
var url = {
dataUrl: [{
src: "01.jpg"
}, {
src: "02.jpg"
}, {
src: "03.jpg"
}, {
src: "04.jpg"
}, {
src: "05.jpg"
}, {
src: "06.jpg"
}, {
src: "07.jpg"
}, {
src: "08.jpg"
}, {
src: "09.jpg"
}, {
src: "10.jpg"
}, {
src: "11.jpg"
}, {
src: "12.jpg"
}]
}
window.onload = function(){
//確保內容加載完畢 否則無法獲取高度
var container = document.getElementById("container");
var contents = document.getElementsByClassName("content");
var data = url.dataUrl;
palceImg();
function palceImg(){
var ww = window .innerWidth;
var cw = contents[0].offsetWidth;
var num = Math.floor(ww/cw);
container.style.width = num*cw+"px";
//取到圖片整張數
var content_arr = Array.prototype.slice.call(contents);
//將contents變更為數組
var arr_height = [];
content_arr.forEach(function(element,index){
if(index<num){
arr_height.push(element.offsetHeight);
//也可將element替換成content_arr[index]
}
else{
var minHeight = Math.min(...arr_height);
console.log(minHeight);
var minIndex = arr_height.indexOf(minHeight);
console.log(minIndex);
var offsetLeft = content_arr[minIndex].offsetLeft;
element.style.position = "absolute";
element.style.top = minHeight+"px";
element.style.left = offsetLeft+"px";
arr_height[minIndex]+=content_arr[index].offsetHeight;
}
})
}
window.onscroll = function(){
if(sCondition()){
for(let i=0;i<data.length;i++){
let img = document.createElement("img");
img.src = "images/"+data[i].src;
let div = document.createElement("div");
div.className = "content";
div.append(img);
container.append(div);
palceImg();
}
}
}
function sCondition(){
var sh = document.documentElement.scrollTop;
var vh = document.documentElement.clientHeight;
var offsetTop = contents[contents.length-1].offsetTop+
contents[contents.length-1].offsetHeight/2
return sh+vh>offsetTop?true:false;
}
}
</script>
</body>
```
- 1.JS的基礎知識
- (1)調試
- (2)變量
- (3)數據類型
- 數據類型之間的轉換
- (4)全局變量和局部變量
- (5)運算符和表達式
- (6)數組
- 2.控制語句DOM,BOM,事件
- (1)控制語句
- (2)DOM的基礎
- 節點
- 改變樣式
- DOM事件
- 3.函數
- (1)聲明函數
- (2)構造函數
- (3)函數的參數
- (4)函數的傳參
- (5)改變this
- (6)重載
- (7)回調函數
- 4.數組
- (1)創建數組
- (2)增刪改查
- (3)字符串與數組的轉換
- 5.正則
- (1)創建正則
- (2)字符串中支持正則
- (3)語法
- 最核心的元字符
- 6.ajax
- (1)原生ajax
- (2)http,get,post
- (3)跨域
- (4)jQuery-ajax
- (5)axios
- 7.面向對象
- (1)原型
- (2)原型鏈,繼承
- (3)多態
- 8.es6小結
- 9.js+canvas實現驗證碼
- 10.js的作用域
- 11.閉包
- 實例
- toggle
- 圖片切換
- swiper
- 遮罩顏色漸變
- 表格添加
- 瀑布流
- ajax數據請求渲染
- 百度地圖