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. 把相同的部分封装成函数,即 同个 ...
随机推荐
- 树莓派3b+ wifi无线连接
一.配置文件启动wifi 配置 /etc/network/interfaces 文件实现,但在图形界面上并没有wifi图标可以选择,这种方法不够灵活,后面连接其它的wifi都要去修改配置文件 首先打开 ...
- PreferenceActivity、PreferenceFragment使用
文件夹 文件夹 前言 PreferenceActivity preferences_scenario_1xml Preference Activity 演示 PreferenceFragment xm ...
- hdu 5073 Galaxy(2014 鞍山现场赛)
Galaxy Time Limit: 2000/1000 MS (J ...
- 使用cocos2dx 3.2和cocosstudio屏幕适配总结----相对布局
屏幕适配的文章太多了,基本上都是理论性的东西.大家明确了机制就知道了.没有完美的适配方案,除非你们的美工愿意折腾. 常规策略: 今天研究了一下屏幕适配导致的缩放和展示不全的问题(黑边的方案直接淘汰). ...
- 思科2960trunk vlan配置及路由IP配置
en conf t vlan id end conf t inter rang gi 0/0/1-x switchport access vlan id no shutdown exit (confi ...
- Mysql第八天 分区与分表
分区表 主要提供例如以下的特性,或者适合如此场景: 数据量非常大, 或者仅仅有表中最后的部分有热点数据.其它均为历史数据 分区表数据更easy维护,能够对独立的分区删除等操作 分区表的数据能够分布在不 ...
- [Java开发之路](9)对象序列化与反序列化
1. 对象序列化 当你创建对象时.仅仅要你须要.它会一直存在,可是程序终止时,不管何时它都不会继续存在.虽然这样做是很有意义的,可是在某些情况下.假设程序不执行时扔能存在而且保存其信息,那将对我们很实 ...
- Vue给元素添加样式
Vue中使用样式 绑定css 数组 <style> .red{ color:red } .thin{ font-size:18px } </style> <h1 :cla ...
- LuoguP4016 负载平衡问题(费用流)
题目描述 G 公司有 n 个沿铁路运输线环形排列的仓库,每个仓库存储的货物数量不等.如何用最少搬运量可以使 n 个仓库的库存数量相同.搬运货物时,只能在相邻的仓库之间搬运. 输入输出格式 输入格式: ...
- 图片工具GraphicsMagick的安装配置与基本使用
本文使用GraphicsMagick的版本为1.3.18 (Released March 9, 2013). 1.简介 GraphicsMagick是一个短小精悍的的图片处理工具和库集合.对于Java ...