javascript制作图javascript制作图片无限懒加载,轻松又实用片无限懒加载,轻松又实用

知识点:for循环语句,DOM概念,元素获取,动态布局,基本算法,节点操作,JQ与JS的关系与区别,JS的重要性,如何学习JS。

html代码:

        <div id="box"><!--id="自定义的名称" 命名规范(见名知义:用有语义的英文单词)-->
            <ul><!--无序列表标签-->
                <!--img图片四要素:src width height alt(解释说明)-->
                <li></li>
                <li></li>
                <li></li>
                <li></li>
            </ul>
        </div>

css代码:

        <style>/*css 样式 */
            *{/* 通用选择器:选择到所有的标签元素*/
                margin:0;/*外边距*/
                padding:0;/*内边距*/
            }
            #box{/* # id选择器*/
                width:1000px;
                height:500px;
                /*优秀的开发工程师一定是一个为服务器/cpu考虑的
                background:#963;*/
                margin:auto;
            }
            #box ul li{
                list-style:none;/*去除前面的小黑圆点*/
                width:225px;
                /*height:200px;*/
                background:#fff;
                float:left;/*左浮动:与父元素的左端对齐依次往右端显示,显示不下就换行接着显示*/
                padding:5px;
                margin:5px;
                box-shadow:0 0 5px #333;/*边框阴影:x方向的偏移 y方向偏移 模糊度 颜色*/
            }
            #box ul li img{
                 width:225px;
                 transition:1s;
            }
        </style>

javascript代码:

    <script src="js/jquery.js"></script><!--引入jq文件-->
        <script>
            //创建一个数组来保存图片
            var arr = [//数组名字
                {src : "images/1.png"},
                {src : "images/2.jpg"},
                {src : "images/3.jpg"},
                {src : "images/4.jpg"},
                {src : "images/5.jpg"},
                {src : "images/6.jpg"},
                {src : "images/7.jpg"},
                {src : "images/8.jpg"},
                {src : "images/9.jpg"},
                {src : "images/10.jpg"},
                {src : "images/11.jpg"},
                {src : "images/12.jpg"}
            ];
            //console.log(arr[0].src);
            var i = 0;//定义一个变量
            //动态生成图片标签,添加到Li里面
            function create(){//封装一个函数来创建
                //创建一个div标签
                var oDiv = document.createElement("div");
                var oImg = new Image();//新建一个图片对象
                //0%12 0/12=0 余0 1/12=0余1 2/12=0余2 12/12=1余0 13/12=1余1
                oImg.src = arr[i%arr.length].src;//把数组里面图片的路径赋值给img
                oImg.style.cssText = "opacity:0;transform:scale(0)";
                oDiv.appendChild(oImg);//把图片标签放到div里面
                //把div放到高度最小的li里面
                getList($("#box ul li")).append(oDiv);
                (function(oImg){
                    setTimeout(function(){
                        oImg.style.cssText = "opacity:1;transform:scale(1)";
                    },100);
                })(oImg)//立马执行
            }
            //create();//调用函数
            //alert(arr.length);
            //封装一个函数来获取高度最小的li
            function getList(obj){
                var length = obj.length;//定义一个变量保存li的列数
                var h = Infinity;//每一列的高度都可以无限高
                var oLi;//定义一个变量来保存符合条件的li列返回出去
                for (var i=0;i<length ;i++ )
                {
                    //循环获取每一列的高度来和无限高h作对比 若果小于h加给这个元素添加eq(i)  jq插件里面具体获取某一个元素
                    if (obj.eq(i).height() < h)
                    {
                        h = obj.eq(i).height();
                        oLi = obj.eq(i);
                    }
                }
                return oLi;
            }
            //封装一个函数来循环动态添加多个图片
            var sum;
            function upload(){//自定的
                i++;
                if(i<12){
                    for(;i<12;i++){
                        create();
                    }
                }else{
                    sum = i;
                    for (;i<sum+3 ;i++ )
                    {
                        create();
                    }
                }
            }
            upload();

            //判断滚动条的高度,然后动态添加
            var scrollH = ‘‘;//文档高度
            var srollT = ‘‘;//滚动条高度
            $(function(){
                var _height = $(window).height();//获取可视区域的高度
                $(window).scroll(function(){//jq滚动条事件
                    scrollH = document.body.scrollHeight;//文档高度
                    srollT = document.body.scrollTop;//滚动条高度
                    //看得见的可视区域高度加上看不见的滚动条高度之和如果大于文档的高度的话就再添加图片
                    if(_height + srollT + 50 > scrollH){
                        upload();
                    }
                });
            });
        </script>

