码迷,mamicode.com
首页 > Web开发 > 详细

用瀑布流的方式在网页上插入图片

时间:2016-09-23 14:49:40      阅读:165      评论:0      收藏:0      [点我收藏+]

标签:

当我们的网页需要插入很多图片的时候,为了美观,我们可以选择用瀑布流的方法插入图片

首先我们在body里面放入我们需要展示的图片

技术分享
<div id="box">
    <div class="dinwei">
        <div class="pic">
            <img src="image/1.jpg">
        </div>
    </div>
    <div class="dinwei">
        <div class="pic">
            <img src="image/2.jpg">
        </div>
    </div>
    <div class="dinwei">
        <div class="pic">
            <img src="image/3.jpg">
        </div>
    </div>
    <div class="dinwei">
        <div class="pic">
            <img src="image/4.jpg">
        </div>
    </div>
    <div class="dinwei">
        <div class="pic">
            <img src="image/5.jpg">
        </div>
    </div>
    <div class="dinwei">
        <div class="pic">
            <img src="image/6.jpg">
        </div>
    </div>
    <div class="dinwei">
        <div class="pic">
            <img src="image/7.jpg">
        </div>
    </div>
    <div class="dinwei">
        <div class="pic">
            <img src="image/8.jpg">
        </div>
    </div>
    <div class="dinwei">
        <div class="pic">
            <img src="image/9.jpg">
        </div>
    </div>
</div>
View Code

然后设定样式

技术分享
<style type="text/css">
        *{
            margin: 0;
            padding: 0;
        }
        .dinwei{
            float: left;
        }
        .pic{
            padding: 5px;
            border: 1px solid #000000;
        }
        img{
            margin: 0;
            padding: 10px;
            width: 220px;
            height: auto;
        }
    </style>
View Code

接下来就是把图片用瀑布流的方式展现的JS

<script type="text/javascript">
    window.onload=function(){
    var dinwei=document.getElementsByClassName("dinwei");
    var windwidth=document.documentElement.clientWidth||document.body.clientWidth;
    var dinwidth=getStyle(dinwei[0],"width");
    var num=Math.floor(windwidth/dinwidth);
    //计算一行几张图片
    //取出高度最小的列
    var heightList=[];
    for(var i=0;i<dinwei.length;i++){
        if(i<num){
            heightList[heightList.length]=getStyle(dinwei[i],"height");
        }else{
            var minHeight=getmin(heightList);
            var amin=minHeight.value;
            var index=minHeight.index;

            var temp=dinwei[i];
            temp.style.position="absolute";
            temp.style.top=amin+"px";
            temp.style.left=index*dinwidth+"px";
            heightList[index]=amin+getStyle(temp,"height");
        }
    }
    }
    function getmin(arr){
        var min=arr[0];[3,3,2,1,5,2]
        for(var i=1;i<arr.length;i++){
            if(arr[i]<min){
                min=arr[i];
            }
        }
        var index=0;
        for(var j=0;j<arr.length;j++){
            if(arr[j]==min){
                index=j;
                break;
            }
        }
        return {value:min,index:index}
    }
    function getStyle(obj, attr) {
        if (obj.currentStyle) {
            return parseFloat(obj.currentStyle[attr]);
        } else {
            return parseFloat(window.getComputedStyle(obj)[attr]);

        }
    }
</script>

 

用瀑布流的方式在网页上插入图片

标签:

原文地址:http://www.cnblogs.com/parkboyoung/p/5899707.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!