前端页面不需要加载url获取图片

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了前端页面不需要加载url获取图片相关的知识,希望对你有一定的参考价值。

有几种方法可以让前端页面不需要加载URL获取图片:

将图片作为Base64编码字符串嵌入html中。这样,你就可以使用以下代码在页面中显示图片,而无需加载URL:

<img src="data:image/png;base64,iVBORw0KGg...." alt="My Image">
使用javascript的FileReader对象读取本地图片文件。你可以使用以下代码实现这一点:

<input type="file" id="fileInput">

<script>
const fileInput = document.getElementById("fileInput");
fileInput.addEventListener("change", () =>
const file = fileInput.files[0];
const reader = new FileReader();
reader.addEventListener("load", () =>
// 将图片显示在页面上
const img = document.createElement("img");
img.src = reader.result;
document.body.appendChild(img);
);
reader.readAsDataURL(file);
);
</script>
在这里,我们使用FileReader对象的readAsDataURL()函数读取本地图片文件,然后将图片显示在页面上。
参考技术A 关于前端页面不需要加载url获取图片相关资料如下
记录一下前端时间做的项目上遇到的一个当时对我来说还比较麻烦的操作。
项目需求:
1.首先需要从前端页面上通过来上传单张图片并且及时回显在页面上,通过提交按钮,将图片的base64格式文件提交到后端处理。

2.后端接收到图片的base64格式后又将其转换为图片文件并存入指定路径,然后返回该图片新名称,将图片新名称存入数据库。

3.获取存储图片的路径拼接上图片名称,调用封装好的方法读取图片。
参考技术B 你好,如果出现这种情况的话那么就说明这个前端页面设计的本身设计的就不过关,如果你是老板你能允许有这种半吊子员工出现吗?设计有缺陷,加载不出来 url 获取图片,这个时候直接把那个员工辞了。 参考技术C 记录一下前端时间做的项目上遇到的一个当时对我来说还比较麻烦的操作。
项目需求:
1.首先需要从前端页面上通过来上传单张图片并且及时回显在页面上,通过提交按钮,将图片的base64格式文件提交到后端处理。

2.后端接收到图片的base64格式后又将其转换为图片文件并存入指定路径,然后返回该图片新名称,将图片新名称存入数据库。

3.获取存储图片的路径拼接上图片名称,调用封装好的方法读取图片。
精灵宝可梦4
精选推荐
广告

前端技术--懒加载

有利于优化前端页面因瀑布页面图片多而导致的页面加载时间长,加载慢的问题。

原理

  • 设置个data-src(自定义一个属性)来存放真实地址
  • 当滚动页面时,检查所有的img标签,看是否出现在视野中,如果已经出现在了视野中,那继续再进行判断,看其是否已经被加载过了,如果还没有被加载过,那就进行加

这里需要注意两个问题 首先页面一开始不进行滚动 就不会加载任何图片  滚轮开始动的时候就加载会重复  所以会浪费资源  不如等到滚轮停止再加载

代码如下

