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


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实现选项卡的特别效果的实例
Mar 03 Javascript
Jquery的hover方法让鼠标经过li时背景变色
Sep 06 Javascript
Extjs的FileUploadField文件上传出现了两个上传按钮
Apr 29 Javascript
一个可以增加和删除行的table并可编辑表格中内容
Jun 16 Javascript
原生js实现复制对象、扩展对象 类似jquery中的extend()方法
Aug 30 Javascript
jquery获得同源iframe内body下标签的值的方法
Sep 25 Javascript
JavaScript中Array的实用操作技巧分享
Sep 11 Javascript
最新Javascript程序员面试试题和解题方法
Nov 23 Javascript
angular中两种表单的区别(响应式和模板驱动表单)
Dec 06 Javascript
vue-test-utils初使用详解
May 23 Javascript
Vue详细的入门笔记
May 10 Vue.js
利用 JavaScript 构建命令行应用
Nov 17 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 date与gmdate的获取日期的区别
2010/02/08 PHP
在Mac OS上自行编译安装Apache服务器和PHP解释器
2015/12/24 PHP
Zend Framework入门教程之Zend_Db数据库操作详解
2016/12/08 PHP
laravel dingo API返回自定义错误信息的实例
2019/09/29 PHP
js 事件小结 表格区别
2007/08/13 Javascript
获取网站跟路径的javascript代码(站点及虚拟目录)
2009/10/20 Javascript
js更优雅的兼容
2010/08/12 Javascript
利用JQuery的load函数动态加载其它页面的内容的实现代码
2010/12/14 Javascript
Javascript绝句欣赏 一些经典的js代码
2012/02/22 Javascript
jQuery.query.js 取参数的两点问题分析
2012/08/06 Javascript
jQuery实现级联菜单效果(仿淘宝首页菜单动画)
2014/04/10 Javascript
iframe的onreadystatechange事件在firefox下的使用
2014/04/16 Javascript
jQuery截取指定长度字符串的实现原理及代码
2014/07/01 Javascript
AngularJS基础 ng-switch 指令简单示例
2016/08/03 Javascript
微信小程序 require机制详解及实例代码
2016/12/14 Javascript
Boostrap栅格系统与自己额外定义的媒体查询的冲突问题
2017/02/19 Javascript
bootstrap+jQuery 实现下拉菜单中复选框全选和全不选效果
2017/06/12 jQuery
Vue-Router2.X多种路由实现方式总结
2018/02/09 Javascript
vue 界面刷新数据被清除 localStorage的使用详解
2018/09/16 Javascript
微信小程序实现的canvas合成图片功能示例
2019/05/03 Javascript
在layui tab控件中载入外部html页面的方法
2019/09/04 Javascript
JS页面获取 session 值,作用域和闭包学习笔记
2019/10/16 Javascript
基于html+css+js实现简易计算器代码实例
2020/02/28 Javascript
Python使用functools模块中的partial函数生成偏函数
2016/07/02 Python
用python找出那些被“标记”的照片
2017/04/20 Python
django的autoreload机制实现
2020/06/03 Python
CSS3模拟IOS滑动开关效果
2016/09/28 HTML / CSS
纽约21世纪百货官网:Century 21
2016/08/27 全球购物
日语专业毕业生自荐信
2013/11/11 职场文书
初三新学期计划书
2014/05/03 职场文书
骨干教师考核方案
2014/05/09 职场文书
Redis安装启动及常见数据类型
2021/04/14 Redis
基于Python绘制子图及子图刻度的变换等的问题
2021/05/23 Python
世界各国短波电台对东亚播送时间频率表(SW)
2021/06/28 无线电
sql通过日期判断年龄函数的示例代码
2021/07/16 SQL Server
python turtle绘制多边形和跳跃和改变速度特效
2022/03/16 Python