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


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 相关文章推荐
Js 刷新框架页的代码
Apr 13 Javascript
extjs 初始化checkboxgroup值的代码
Sep 21 Javascript
解决Jquery向页面append新元素之后事件的绑定问题
Mar 16 Javascript
JavaScript Sort 的一个错误用法示例
Mar 20 Javascript
详解javascript跨浏览器事件处理程序
Mar 27 Javascript
Jquery轮播效果实现过程解析
Mar 30 Javascript
简单的网页广告特效实例
Aug 19 Javascript
javascript将json格式数组下载为excel表格的方法
Dec 22 Javascript
JavaScript错误处理操作实例详解
Jan 04 Javascript
js取0-9随机取4个数不重复的数字代码实例
Mar 27 Javascript
js神秘的电报密码 哈弗曼编码实现
Sep 10 Javascript
Vue 中如何将函数作为 props 传递给组件的实现代码
May 12 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 裁剪图片成固定大小代码方法
2009/09/09 PHP
php进行支付宝开发中return_url和notify_url的区别分析
2014/12/22 PHP
PHP实现微信发红包程序
2015/08/24 PHP
php curl操作API接口类完整示例
2019/05/21 PHP
TNC vs BOOM BO3 第一场2.13
2021/03/10 DOTA
Javascript代码混淆综合解决方案-Javascript在线混淆器
2006/12/18 Javascript
js下通过prototype扩展实现indexOf的代码
2010/12/08 Javascript
javascript中负数算术右移、逻辑右移的奥秘探索
2013/10/17 Javascript
JavaScript针对网页节点的增删改查用法实例
2015/02/02 Javascript
JS获取CSS样式(style/getComputedStyle/currentStyle)
2016/01/19 Javascript
JavaScript制作简单的日历效果
2016/03/10 Javascript
设计模式中的facade外观模式在JavaScript开发中的运用
2016/05/18 Javascript
很棒的Bootstrap选项卡切换效果
2016/07/01 Javascript
javascript类型系统——undefined和null全面了解
2016/07/13 Javascript
Vue.js双向绑定操作技巧(初级入门)
2016/12/27 Javascript
Bootstrap模态窗口源码解析
2017/02/08 Javascript
使用Nodejs连接mongodb数据库的实现代码
2017/08/21 NodeJs
vue 路由页面之间实现用手指进行滑动的方法
2018/02/23 Javascript
Vue+Element实现动态生成新表单并添加验证功能
2019/05/23 Javascript
jQuery子选择器与可见性选择器实例分析
2019/06/28 jQuery
vue 实现路由跳转时更改页面title
2019/11/05 Javascript
浅谈webpack和webpack-cli模块源码分析
2020/01/19 Javascript
javascript设计模式 ? 迭代器模式原理与用法实例分析
2020/04/17 Javascript
python访问mysql数据库的实现方法(2则示例)
2016/01/06 Python
pandas apply使用多列计算生成新的列实现示例
2021/02/24 Python
Ralph Lauren英国官方网站:Ralph Lauren UK
2018/04/03 全球购物
Unix里面如何在后台运行程序
2016/10/14 面试题
公司请假条格式
2014/04/11 职场文书
目标责任书范文
2014/04/14 职场文书
个人安全生产承诺书
2014/05/22 职场文书
2014年妇幼保健工作总结
2014/12/08 职场文书
出生证明格式
2015/06/15 职场文书
统招统分证明
2015/06/23 职场文书
学校隐患排查制度
2015/08/05 职场文书
Python爬虫数据的分类及json数据使用小结
2021/03/29 Python
CSS实现渐变色边框(Gradient borders)的5种方法
2022/03/25 HTML / CSS