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


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 相关文章推荐
JavaScript中的私有成员
Sep 18 Javascript
Jquery ajax执行顺序 返回自定义错误信息(实例讲解)
Nov 06 Javascript
Google Dart编程语法和基本类型学习教程
Nov 27 Javascript
jquery.validate使用时遇到的问题
May 25 Javascript
JavaScript函数的调用以及参数传递
Oct 21 Javascript
Web Uploader文件上传插件使用详解
May 10 Javascript
Javascript获取随机数的实现方法
Jun 22 Javascript
详解axios在node.js中的post使用
Apr 27 Javascript
vue2.0实现分页组件的实例代码
Jun 22 Javascript
vue中利用simplemde实现markdown编辑器(增加图片上传功能)
Apr 29 Javascript
vue仿ios列表左划删除
Sep 26 Javascript
javascript实现简易计算器功能
Sep 23 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使用PHPMailer发送邮件的简单使用方法
2013/11/12 PHP
支持生僻字且自动识别utf-8编码的php汉字转拼音类
2014/06/27 PHP
PHP二进制与字符串之间的相互转换教程
2016/10/14 PHP
php ajax数据传输和响应方法
2018/08/21 PHP
Javascript学习笔记-详解in运算符
2011/09/13 Javascript
jquery实现奇偶行赋值不同css值
2012/02/17 Javascript
JavaScript高级程序设计阅读笔记(五) ECMAScript中的运算符(一)
2012/02/27 Javascript
使用js正则控制input标签只允许输入的值
2013/07/29 Javascript
jQery使网页在显示器上居中显示适用于任何分辨率
2014/06/09 Javascript
点击页面任何位置隐藏div的实现方法
2016/09/05 Javascript
详解JavaScript RegExp对象
2017/02/04 Javascript
javaScript 逻辑运算符使用技巧整理
2017/05/03 Javascript
Angular+Bootstrap+Spring Boot实现分页功能实例代码
2017/07/21 Javascript
前端主流框架vue学习笔记第二篇
2017/07/26 Javascript
JS制作简易计算器的实例代码
2020/07/04 Javascript
前端开发基础javaScript的六大作用
2020/08/06 Javascript
NodeJS开发人员常见五个错误理解
2020/10/14 NodeJs
[01:33]一分钟玩转DOTA2第三弹:DOTA2&DotA快捷操作大对比
2014/06/04 DOTA
python让图片按照exif信息里的创建时间进行排序的方法
2015/03/16 Python
对比Python中__getattr__和 __getattribute__获取属性的用法
2016/06/21 Python
python 调用HBase的简单实例
2016/12/18 Python
python配置文件写入过程详解
2019/10/19 Python
Python中的 ansible 动态Inventory 脚本
2020/01/19 Python
Python如何通过Flask-Mail发送电子邮件
2020/01/29 Python
python实现在列表中查找某个元素的下标示例
2020/11/16 Python
使用Python获取爱奇艺电视剧弹幕数据的示例代码
2021/01/12 Python
Jogun Shop中文官网:韩国知名时尚男装网站
2016/10/12 全球购物
美国全球旅游运营商:Pacific Holidays
2018/06/18 全球购物
UNIX文件名称有什么规定
2013/03/25 面试题
党员活动日总结
2014/05/05 职场文书
社区科普工作方案
2014/06/03 职场文书
2014年学生会工作总结范文
2014/11/07 职场文书
2015年机关党委工作总结
2015/05/23 职场文书
党校培训学习心得体会
2016/01/06 职场文书
Python的这些库,你知道多少?
2021/06/09 Python
vue实现省市区联动 element-china-area-data插件
2022/04/22 Vue.js