<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>图片懒加载-简单</title>
<script src="jquery-3.1.1.min.js"></script>
<style>
ul,li{
list-style:none;
}
.container{
width: 600px;
margin: 0 auto;
}
.container li{
float: left;
margin: 10px 10px;
}
.container li img{
width: 240px;
height: 180px;
}
p{
float: left;
}
</style>
</head>
<body>
<ul class="container">
<li><a href="#"><img src="" data-src="http://cdn.jirengu.com/book.jirengu.com/img/1.jpg" /></a></li>
<li><a href="#"><img src="" data-src="http://cdn.jirengu.com/book.jirengu.com/img/2.jpg" /></a></li>
<li><a href="#"><img src="" data-src="http://cdn.jirengu.com/book.jirengu.com/img/3.jpg" /></a></li>
<li><a href="#"><img src="" data-src="http://cdn.jirengu.com/book.jirengu.com/img/4.jpg" /></a></li>
<li><a href="#"><img src="" data-src="http://cdn.jirengu.com/book.jirengu.com/img/5.jpg" /></a></li>
<li><a href="#"><img src="" data-src="http://cdn.jirengu.com/book.jirengu.com/img/6.jpg" /></a></li>
<li><a href="#"><img src="" data-src="http://cdn.jirengu.com/book.jirengu.com/img/7.jpg" /></a></li>
<li><a href="#"><img src="" data-src="http://cdn.jirengu.com/book.jirengu.com/img/8.jpg" /></a></li>
<li><a href="#"><img src="" data-src="http://cdn.jirengu.com/book.jirengu.com/img/9.jpg" /></a></li>
<li><a href="#"><img src="" data-src="http://cdn.jirengu.com/book.jirengu.com/img/10.jpg" /></a></li>
<li><a href="#"><img src="" data-src="http://cdn.jirengu.com/book.jirengu.com/img/11.jpg" /></a></li>
<li><a href="#"><img src="" data-src="http://cdn.jirengu.com/book.jirengu.com/img/12.jpg" /></a></li>
<li><a href="#"><img src="" data-src="http://cdn.jirengu.com/book.jirengu.com/img/13.jpg" /></a></li>
<li><a href="#"><img src="" data-src="http://cdn.jirengu.com/book.jirengu.com/img/14.jpg" /></a></li>
<li><a href="#"><img src="" data-src="http://cdn.jirengu.com/book.jirengu.com/img/15.jpg" /></a></li>
<li><a href="#"><img src="" data-src="http://cdn.jirengu.com/book.jirengu.com/img/16.jpg" /></a></li>
<li><a href="#"><img src="" data-src="http://cdn.jirengu.com/book.jirengu.com/img/1.jpg" /></a></li>
<li><a href="#"><img src="" data-src="http://cdn.jirengu.com/book.jirengu.com/img/2.jpg" /></a></li>
<li><a href="#"><img src="" data-src="http://cdn.jirengu.com/book.jirengu.com/img/3.jpg" /></a></li>
<li><a href="#"><img src="" data-src="http://cdn.jirengu.com/book.jirengu.com/img/4.jpg" /></a></li>
<li><a href="#"><img src="" data-src="http://cdn.jirengu.com/book.jirengu.com/img/5.jpg" /></a></li>
<li><a href="#"><img src="" data-src="http://cdn.jirengu.com/book.jirengu.com/img/6.jpg" /></a></li>
<li><a href="#"><img src="" data-src="http://cdn.jirengu.com/book.jirengu.com/img/7.jpg" /></a></li>
<li><a href="#"><img src="" data-src="http://cdn.jirengu.com/book.jirengu.com/img/8.jpg" /></a></li>
<li><a href="#"><img src="" data-src="http://cdn.jirengu.com/book.jirengu.com/img/9.jpg" /></a></li>
<li><a href="#"><img src="" data-src="http://cdn.jirengu.com/book.jirengu.com/img/10.jpg" /></a></li>
<li><a href="#"><img src="" data-src="http://cdn.jirengu.com/book.jirengu.com/img/11.jpg" /></a></li>
<li><a href="#"><img src="" data-src="http://cdn.jirengu.com/book.jirengu.com/img/12.jpg" /></a></li>
<li><a href="#"><img src="" data-src="http://cdn.jirengu.com/book.jirengu.com/img/13.jpg" /></a></li>
<li><a href="#"><img src="" data-src="http://cdn.jirengu.com/book.jirengu.com/img/14.jpg" /></a></li>
<li><a href="#"><img src="" data-src="http://cdn.jirengu.com/book.jirengu.com/img/15.jpg" /></a></li>
<li><a href="#"><img src="" data-src="http://cdn.jirengu.com/book.jirengu.com/img/16.jpg" /></a></li>
<li><a href="#"><img src="" data-src="http://cdn.jirengu.com/book.jirengu.com/img/1.jpg" /></a></li>
<li><a href="#"><img src="" data-src="http://cdn.jirengu.com/book.jirengu.com/img/2.jpg" /></a></li>
<li><a href="#"><img src="" data-src="http://cdn.jirengu.com/book.jirengu.com/img/3.jpg" /></a></li>
<li><a href="#"><img src="" data-src="http://cdn.jirengu.com/book.jirengu.com/img/4.jpg" /></a></li>
<li><a href="#"><img src="" data-src="http://cdn.jirengu.com/book.jirengu.com/img/5.jpg" /></a></li>
<li><a href="#"><img src="" data-src="http://cdn.jirengu.com/book.jirengu.com/img/6.jpg" /></a></li>
<li><a href="#"><img src="" data-src="http://cdn.jirengu.com/book.jirengu.com/img/7.jpg" /></a></li>
<li><a href="#"><img src="" data-src="http://cdn.jirengu.com/book.jirengu.com/img/8.jpg" /></a></li>
<li><a href="#"><img src="" data-src="http://cdn.jirengu.com/book.jirengu.com/img/9.jpg" /></a></li>
<li><a href="#"><img src="" data-src="http://cdn.jirengu.com/book.jirengu.com/img/10.jpg" /></a></li>
<li><a href="#"><img src="" data-src="http://cdn.jirengu.com/book.jirengu.com/img/11.jpg" /></a></li>
<li><a href="#"><img src="" data-src="http://cdn.jirengu.com/book.jirengu.com/img/12.jpg" /></a></li>
<li><a href="#"><img src="" data-src="http://cdn.jirengu.com/book.jirengu.com/img/13.jpg" /></a></li>
<li><a href="#"><img src="" data-src="http://cdn.jirengu.com/book.jirengu.com/img/14.jpg" /></a></li>
<li><a href="#"><img src="" data-src="http://cdn.jirengu.com/book.jirengu.com/img/15.jpg" /></a></li>
<li><a href="#"><img src="" data-src="http://cdn.jirengu.com/book.jirengu.com/img/16.jpg" /></a></li>
</ul>

