js 图片瀑布流效果实现

/** * Created by wwtliu on 14/9/5. */$(document).ready(function(){    $(window).on("load",function(){        imgLocation();        var dataImg = {"data":[{"src":"1.jpg"},{"src":"2.jpg"},{"src":"3.jpg"},{"src":"4.jpg"},{"src":"5.jpg"}]};        window.onscroll = function(){            if(scrollside()){                $.each(dataImg.data,function(index,value){                    var box = $("<div>").addClass("box").appendTo($("#container"));                    var content = $("<div>").addClass("content").appendTo(box);//                    console.log("./img/"+$(value).attr("src"));                    $("<img>").attr("src","./img/"+$(value).attr("src")).appendTo(content);                });                imgLocation();            }        };    });});

function scrollside(){    var box = $(".box");    var lastboxHeight = box.last().get(0).offsetTop+Math.floor(box.last().height()/2);    var documentHeight = $(document).width();    var scrollHeight = $(window).scrollTop();    return (lastboxHeight<scrollHeight+documentHeight)?true:false;}

function imgLocation(){    var box = $(".box");    var boxWidth = box.eq(0).width();    var num = Math.floor($(window).width()/boxWidth);    var boxArr=[];    box.each(function(index,value){//        console.log(index+"--"+value);        var boxHeight = box.eq(index).height();        if(index<num){            boxArr[index]= boxHeight;//            console.log(boxHeight);        }else{            var minboxHeight = Math.min.apply(null,boxArr);//            console.log(minboxHeight);            var minboxIndex = $.inArray(minboxHeight,boxArr);//            console.log(minboxIndex);//            console.log(value);            $(value).css({                "position":"absolute",                "top":minboxHeight,                "left":box.eq(minboxIndex).position().left            });            boxArr[minboxIndex]+=box.eq(index).height();        }    });}

原文地址:https://www.cnblogs.com/pink-chen/p/10581531.html

时间: 2024-12-22 14:37:05

js 图片瀑布流效果实现的相关文章

一步步教你js原生瀑布流效果实现

一步步教你js原生瀑布流效果实现 什么是瀑布流效果 首先,让我们先看一段动画: 在动画中,我们不难发现,这个动画有以下特点: 1.所有的图片的宽度都是一样的 2.所有的图片的高度是不一样的 3.图片一张挨着一张竖直排列 4.鼠标向下滚动,一直不停的加载图片 5.浏览器的宽度改变,图片的列数会进行相应的更改 那么这种效果类似现实生活中的瀑布,所以我们叫它瀑布流的效果. Js原生瀑布流效果的实现 从上述分析中,我们可以把整个效果分为以下四个部分: html+css界面搭建 瀑布流效果 浏览器向下滚动

jQuery+HTML5图片瀑布流效果

JavaScript与HTML5实现美女瀑布流布局,本方法是把图片的路径写在了JS的数组里,不过重点好像不是在这里,而是在图片如何自动排列的问题,你可以运行本实例后,点击“加载瀑布流布局”按钮,即可看到图片的瀑布流排列效果,现在很流行这个,希望您从本代码中能找到一些灵感. <!DOCTYPE HTML> <html> <head> <title>jQuery+HTML5图片瀑布流效果丨河北电动叉车|石家庄苗木</title> <style

利用LruCache和DiskLruCache加载网络图片实现图片瀑布流效果(升级版)

MainActivity如下: package cc.patience7; import android.os.Bundle; import android.app.Activity; /** * Demo描述: * 采用瀑布流的形式加载大量网络图片 * 详细分析参见WaterfallScrollView * * 更新说明: * 在原本的的基础上添加了本地缓存DiskLruCache * * 所以在该示例中对于图片的缓存采用了:LruCache + DiskLruCache 的技术 * * 参考

利用LruCache加载网络图片实现图片瀑布流效果(改进版)

MainActivity如下: package cc.patience4; import cc.patience4.R; import android.os.Bundle; import android.app.Activity; /** * Demo描述: * 采用瀑布流的形式加载大量网络图片 * 详细分析参见WaterfallScrollView * * 更新说明: * 该示例在基础版的基础上加入了图片查看功能. * 点击瀑布流中一张图片后可欣赏图片并能对图片进行单指拖动和两指缩放. * 对

利用LruCache加载网络图片实现图片瀑布流效果(基础版)

MainActivity如下: package cc.patience3; import android.os.Bundle; import android.app.Activity; /** * Demo描述: * 采用瀑布流的形式加载大量网络图片 * 详细分析参见WaterfallScrollView * * 参考资料: * 1 http://blog.csdn.net/guolin_blog/article/details/10470797 * 2 http://blog.csdn.net

js图片瀑布流

一个简单的图片瀑布流 首先准备一个html文件,css用到很少,所以写在html里,还需要一个js文件及几张图片(分辨率随意) html的代码: <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title></title> <style> body { margin: 0px; padding: 0px;

JS图片瀑布流制作

这里为大家带来了两种通过js制作图片瀑布流的方法. 一.绝对定位法 计算每个元素的绝对位置进行设置. <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0">

js实现瀑布流加载图片效果

今天学习了一个瀑布流加载效果,很多网站都有瀑布流效果,瀑布流就是很多产品显示在网页上,宽相同,高度不同,表现为多栏布局,随着页面滚动条向下滚动,这种布局还会不断加载数据块并附加至当前尾部.原理是:1.设定一行中的列数:2.取第一行中每一个div的高度并把每一个高度放进一个数组中:3.算出数组中最小高度的index值:4.把第二行的第一个div放到最小高度的div的下方并把重新算出的高度值放进数组中,重新计算最小高度的index值:5.以此类推实现多栏布局的瀑布流效果:6.如果最后一张div的高度

利用JS实现简单的瀑布流效果

哈哈, 我又来啦, 在这一段时间里, 我简单的学习了一下javascript(JS), 虽然不是很懂啦, 但是我也简单的尝试着做了点小东西, 就比如现在流行的瀑布流效果, 经过我的努力终于成功的完成了, 虽然中间非常的坎坷, 并不是一帆风顺但是最终我还是实现了个简单的效果, 下面就为大家简单的介绍下, 不知道的友友们, 有兴趣的话, 可以来参考下, 欢迎指出缺点和不足! 一.瀑布流之准备工作   首先声明下, 为了方便演示和联系, 我使用的是本地图片, 如果大家有需要的话可以尝试着写下网络的,