js中的图片指定切换效果的实现
用到的js中的知识:js中的for循环的熟练运用
js中的this属性:指的是调用当前 方法 (函数) 的那个对象
js中的自定义属性:js可以为任意的HTML元素添加任意个自定义的属性
js中的索引值属性:在js中当你想建立“匹配” “对应” 的关系时就需要用到索引值index
实现图片指定切换的代码一:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>js的图片指定切换效果</title>
<style>
h1{ height:30px; width:300px; border:2px solid pink; font-size:25px; text-align:center; line-height:30px; margin:40px auto;}
#pic{ height:350px; width:500px; border:2px solid yellow; position:relative; margin:0 auto;}
#pic img{ height:350px; width:500px;}
ul{ padding:0; margin:0; position:absolute; top:0; right:-80px;}
li{ height:50px; width:50px; background:pink; border:2px solid #CCC; margin-bottom:5px; list-style:none;}
#pic .active{ background:yellow;}
#pic p,span{ height:30px; width:500px; background:#CCC; font-size:20px; text-align:center; line-height:30px; color:#FFF; position:absolute; left:0; margin:0;}
p{ bottom:0;}
span{ top:0;}
</style>
<script>
window.onload = function(){
var oDiv = document.getElementById('pic');
var oImg = oDiv.getElementsByTagName('img')[0];
var oSpan = oDiv.getElementsByTagName('span')[0];
var oP = oDiv.getElementsByTagName('p')[0];
var oUl = oDiv.getElementsByTagName('ul')[0];
var aLi = oUl.getElementsByTagName('li');
<html>
<head>
<meta charset="utf-8">
<title>js的图片指定切换效果</title>
<style>
h1{ height:30px; width:300px; border:2px solid pink; font-size:25px; text-align:center; line-height:30px; margin:40px auto;}
#pic{ height:350px; width:500px; border:2px solid yellow; position:relative; margin:0 auto;}
#pic img{ height:350px; width:500px;}
ul{ padding:0; margin:0; position:absolute; top:0; right:-80px;}
li{ height:50px; width:50px; background:pink; border:2px solid #CCC; margin-bottom:5px; list-style:none;}
#pic .active{ background:yellow;}
#pic p,span{ height:30px; width:500px; background:#CCC; font-size:20px; text-align:center; line-height:30px; color:#FFF; position:absolute; left:0; margin:0;}
p{ bottom:0;}
span{ top:0;}
</style>
<script>
window.onload = function(){
var oDiv = document.getElementById('pic');
var oImg = oDiv.getElementsByTagName('img')[0];
var oSpan = oDiv.getElementsByTagName('span')[0];
var oP = oDiv.getElementsByTagName('p')[0];
var oUl = oDiv.getElementsByTagName('ul')[0];
var aLi = oUl.getElementsByTagName('li');
var arrUrl = ['imgs/z.1.jpg','imgs/z.2.jpg','imgs/z.3.jpg','imgs/z.4.jpg'];
var arrText = ['眺望远方','在海边嬉戏','爱心世界','美丽花环'];
var num = 0;
for( var i=0;i<arrUrl.length;i++){
oUl.innerHTML += '<li></li>';
} // 找到代码中的li
//初始化
oImg.src = arrUrl[num];
oSpan.innerHTML = 1 + num +'/' +arrUrl.length;
oP.innerHTML = arrText[num];
aLi[num].className = 'active'; // 运用className的方法将指定的li变为其它的颜色
for( var i=0;i<aLi.length;i++){
aLi[i].index = i; // 定义了索引值
aLi[i].onclick = function(){
oImg.src = arrUrl[this.index];
oSpan.innerHTML = 1 + this.index + '/' + arrUrl.length;
oP.innerHTML = arrText[this.index]; // htis与索引值属性的联合使用
for( var i=0;i<aLi.length;i++){
}
this.className = 'active';
} // 此处为点击哪个li,哪个li就变为当前的li的方法之
} // 此处为点击哪个li,哪个li就变为当前的li的方法之
}
}
</script>
</head>
<body>
<h1>js的图片指定切换效果</h1>
<div id="pic">
<img src="" alt="" />
<span>数量正在计算中...</span>
<p>文字正在加载中...</p>
<ul></ul>
</div>
</body>
</html>
}
</script>
</head>
<body>
<h1>js的图片指定切换效果</h1>
<div id="pic">
<img src="" alt="" />
<span>数量正在计算中...</span>
<p>文字正在加载中...</p>
<ul></ul>
</div>
</body>
</html>
此代码中当点击哪个li,哪个li就为当前的li的方法的基本思路为:
清空所有li的class属性,给当前点击的那个li添加className属性。
此方法虽然暴力,但是却很实用。
实现图片指定切换的代码二:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>js的图片指定切换效果</title>
<style>
h1{ height:30px; width:300px; border:2px solid pink; font-size:25px; text-align:center; line-height:30px; margin:40px auto;}
#pic{ height:350px; width:500px; border:2px solid yellow; position:relative; margin:0 auto;}
#pic img{ height:350px; width:500px;}
ul{ padding:0; margin:0; position:absolute; top:0; right:-80px;}
li{ height:50px; width:50px; background:pink; border:2px solid #CCC; margin-bottom:5px; list-style:none;}
#pic .active{ background:yellow;}
#pic p,span{ height:30px; width:500px; background:#CCC; font-size:20px; text-align:center; line-height:30px; color:#FFF; position:absolute; left:0; margin:0;}
p{ bottom:0;}
span{ top:0;}
</style>
<script>
window.onload = function(){
var oDiv = document.getElementById('pic');
var oImg = oDiv.getElementsByTagName('img')[0];
var oSpan = oDiv.getElementsByTagName('span')[0];
var oP = oDiv.getElementsByTagName('p')[0];
var oUl = oDiv.getElementsByTagName('ul')[0];
var aLi = oUl.getElementsByTagName('li');
var oldLi = null;// 定义了一个变量名
var arrUrl = ['imgs/z.1.jpg','imgs/z.2.jpg','imgs/z.3.jpg','imgs/z.4.jpg'];
var arrText = ['眺望远方','在海边嬉戏','爱心世界','美丽花环'];
var num = 0;
for( var i=0;i<arrUrl.length;i++){
oUl.innerHTML += '<li></li>';
} // 找到代码中的li
oldLi = aLi[num];//将li的值存储在此变量中
//初始化
oImg.src = arrUrl[num];
oSpan.innerHTML = 1 + num +'/' +arrUrl.length;
oP.innerHTML = arrText[num];
aLi[num].className = 'active'; // 运用className的方法将指定的li变为其它的颜色
for( var i=0;i<aLi.length;i++){
aLi[i].index = i;
aLi[i].onclick = function(){
oImg.src = arrUrl[this.index];
oSpan.innerHTML = 1 + this.index + '/' + arrUrl.length;
oP.innerHTML = arrTextt[this.index]; // htis与索引值属性的联合使用
oldLi.className = '';
oldLi = this;// 将此时点击的值设为当前值的前一个值,方便下一次点击时进行改变
this.className = 'active';
} // 此处为点击哪个li,哪个li就变为当前的li的方法之
}
}
</script>
</head>
<body>
<h1>js的图片指定切换效果</h1>
<div id="pic">
<img src="" alt="" />
<span>数量正在计算中...</span>
<p>文字正在加载中...</p>
<ul></ul>
</div>
</body>
</html>
<html>
<head>
<meta charset="utf-8">
<title>js的图片指定切换效果</title>
<style>
h1{ height:30px; width:300px; border:2px solid pink; font-size:25px; text-align:center; line-height:30px; margin:40px auto;}
#pic{ height:350px; width:500px; border:2px solid yellow; position:relative; margin:0 auto;}
#pic img{ height:350px; width:500px;}
ul{ padding:0; margin:0; position:absolute; top:0; right:-80px;}
li{ height:50px; width:50px; background:pink; border:2px solid #CCC; margin-bottom:5px; list-style:none;}
#pic .active{ background:yellow;}
#pic p,span{ height:30px; width:500px; background:#CCC; font-size:20px; text-align:center; line-height:30px; color:#FFF; position:absolute; left:0; margin:0;}
p{ bottom:0;}
span{ top:0;}
</style>
<script>
window.onload = function(){
var oDiv = document.getElementById('pic');
var oImg = oDiv.getElementsByTagName('img')[0];
var oSpan = oDiv.getElementsByTagName('span')[0];
var oP = oDiv.getElementsByTagName('p')[0];
var oUl = oDiv.getElementsByTagName('ul')[0];
var aLi = oUl.getElementsByTagName('li');
var oldLi = null;// 定义了一个变量名
var arrUrl = ['imgs/z.1.jpg','imgs/z.2.jpg','imgs/z.3.jpg','imgs/z.4.jpg'];
var arrText = ['眺望远方','在海边嬉戏','爱心世界','美丽花环'];
var num = 0;
for( var i=0;i<arrUrl.length;i++){
oUl.innerHTML += '<li></li>';
} // 找到代码中的li
oldLi = aLi[num];//将li的值存储在此变量中
//初始化
oImg.src = arrUrl[num];
oSpan.innerHTML = 1 + num +'/' +arrUrl.length;
oP.innerHTML = arrText[num];
aLi[num].className = 'active'; // 运用className的方法将指定的li变为其它的颜色
for( var i=0;i<aLi.length;i++){
aLi[i].index = i;
aLi[i].onclick = function(){
oImg.src = arrUrl[this.index];
oSpan.innerHTML = 1 + this.index + '/' + arrUrl.length;
oP.innerHTML = arrTextt[this.index]; // htis与索引值属性的联合使用
oldLi.className = '';
oldLi = this;// 将此时点击的值设为当前值的前一个值,方便下一次点击时进行改变
this.className = 'active';
} // 此处为点击哪个li,哪个li就变为当前的li的方法之
}
}
</script>
</head>
<body>
<h1>js的图片指定切换效果</h1>
<div id="pic">
<img src="" alt="" />
<span>数量正在计算中...</span>
<p>文字正在加载中...</p>
<ul></ul>
</div>
</body>
</html>
此代码中当点击哪个li,哪个li就为当前的li的方法的基本思路为:
清空当前的前一个li的class属性,给当前点击的那个li添加className属性。
此方法虽然更为合理,但是实用起来却不如第一种简洁方便。
代码的简化处理:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>js的图片指定切换效果</title>
<style>
h1{ height:30px; width:300px; border:2px solid pink; font-size:25px; text-align:center; line-height:30px; margin:40px auto;}
#pic{ height:350px; width:500px; border:2px solid yellow; position:relative; margin:0 auto;}
#pic img{ height:350px; width:500px;}
ul{ padding:0; margin:0; position:absolute; top:0; right:-80px;}
li{ height:50px; width:50px; background:pink; border:2px solid #CCC; margin-bottom:5px; list-style:none;}
#pic .active{ background:yellow;}
#pic p,span{ height:30px; width:500px; background:#CCC; font-size:20px; text-align:center; line-height:30px; color:#FFF; position:absolute; left:0; margin:0;}
p{ bottom:0;}
span{ top:0;}
</style>
<script>
window.onload = function(){
var oDiv = document.getElementById('pic');
var oImg = oDiv.getElementsByTagName('img')[0];
var oSpan = oDiv.getElementsByTagName('span')[0];
var oP = oDiv.getElementsByTagName('p')[0];
var oUl = oDiv.getElementsByTagName('ul')[0];
var aLi = oDiv.getElementsByTagName('li');
<html>
<head>
<meta charset="utf-8">
<title>js的图片指定切换效果</title>
<style>
h1{ height:30px; width:300px; border:2px solid pink; font-size:25px; text-align:center; line-height:30px; margin:40px auto;}
#pic{ height:350px; width:500px; border:2px solid yellow; position:relative; margin:0 auto;}
#pic img{ height:350px; width:500px;}
ul{ padding:0; margin:0; position:absolute; top:0; right:-80px;}
li{ height:50px; width:50px; background:pink; border:2px solid #CCC; margin-bottom:5px; list-style:none;}
#pic .active{ background:yellow;}
#pic p,span{ height:30px; width:500px; background:#CCC; font-size:20px; text-align:center; line-height:30px; color:#FFF; position:absolute; left:0; margin:0;}
p{ bottom:0;}
span{ top:0;}
</style>
<script>
window.onload = function(){
var oDiv = document.getElementById('pic');
var oImg = oDiv.getElementsByTagName('img')[0];
var oSpan = oDiv.getElementsByTagName('span')[0];
var oP = oDiv.getElementsByTagName('p')[0];
var oUl = oDiv.getElementsByTagName('ul')[0];
var aLi = oDiv.getElementsByTagName('li');
var arrUrl = ['imgs/z.1.jpg','imgs/z.2.jpg','imgs/z.3.jpg','imgs/z.4.jpg'];
var arrText = ['眺望远方','在海边嬉戏','爱心世界','美丽花环'];
var num = 0;
for( var i=0;i<arrUrl.length;i++){
oUl.innerHTML += '<li></li>';
}
//初始化
function fnTab(){
oImg.src = arrUrl[num];
oSpan.innerHTML = 1 + num +'/' +arrUrl.length;
oP.innerHTML = arrText[num];
for( var i=0;i<aLi.length;i++){
aLi[i].className = '';
}
aLi[num].className = 'active';
}// 将相似的代码转换成相同的代码,再将其定义为函数
fnTab()// 定义函数之后,要将其调用,函数内部的代码才会执行
for( var i=0;i<aLi.length;i++){
aLi[i].index = i;
aLi[i].onclick = function(){
num = this.index;
fnTab();// 每写一次此函数,都意味着函数内部的代码被调用了
}
}
}
</script>
</head>
<body>
<h1>js的图片指定切换效果</h1>
<div id="pic">
<img src="" alt="" />
<span>数量正在计算中...</span>
<p>文字正在加载中...</p>
<ul></ul>
</div>
</body>
</html>
代码中遇见相同的或者相似的代码,应该用定义函数的方法,是相同的代码进行封装起来,使代码看起来更加简洁。
在使用函数时,要注意,定义完函数之后,一定要进行调用,否则函数自己是不会主动执行的。