精华内容
下载资源
问答
  • web前端图片资源

    2016-11-06 15:37:10
    web前端常用图片资源
  • web前端 图片缩放特效

    千次阅读 2017-06-19 22:56:34
    web前端 图片缩放特效 如下图: 当鼠标进入div框内;图片发生放大或缩小

    web前端 图片缩放特效

    如下图:

    当鼠标进入div框内;图片发生放大或缩小

    代码:


    <div>
     <ul class="div-tupian-ul">
    	
     
        <li><img src="http://f10.baidu.com/it/u=247176219,1089816087&fm=76" width="159" height="117" alt="颈椎引起的眩晕" /></li>
    
     
     
    </ul>
    </div>
    <div>
     <ul class="div-tupian-ul">
    	
     
        <li><img src="http://f10.baidu.com/it/u=247176219,1089816087&fm=76" width="159" height="117" alt="颈椎引起的眩晕" /></li>
    
     
    </ul>
    </div>

    css样式:

    <style>
    .div-tupian-ul li{
    	float:left;
    border: #F00 solid 2px;
    	width:159px; height:117px;
    	 overflow:hidden;   cursor:pointer;
    margin:10px;
    			}
    .div-tupian-ul li img{
    	-webkit-transform:scale(1);
    	-moz-transform:scale(1);
    	-o-transform:scale(1);
    	transform:scale(1);
    	-webkit-transition:all 2s ease;
    	-moz-transition:all 2s ease;
    	-o-transition:all 2s ease;
    	transition:all 2s ease;}
    
    .div-tupian-ul li:hover img{-webkit-transform:scale(1.15);
    -moz-transform:scale(2);
    -o-transform:scale(2);
    transform:scale(2);
    -webkit-transition:all 1s ease;
    -moz-transition:all 1s ease;
    -o-transition:all 1s ease;
    transition:all 1s ease;
    
    
    
    }
    
    </style>



    展开全文
  • web前端图片懒加载实现原理

    千次阅读 2016-03-20 16:32:48
    摘自:web前端图片懒加载实现原理 前端时间面试的时候老是被问到图片懒加载实现及原理,由于自己在实际项目中并没有用过,只是了解过大概,所以回答起来都不尽如人意,趁这段时间空闲下来有时间好好研究下,话不多...

    摘自:web前端图片懒加载实现原理

    前端时间面试的时候老是被问到图片懒加载实现及原理,由于自己在实际项目中并没有用过,只是了解过大概,所以回答起来都不尽如人意,趁这段时间空闲下来有时间好好研究下,话不多说,直奔主题~


    一、html(这里只列出相关的结构,body那些就不列了~)


    <ul>
        <li>1</li>
        <li>2</li>
        <li>3</li>
        <li>4</li>
        <li>5</li>
    </ul>
    <img class="imgLazyLoad" data-src="http://office.qq.com/images/title.jpg" />
    <ul>
        <li>1</li>
        <li>2</li>
        <li>3</li>
        <li>4</li>
        <li>5</li>
    </ul>
    其中,img标签就是我们今天的主角,data-src属性上面保存着我们后面需要动态加载的图片地址,初始化时图片没有设置任何链接~


    二、js(css就略过了)


    (function(){//立即执行函数
        let imgList = [],delay,time = 250,offset = 0;
        function _delay(){//函数防抖
            clearTimeout(delay);
            delay = setTimeout(() => {
                _loadImg();
            },time)
        };
        function _loadImg(){//执行图片加载
            for(let i = 0 ; i < imgList.length; i++){
                if(_isShow(imgList[i])){
                    imgList[i].src = imgList[i].getAttribute('data-src');
                    imgList.splice(i,1);
                }
            }
        };
        function _isShow(el){//判断img是否出现在可视窗口
            let coords = el.getBoundingClientRect();
            return (coords.left >= 0 && coords.left >= 0 && coords.top) <= (document.documentElement.clientHeight || window.innerHeight) + parseInt(offset);
        };
        function imgLoad(selector){//获取所有需要实现懒加载图片对象引用并设置window监听事件scroll
            _selector = selector || '.imgLazyLoad';
            let nodes = document.querySelectorAll(selector);
            imgList = Array.apply(null,nodes);
            window.addEventListener('scroll',_delay,false)
        };
        imgLoad('.imgLazyLoad')
    })()
    我们来一段段解释~


    1.首先我们把这段js封装到自执行函数里面,也就是:


    (function(){})()
    1
    这类型的函数,目的是生成一个新的执行上下文环境,防止里面的变量污染全局环境。 
    想学习更多相关知识,请点击js立即执行函数


    2.声明所需参数:


    var imgList = [],delay,time,offset;
    1
    imgList:保存所有图片节点的数组
    delay:保存的是setTimeout生成的引用
    time:控制防抖函数延迟执行的时间
    offset:设置图片距离可视区域多远则立即加载的偏差值
    3.监听scroll事件,执行防抖函数


    function imgLoad(selector){
        _selector = selector || '.imgLazyLoad';
        let nodes = document.querySelectorAll(selector);
        imgList = Array.apply(null,nodes);
        window.addEventListener('scroll',_delay,false)
    };
    获得图片列表:使用document.querySelectorAll方法获取所有需要实现懒加载的图片列表。 
    这里得到的只是个nodeList,所以这里利用Array.apply将nodes转变成一个数组保存到imgList中。 
    更多apply相关知识点请点击apply用法
    window监听事件:window监听scroll事件,执行节流函数_delay,此函数后面介绍
    4.声明防抖函数


    function _delay(){//函数防抖
        clearTimeout(delay);
        delay = setTimeout(() => {
           _loadImg();
        },time)
    };
    下划线函数:加下划线函数命名没有特殊功能,只是一种约定成俗的做法,表明这是一个私有函数(并没有强制规定使用,看团队习惯斟酌使用)
    函数防抖目的:在类似scroll、resize事件中执行大量DOM操作或者计算时,就会出现再次触发事件而上一次事件中的DOM操作和计算还没完成的情况,结果浏览器掉帧了,导致性能下降,影响用户体验。 
    想了解更多相关知识点,请点击浏览器浏览器scroll优化
    函数防抖原理:每次执行_delay函数先清除上一次setTimeout生成的引用,阻止上一次的函数调用(如果还没执行的话),然后创建一个新的setTimeout,在time保存的时间间隔后调用函数
    5.加载图片


    function _loadImg(){//执行图片加载
        for(let i = 0; i < imgList.length; i++){
            if(_isShow(imgList[i])){
                imgList[i].src = imgList[i].getAttribute('data-src');
                imgList.splice(i,1);
            }
        }
    };

    何时显示判断:循环输出每个imgList中保存的图片对象,_isShow函数判断是否需要显示图片,需要的话,立即从图片对象中的data-src属性中取得链接并赋值给当前图片的src进行加载
    图片对象删除:每次判断图片需要显示并进行加载后从数组中取出此图片对象引用,避免下次循环重复判断
    6.判断图片是否显示


    function _isShow(el){
        let coords = el.getBoundingClientRect();
        return (coords.left >= 0 && coords.left >= 0 && coords.top) <=(document.documentElement.clientHeight || window.innerHeight) + parseInt(offset);
    };
    何时显示图片? 
    当图片出现在屏幕可视局域时显示~
    怎么判断图片出现在图片可视区域? 
    通过调用元素的getBoundingClientRect方法获得一个包含了一组用于描述边框的相对于视口的左上角位置而言的只读属性——left、top、right和bottom,在和浏览器视口相应宽高进行对比即可判断元素是否出现在可视区域中,offset是偏差值,可以进行显示偏差设置


    1.top:此元素上边框距离浏览器视口顶部大小
    2.left:此元素左边框距离浏览器视口左边大小
    3.right:此元素右边框距离浏览器视口左边大小
    4.bottom:此元素底边框距离浏览器视口顶部大小
    注意这里right和bottom的描述,不是距离视口右边和底部,而是左边和顶部~此例子中只考虑垂直方向上的值(top)和浏览器视口高度的比较。 
    查看更多元素的getBoundingClientRect方法知识,请点击元素getBoundingClientRect方法


    综上,图片懒加载功能初步形成,当然还有很多可以优化的地方(比如只有用户停止滚动图片才会显示),后续会不断完善~

    展开全文
  • web前端关键词及web前端图片

    千次阅读 2014-04-14 11:58:09
    web前端关键词,碰到一个加一个。 XHTML、XML、CSS、web标准(重构)、可用性、可访问性、JavaScript、DOM、BOM、Ajax、JSON、多浏览器、兼容性、prototype/jQuery/YUI/Ext框架、Web后端语言、wap、DIV+CSS、...

    web前端关键词,碰到一个加一个。


    XHTML、XML、CSS、web标准(重构)、可用性、可访问性、JavaScript、DOM、BOM、Ajax、JSON、多浏览器、兼容性、prototype/jQuery/YUI/Ext框架、Web后端语言、wap、DIV+CSS、Photoshop、Dreamweaver、flash、手机/ipad、SEO、html5、css3、MVC、MVVM、面向对象、bug


    另附一些图片:










    展开全文
  • 这篇文章主要是为了介绍一种文件上传的方式。当然文件中是包含图片的。如果大家仔细看我的第一篇web前端图片上传(1)就会知道,其实也是按照这种方式上传你的,但是由于上次时间比较紧张,没有详细的介绍今...

      这篇文章主要是为了介绍一种文件上传的方式。当然文件中是包含图片的。如果大家仔细看我的第一篇web前端图片上传(1)就会知道,其实也是按照这种方式上传你的,但是由于上次时间比较紧张,没有详细的介绍今天的主角filereader对象。今天就来好好的看看他。

    以下是他常用的几种方法。

    1. abort  none 中断读取
    2. readAsBinaryString file(blob) 将文件读取为二进制码
    3. readAsDataURL file(blob) 将文件读取为 DataURL
    4. readAsText file, (blob) 将文件读取为文本

    但是这个可能不好理解是吧。咱们直接上程序,看看程序中是怎么运行的。我期中会加上自己的注释,方便大家查询。同样的,这段程序直接放在编辑器里面,然后直接运行就好了。

     1 <!DOCTYPE html>
     2 <html lang="en">
     3     <head>
     4         <meta charset="UTF-8">
     5         <title>FileReader</title>
     6     </head>
     7     <body>
     8         <p>
     9             <label>请选择一个文件:</label>
    10             <input type="file" id="file" />
    11             <input type="button" value="读取图像" onclick="readAsDataURL()" />
    12             <input type="button" value="读取二进制数据" onclick="readAsBinaryString()" />
    13             <input type="button" value="读取文本文件" onclick="readAsText()" />
    14         </p>
    15         <div id="result" name="result"></div>
    16         <script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
    17         <script type="text/javascript">
    18             var result = document.getElementById("result");
    19             var file = document.getElementById("file");
    20             //判断浏览器是否支持FileReader接口 
    21             if(typeof FileReader == 'undefined') {
    22                 result.InnerHTML = "<p>你的浏览器不支持FileReader接口!</p>";
    23                 //使选择控件不可操作 
    24                 file.setAttribute("disabled", "disabled");
    25             }
    26             function readAsDataURL() {
    27                 //检验是否为图像文件 
    28                 //var file = document.getElementById("file").files[0];//js的写法,也可以写成jquery的
    29                 var file = $("#file").prop("files")[0];//jquery的写法
    30                 if(!/image\/\w /.test(file.type)) {
    31                     alert("看清楚,这个需要图片!");
    32                     return false;
    33                 }
    34                 var reader = new FileReader();
    35                 //将文件以Data URL形式读入页面 
    36                 reader.readAsDataURL(file);
    37                 reader.onload = function(e) {
    38                     console.log(this.result);
    39                     var result = document.getElementById("result");
    40                     //显示文件 
    41                     result.innerHTML = '<img src="'   this.result   '" alt="" />';
    42                 }
    43             }
    44 
    45             function readAsBinaryString() {
    46                 var file = document.getElementById("file").files[0];
    47                 var reader = new FileReader();
    48                 //将文件以二进制形式读入页面 
    49                 reader.readAsBinaryString(file);
    50                 reader.onload = function(f) {
    51                     console.log(f);
    52                     console.log(this.result);
    53                     var result = document.getElementById("result");
    54                     //显示文件 
    55                     result.innerHTML = this.result;
    56                 }
    57             }
    58 
    59             function readAsText() {
    60                 var file = document.getElementById("file").files[0];
    61                 var reader = new FileReader();
    62                 //将文件以文本形式读入页面 
    63                 reader.readAsText(file);
    64                 reader.onload = function(f) {
    65                     var result = document.getElementById("result");
    66                     //显示文件 
    67                     result.innerHTML = this.result;
    68                 }
    69             }
    70         </script>
    71     </body>
    72 </html>

      这里说下程序中的28行和29行,是js和jq的两种写法,而且jq中只能写porp,写attr是会报错的,不知道是不是我的jq版本的问题。

    readAsDataURL()这个方法其实就是把这个文件转换成为了base64的格式,如果是中图片的话,那就是图片的base64格式。
    readAsText()这个方法就是读取成为文本,如果你上传的是一个txt的文件,那么是直接可以读出来你们的文本信息的,但是doc文档格式是不可以的。当然了,html的格式是可以的。
    至于51行和52行的打印,是为了看到,究竟是哪个是咱们需要的文件格式,发现了,this.result才是咱们需要的东西。而里面的f并不是。f.target.result这个才是咱们需要的字段。

    最后还是附上我前两篇文章的链接吧。方便大家查阅。web前端图片上传(1)web前端图片上传(2)

    更多专业前端知识,请上【猿2048】www.mk2048.com
    展开全文
  • web前端图片上传

    2019-10-23 17:39:41
    图片上传有很多种形式,但是听说ios只能传字符串,所以为了安卓、ios和web能用一个接口上传图片,采用了基于base64 的方法上传图片。 下面是我的html 1 <div class="parn"...
  • 控制web前端图片位置

    千次阅读 2021-02-16 15:52:06
    控制图片位置: 距离页面右端 margin-right:200px 距离页面左端: margin-left:200px 距离页面顶部: margin-top:200px 距离页面底部: margin-bottem:200px
  • 前段时间写了web前端图片懒加载实现原理(一),阐述利用防抖技术实现图片懒加载原理,但仍旧不够完美的是只有停止滚动图片才会显示,这本身也是防抖技术的缺陷,接下来我将介绍如何利用函数节流进行优化~ ...
  • Web前端图片轮播

    2017-07-08 13:36:50
    图片轮播的实现
  • web前端图片预加载

    2019-05-29 20:59:00
    图片预加载就是让浏览器提前缓存图片,提升用户体验。 浏览器什么情况下会下载图片?  1,解析到html中img的src属性的时候  2,解析到background-image属性的url()的时候  3,在js中创建Image对象的之后给他...
  • 摘要 随着web的发展,网站资源的...极限前端 web优化 图片优化 web图片格式 目录[-] 一、现有web图片格式 二、前端图片优化方案 三、图片压缩 四、小结   随着web的发展,网
  • web前端图片懒加载

    2017-08-08 11:51:47
    图片懒加载是web性能优化一个重要手段。懒加载的原理原理:先将img标签中的src链接设为同一张图片(空白图片),将其真正的图片地址存储再img标签的自定义属性中(比如data-src)。当js监听到该图片元素进入可视...
  • web前端图片大图预览

    千次阅读 2018-03-16 09:57:41
    、在图片上绑定click事件,调用微信预览图片接口 // 微信大图预览   var imgsurl = [ ] ;   var nowurl = '' ;   var imgObj = $ ( "#content img" ) ;   for ( var i = 0 ; i < imgObj. length ; i +...
  • 前端时间面试的时候老是被问到图片懒加载实现及原理,由于自己在实际项目中并没有用过,只是了解过大概,所以回答起来都不尽如人意,趁这段时间空闲下来有时间好好研究下,话不多说,直奔主题~ 一、html(这里只列...
  • 一、现有web图片格式 我们先来看下现在常用的web图片的格式: 几种文件格式的特点概述 baseline-jpeg 这种类型的JPEG文件存储方式是按从上到下的扫描方式,把每一行顺序的保存在JPEG文件中。打开这个文件...
  • 应用较为广泛的 Web 图片格式有 : JPEG/JPG、PNG、WebP、Base64、SVG 二进制位数与色彩的关系 在计算机中,像素用 二进制数 来表示: 不同的图片格式中像素与二进制位数之间的对应关系是不同的,一个像素 对应的 二...
  • <!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <style> #ck{ width:600px; height:500px;... }

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 6,288
精华内容 2,515
关键字:

web前端图片