<script>
// 先进行一次检查
lazyRender();
//为了不在滚轮滚动过程中就一直判定,设置个setTimeout,等停止滚动后再去判定是否出现在视野中。
var clock; //这里的clock为timeID,
$(window).on(‘scroll‘,function () {
// lazyRender();
if (clock) { // 如果在300毫秒内进行scroll的话,都会被clearTimeout掉,setTimeout不会执行。
//如果有300毫秒外的操作,会得到一个新的timeID即clock,会执行一次setTimeout,然后保存这次setTimeout的ID,
//对于300毫秒内的scroll事件,不会生成新的timeID值,所以会一直被clearTimeout掉,不会执行setTimeout.
clearTimeout(clock);
}
clock = setTimeout(function () {
lazyRender();
},300)
})

function lazyRender () {
$(‘.container img‘).each(function () {
if (checkShow($(this)) && !isLoaded($(this)) ){
loadImg($(this));
}
})
}
$(window).on(‘scroll‘,function () {//当页面滚动的时候绑定事件
$(‘.container img‘).each(function () {//遍历所有的img标签
if (checkShow($(this)) && !isLoaded($(this)) ){
// 需要写一个checkShow函数来判断当前img是否已经出现在了视野中
//还需要写一个isLoaded函数判断当前img是否已经被加载过了
loadImg($(this));//符合上述条件之后,再写一个加载函数加载当前img
}
})
})
function checkShow($img) { // 传入一个img的jq对象
var scrollTop = $(window).scrollTop(); //即页面向上滚动的距离
var windowHeight = $(window).height(); // 浏览器自身的高度
var offsetTop = $img.offset().top; //目标标签img相对于document顶部的位置

if (offsetTop < (scrollTop + windowHeight) && offsetTop > scrollTop) { //在2个临界状态之间的就为出现在视野中的
return true;
}
return false;
}
function isLoaded ($img) {
return $img.attr(‘data-src‘) === $img.attr(‘src‘); //如果data-src和src相等那么就是已经加载过了
}
function loadImg ($img) {
$img.attr(‘src‘,$img.attr(‘data-src‘)); // 加载就是把自定义属性中存放的真实的src地址赋给src属性
}
</script>
</body>
</html>

 





























































































































以上是关于前端页面不需要加载url获取图片的主要内容,如果未能解决你的问题,请参考以下文章

获取每个产品图片 url

前端如何获取原始图片大小

前端干货之随机图库 Lorem Picsum(只需要按规则写个网址就行,不需要集成任何插件环境)

通过url动态获取图片大小方法总结

页面图片懒加载

如何从 url 中获取图片