JS学习笔记 - fgm练习 2-11- 改变图片路径 var img = new Image(); 图片预加载
<style>
*{
margin: 0;padding: 0;
list-style: none;
}
body{
background: black;
}
.outer{
margin: 10px auto;
border: 1px solid white;
border-radius: 6px;
background-color: white;
width: 200px;
padding: 8px 6px 6px 8px;
}
.outer>ul{
overflow: hidden;
} .outer>ul>li, .outer>ul>li>img{
/* 两个部分设置内容一样,选择器写在一起。 */
float: left;
width: 48px;
height: 48px;
/* li的宽高不能直接由内部img撑起? */ margin: 0 2px 2px 0;
}
/* .outer>ul>li>img{
width: 48px;
height: 48px;
} */
.outer>ul>li:nth-child(1){
position:relative;
/* 相对定位,子绝父相,给后面的loading动态图div使用。 */
}
.outer>ul>li:nth-child(1), .outer>ul>li:nth-child(1)>img{
/* 两个部分设置内容一样,选择器写在一起。 */
width: 148px;
height: 148px;
} .outer>li.first div{
position:absolute;top:0;left:0;
width:156px;height:156px;
display:none;
opacity:0.5;filter:alpha(opacity=50);
background:#fff url(img/loading.gif) 50% 50% no-repeat;
/* 给第一个大图li加一个空div,添加loading的背景图。 让图片加载时,显示加载动图 */
}
</style> <script>
window.onload = function()
{
// var aImg = document.getElementsByTagName('img'); // for(let i=0; i<aImg.length; i++)
// {
// aImg[i].onmouseover = function()
// {
// aImg[0].src = this.src;
// };
// }; var oImg = document.getElementById("box").getElementsByTagName("img"); var oDiv = document.getElementsByTagName("div")[0];
// 给第一个大图li加一个空div,添加loading的背景图。 让图片加载时,显示加载动图。
for (var i = 1; i < oImg.length; i++)
{
oImg[i].onmouseover = function ()
{
var img = new Image(); img.src = oImg[0].src = this.src.replace(/small/,"big");
// replace(); 方法,用于在字符串中用一些字符替换另一些字符。
// 例如:
// var str="Visit Microsoft!"
// document.write(str.replace(/Microsoft/, "W3School"))
// 输出:Visit W3School! oDiv.style.display = "block"; img.complete ? oDiv.style.display = "none" : (oImg[0].onload = function() {oDiv.style.display = "none"})
// complete 通过Image对象的complete 属性来检测图像是否加载完成。
// onload 当图像装载完毕时调用的事件句柄。 // 所以上面这个三元表达式的意思是:
// img这个图片对象是否加载完成?
// 加载完成就让div的display为none。 没有加载完成,就调用img的onload事件,让它加载完成,然后运行function 让div的display为none。 // js Image()对象onload和预加载
// https://segmentfault.com/a/1190000011020722?utm_source=tag-newest
}
}
};
</script>
JS学习笔记 - fgm练习 2-11- 改变图片路径 var img = new Image(); 图片预加载的更多相关文章
- JS学习笔记 - fgm练习 - 鼠标移入/移出div样式改变
思路: div的默认样式正常设置. 鼠标移入时,发生改变的样式有3个,即 边框颜色,div背景色,字体颜色. 把这三个css改变设置在一个类名下,再通过js给div动态 添加/去除这个类名,实现div ...
- JS学习笔记 - fgm练习 2-12- 全选反选 判断CheckBox是否选中 &&运算符
练习地址:http://www.fgm.cc/learn/lesson2/12.html 总结: 1. && 运算符,从左向右依次执行,如果遇到 false,就不再继续执行后面的语句 ...
- JS学习笔记 - fgm练习 2-5 - 函数传参 设置div样式
练习地址:http://www.fgm.cc/learn/lesson2/05.html <script> window.onload = function(){ var oDiv = d ...
- JS学习笔记 - fgm练习 - 输入数字求和 正则replace onkeyup事件
<style> body{font-size: 12px;} .outer{ width: 500px; margin: 0 auto; } span{ color: #999; } in ...
- JS学习笔记 - fgm练习 - 数字自增 定时器 数字比大小Math.max
<script> window.onload = function(){ var oP = document.getElementsByTagName('p')[0]; var i = 0 ...
- JS学习笔记 - fgm练习 - 限制输入框的字符类型 正则 和 || 或运算符的运用 i++和++i
<script> window.onload = function(){ var aInp = document.getElementsByTagName('input'); var oS ...
- JS学习笔记 - fgm练习 - 输入法下拉框 三元表达式
<script> window.onload = function() { var oBtn = document.getElementsByTagName('input')[0]; va ...
- JS学习笔记 - fgm练习 - 网页换肤
总结: 1. 点击按钮,div内部变色,边框保持颜色不变. 实现原理:其实本来就把background 和 border 分别设置了同一个颜色,看似是一个整体,其实本来就是分开的. 那么点击的时候,只 ...
- JS学习笔记 - fgm练习 - 多按钮控制同个div属性
总结: 1. 注意body里的结构安排,全部装在大div,避免多次设置不同部分居中. 2. 一排按钮居中:装在大div里,text-align: center; 3. 把相同的部分封装成函数,即 同个 ...
随机推荐
- redis练习手册<二>快速入门
Redis是一个开源,先进的key-value存储,并用于构建高性能,可扩展的Web应用程序的完美解决方案. Redis从它的许多竞争继承来的三个主要特点: Redis数据库完全在内存中,使用磁盘仅用 ...
- android 二次按返回键退出client
android中有的app退出client时弹出对话框的方法,有的是点击二次,第一次是提示用户是否退出client,第二次点击才是真正的退出app.这是用二次点击返回键的时间间隔推断, 今天就实现这简 ...
- 设置eclipse中的字体大小
- Can't access RabbitMQ web management interface after fresh install
http://stackoverflow.com/questions/22850546/cant-access-rabbitmq-web-management-interface-after-fres ...
- C语言-常量指针与指针常量
最近倪健问我一个问题,他说:什么是常指针?什么是指向常变量的指针?请举例说明 我查阅资料后这么回答他了, 指针常量(常指针):int * const p : 指针是一个常量,也就是说它始终指向那个地址 ...
- nodejs学习(三)--express连接mysql数据库,mysql查询封装
一.说一下 连接不同的数据库需要安装相应的插件,此demo使用mysql数据库,需自行安装mysql数据库软件. 新建数据库webapp, 新建表users: 二.直接开码 npm install m ...
- 【Django】ContentType组件
目录 理解 表结构 使用 @ 好,现在我们有这样一个需求,我们的商城里有很多的商品,然而节日要来了,我们要搞活动. 那么,我们就要设计优惠券,优惠券都有什么类型呢?满减的.折扣的.立减的.等等等... ...
- PLSQL乱码&TNS-12557: protocol adapter not loadable解决
PLSQL乱码&TNS-12557: protocol adapter not loadable解决 PLSQL乱码&TNS-12557: protocol adapter not l ...
- 构建自己的AngularJS - 作用域和Digest(一)
作用域 第一章 作用域和Digest(一) Angular作用域是简单javascript对象,因此你能够像对其它对象一样加入属性.然而,他们也有一些额外的功能:用于观測数据结构的变化.这样的观察能力 ...
- 写了个去重复文件的 PHP 脚本,
写了个去重复文件的 PHP 脚本点击打开链接 把各个零散网盘.邮箱和服务器上的文件,三台电脑上的文件收集在新硬盘里,然后清空了网络和电脑上的文件.才发现这个文件不能这里放点,那里存点,到时候不知道在哪 ...