如果有对前端感兴趣前端程序员,可以加入我们的web前端技术学习群哦611,256580。会送前端的零基础教程噢!

原文地址:http://blog.51cto.com/13457136/2090281

时间: 2024-08-25 04:45:26

javascript制作图javascript制作图片无限懒加载,轻松又实用片无限懒加载,轻松又实用的相关文章

JavaScript chart--15款JavaScript制图表库

译文来源:http://www.sitepoint.com/15-best-javascript-charting-libraries/ 我们无法想像一个没有图表的Dashboard会是什么样.图表可以对数据进行直观有效的展示.不仅如此,图表的巧妙应用还可以提升网站的整体视觉效果. 本文将介绍一些非常好用的制作图表的JavaScript库.这些库能够帮助你完成你未来项目中的漂亮的.可定制化的图和表. 文中介绍的库大多是免费的,当然也有一些库会提供功能更加强大的付费版. 1. D3.js —— 数

JavaScript把项目本地的图片或者图片的绝对路径转为base64字符串、blob对象在上传

主题: JavaScript把项目本地的图片或者图片的绝对路径转为base64字符串.blob对象在上传. 用处: 从本地选择图片上传,如项目规定只能选择本项目文件夹下的图像上传为头像等. 主要思想: 使用canvas.toDataURL()方法将图片的绝对路径转换为base64编码. 具体用法: 在这我们引用淘宝服务器上的一张图片举例: var imgSrc = "https://img.alicdn.com/bao/uploaded/TB1qimQIpXXXXXbXFXXSutbFXXX.j

javascript实现拖曳与拖放图片

其实对于drag和drop拖曳与拖放事件IE很早以前就支持这个操作了,我们先来看看HTML5中新增的拖放API. 在HTML5中想要实现拖放操作,至少要做以下操作: 1. 将要拖放的对象元素的draggable属性设置为true,即(draggable="true"),这样才能拖放该元素,且img元素与a元素(必须指定href)默认允许拖放操作.如代码: <li draggable="true">Item 1</li> 2. 编写与拖放有关的

JavaScript和CSS实现详情图片显示大图特效

<!doctype html> <html> <head> <title>JavaScript和CSS实现详情图片显示大图特效</title> <meta http-equiv="content/text" charset="utf-8"> <style type="text/css"> BODY { FONT-SIZE: 14px; LINE-HEIGHT: 1

最新javascript自动按比例显示图片,按比例压缩图片显示

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Typ

javascript篇:javascript对象——Number

创建Number对象: var myNum = new Number(value); var myNum = Num(value); var myNum = value;//必要时会转换成Number对象,如myNum.toString()先转换,再调用. var myNum = Number.MAX_VALUE; Number对象的属性 Max_VALUE:可表示的最大的数 MIN_VALUE:可表示的最小的数 NaN:非数字值 NEGATIVE_INFINITY:负无穷大,溢出值 POSIT

ASP动态网页设计与Ajax技术----制作图片轮显效果

<!doctype html><html><head><meta charset="utf-8"><title>制作图片轮显效果</title></head><style type="text/css"> img{border: 0px;} .imgsBox{overflow: hidden; width: 282px; height: 176px;} .imgs a{d

轻松学习JavaScript十一:JavaScript基本类型(包含类型转换)和引用类型

一值的类型 早在介绍JS的数据类型的时候就提到过基本类型和引用类型,不过在说两种类型之前,我们先来了解一下变量的 值的类型.在ECMAScript中,变量可以存在两种类型的值,即原始值和引用值. (1)原始值 存储在栈中的简单数据段,也就是说,它们的值直接存储在变量访问的位置. (2)引用值 存储在堆中的对象,也就是说,存储在变量处的值是一个指针,指向存储对象的内存处. 为变量赋值时,ECMAScript的解释程序必须判断该值是原始类型,还是引用类型.要实现这一点,解释程序则需 尝试判断该值是否

Android攻城狮Gallery和ImageSwitcher制作图片浏览器

使用Gallery 和 ImageSwitcher 制作图片浏览器 Gallery介绍 我们有时候在手机上或者PC上看到动态的图片,可以通过鼠标或者手指触摸来移动它,产生动态的图片滚动效果,还可以根据你的点击或者触摸来触发其他事件响应.同样的,在Android中也提供这种实现,这就是通过Gallery在UI上实现缩略图浏览器. ------------------------- 谷歌已经将Gallery列为过期的控件,建议使用HorizonScrollView或者ViewPager. -----