用瀑布流的方式在网页上插入图片的简单实现方法


Posted in Javascript onSeptember 23, 2016

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

首先我们在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>

然后设定样式

<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>

接下来就是把图片用瀑布流的方式展现的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>

以上就是小编为大家带来的用瀑布流的方式在网页上插入图片的简单实现方法的全部内容了,希望对大家有所帮助,多多支持三水点靠木~

Javascript 相关文章推荐
jQuery学习笔记 操作jQuery对象 文档处理
Sep 19 Javascript
jquery特效 幻灯片效果示例代码
Jul 16 Javascript
javascript中setTimeout的问题解决方法
May 08 Javascript
node.js中的forEach()是同步还是异步呢
Jan 29 Javascript
JavaScript基于原型链的继承
Jun 22 Javascript
简单的JS轮播图代码
Jul 18 Javascript
全面介绍vue 全家桶和项目实例
Dec 27 Javascript
详解Vue、element-ui、axios实现省市区三级联动
May 07 Javascript
jQuery创建折叠式菜单
Jun 15 jQuery
node express使用HTML模板的方法示例
Aug 22 Javascript
vue用BMap百度地图实现即时搜索功能
Sep 26 Javascript
详解JavaScript中分解数字的三种方法
Jan 05 Javascript
浅谈Web页面向后台提交数据的方式和选择
Sep 23 #Javascript
Angular中使用ui router实现系统权限控制及开发遇到问题
Sep 23 #Javascript
打造自己的jQuery插件入门教程
Sep 23 #Javascript
jQuery.uploadify文件上传组件实例讲解
Sep 23 #Javascript
Bootstrap中点击按钮后变灰并显示加载中实例代码
Sep 23 #Javascript
jQuery实现边框动态效果的实例代码
Sep 23 #Javascript
BootStrap中按钮点击后被禁用按钮的最佳实现方法
Sep 23 #Javascript
You might like
PHP中call_user_func_array()函数的用法演示
2012/02/05 PHP
php实现判断访问来路是否为搜索引擎机器人的方法
2015/04/15 PHP
在Mac OS下搭建LNMP开发环境的步骤详解
2017/03/10 PHP
详细解读php的命名空间(二)
2018/02/21 PHP
详解php命令注入攻击
2019/04/06 PHP
奉献给JavaScript初学者的编写开发的七个细节
2011/01/11 Javascript
javascript实现促销倒计时+fixed固定在底部
2013/09/18 Javascript
jQuery中die()方法用法实例
2015/01/19 Javascript
javascript控制台详解
2015/06/25 Javascript
jquery实现可自动收缩的TAB网页选项卡代码
2015/09/06 Javascript
js跨浏览器的事件侦听器和事件对象的使用方法
2015/12/17 Javascript
Bootstrap树形控件使用方法详解
2016/01/27 Javascript
JavaScript数组的栈方法与队列方法详解
2016/05/26 Javascript
JQueryEasyUI之DataGrid数据显示
2016/11/23 Javascript
jQuery实现倒计时重新发送短信验证码功能示例
2017/01/12 Javascript
JavaScript中变量提升与函数提升经典实例分析
2018/07/26 Javascript
利用hasOwnProperty给数组去重的面试题分享
2018/11/05 Javascript
webpack自动打包和热更新的实现方法
2019/06/24 Javascript
vue登录以及权限验证相关的实现
2019/10/25 Javascript
vue打开新窗口并实现传参的图文实例
2021/03/04 Vue.js
Python开发的单词频率统计工具wordsworth使用方法
2014/06/25 Python
使用wxpython实现的一个简单图片浏览器实例
2014/07/10 Python
深入解析Python中的变量和赋值运算符
2015/10/12 Python
Python使用matplotlib模块绘制图像并设置标题与坐标轴等信息示例
2018/05/04 Python
Python实现手写一个类似django的web框架示例
2018/07/20 Python
关于Python作用域自学总结
2019/06/10 Python
在django中,关于session的通用设置方法
2019/08/06 Python
Python+OpenCV 实现图片无损旋转90°且无黑边
2019/12/12 Python
Python3爬虫里关于识别微博宫格验证码的知识点详解
2020/07/30 Python
野兽派官方旗舰店:THE BEAST 野兽派
2016/08/05 全球购物
应届生文秘专业个人自荐信格式
2013/09/21 职场文书
人力资源部培训专员岗位职责
2014/01/02 职场文书
2015双创工作总结
2015/07/24 职场文书
python实现剪贴板的操作
2021/07/01 Python
详解Nginx的超时keeplive_timeout配置步骤
2022/05/25 Servers
Win11 Build 22000.829更新补丁KB5015882发布(附更新修复内容汇总)
2022/07/15 数码科技