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. 把相同的部分封装成函数,即 同个 ...
随机推荐
- 【Henu ACM Round#14 B】Duff in Love
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 让你在n的因子里面找一个最大的数字x 且x的因子全都不是完全平方数(y^2,y>1) O(sqrt(n))找出n的所有因子. ...
- 洛谷 P1683 入门
P1683 入门 题目描述 不是任何人都可以进入桃花岛的,黄药师最讨厌象郭靖一样呆头呆脑的人.所以,他在桃花岛的唯一入口处修了一条小路,这条小路全部用正方形瓷砖铺设而成.有的瓷砖可以踩,我们认为是安全 ...
- amaze ui中的icon button
amaze ui中的icon button 说明几点: 1.链接效果 连接效果的本质一般都是a标签,好像很多button的链接效果都是用的a标签,submit表单提交或者button的type为sub ...
- 83.const与类
const常量对象,无法改变数据,只能引用尾部带const方法 类的成员如果是const,可以默认初始化,也可以构造的初始化,不可在构造函数内部初始化 类中的const成员,无法直接修改,可以间接修改 ...
- 洛谷P3531 [POI2012]LIT-Letters
题目描述 Little Johnny has a very long surname. Yet he is not the only such person in his milieu. As it ...
- Android自定义组件系列【13】——Android自定义对话框如此简单
在我们的日常项目中很多地方会用到对话框,但是Android系统为我们提供的对话框样子和我们精心设计的界面很不协调,在这种情况下我们想很自由的定义对话框,或者有的时候我们的对话框是一个图片,没有标题和按 ...
- 网上看到的一些IT资源
A.网站模板+logo+服务器主机+发票生成 HTML5 UP:响应式的HTML5和CSS3网站模板. Bootswatch:免费的Bootstrap主题. Templated:收集了845个免费的C ...
- vue中computed与watch的异同
一.computed 和 watch 都可以观察页面的数据变化.当处理页面的数据变化时,我们有时候很容易滥用watch. 而通常更好的办法是使用computed属性,而不是命令是的watch回调. ...
- ssh-agent && 及 ssh-add介绍
ssh-agent命令是一种控制用来保存公钥身份验证所使用的私钥的程序.ssh-agent在X会话或登录会话之初启动,所有其他窗口或程序则以客户端程序的身份启动并加入到ssh-agent程序中.通过使 ...
- 00082_Set接口
1.Set接口介绍 (1)Collection中可以存放重复元素,也可以不存放重复元素,那么我们知道List中是可以存放重复元素的.那么不重复元素给哪里存放呢?那就是Set接口,它里面的集合,所存储的 ...