1. 程式人生 > >js練習----圖片輪播切換

js練習----圖片輪播切換

all fcc align num width adding mage bsp alpha

技術分享圖片

css代碼:

.d1 { /*大的div樣式*/
width: 443px;
height: auto;
overflow: hidden;
border: #666666 2px solid;
background-color: #000000;
position: relative;
margin:auto auto;
}

.loading {
width: 443px;
border: #666666 2px solid;
background-color: #000000;
color: #FFCC00;
font-size: 12px;
height: 179px;
text-align: center;
padding-top: 30px;
font-family: Verdana, Arial, Helvetica, sans-serif;
font-weight: bold;
}

.d2 { /*放文字和序號的div樣式*/
width: 100%;
height: 209px;
overflow: hidden;
}

.num_list { /*放文字的div樣式*/
position: absolute;
width: 100%;
left: 0px;
bottom: -1px;
background-color: #000000;
color: #FFFFFF;
font-size: 12px;
padding: 4px 0px;
height: 20px;
overflow: hidden;
}

.num_list span {
display: inline-block;
height: 16px;
padding-left: 6px;
}

img {
border: 0px;
}

ul {
display: none;
}

.button {
position: absolute;
z-index: 1000;
right: 0px;
bottom: 2px;
font-size: 13px;
font-weight: bold;
font-family: Arial, Helvetica, sans-serif;
}

.b1,.b2 {
background-color: #666666;
display: block;
float: left;
padding: 2px 6px;
margin-right: 3px;
color: #FFFFFF;
text-decoration: none;
cursor: pointer;
border-radius: 50%;
}

.b2 {
color: #FFCC33;
background-color: #FF6633;
}

js代碼:

var s = function() {

var interv = 2000; //切換間隔時間
var interv2 = 20; //切換速速
var opac1 = 80; //文字背景的透明度
var source = "fade_focus" //圖片容器id
//獲取對象
function getTag(tag, obj) {
if (obj == null) {
return document.getElementsByTagName(tag)
} else {
return obj.getElementsByTagName(tag)
}
}
function getid(id) {
return document.getElementById(id)
};
var opac = 0,
j = 0,
t = 63,
num, scton = 0,
timer, timer2, timer3;
var id = getid(source); //獲取id為fade_focus的容器
id.removeChild(getTag("div", id)[0]);
var li = getTag("li", id); //獲取fade_focus裏的li即放置圖片
var div = document.createElement("div"); //創建一個div元素
var title = document.createElement("div"); //創建一個div元素
var span = document.createElement("span"); //創建一個span元素
var button = document.createElement("div"); //創建一個div元素放序號
button.className = "button"; //給放序號的div給定樣式.button
for (var i = 0; i < li.length; i++) {
var a = document.createElement("a"); //創建一個a標簽
a.innerHTML = i + 1;
a.onclick = function() {
clearTimeout(timer); //清除timer定時器
clearTimeout(timer2); //清除timer2定時器
clearTimeout(timer3); //清除timer3定時器
j = parseInt(this.innerHTML) - 1;
scton = 0;
t = 63;
opac = 0;
fadeon();
};
a.className = "b1";
a.onmouseover = function() {
this.className = "b2"
};
a.onmouseout = function() {
this.className = "b1";
sc(j) //獲得焦點的序號背景變為黃色,其他序號按鈕為灰色
};
button.appendChild(a);
}
//控制透明度
function alpha(obj, n) {
if (document.all) {
obj.style.filter = "alpha(opacity=" + n + ")";
} else {
obj.style.opacity = (n / 100);
}
}
//控制焦點按鈕
function sc(n) {
for (var i = 0; i < li.length; i++) {
button.childNodes[i].className = "b1"
};
button.childNodes[n].className = "b2";
}
title.className = "num_list"; //設置顯示第幾張的div樣式
title.appendChild(span); //加一個span標簽
alpha(title, opac1);
id.className = "d1";
div.className = "d2";
id.appendChild(div);
id.appendChild(title);
id.appendChild(button);

//漸顯
var fadeon = function() {
opac += 5;
div.innerHTML = li[j].innerHTML; //切換圖片
span.innerHTML = getTag("img", li[j])[0].alt; //span裏的內容
alpha(div, opac); //設置透明度
if (scton == 0) {
sc(j);
num = -2;
scrolltxt();
scton = 1
};
if (opac < 100) {
timer = setTimeout(fadeon, interv2)
} else {
timer2 = setTimeout(fadeout, interv);
};
}
//漸隱
var fadeout = function() {
opac -= 5;
div.innerHTML = li[j].innerHTML;
alpha(div, opac);
if (scton == 0) {
num = 2;
scrolltxt();
scton = 1
};
if (opac > 0) {
timer = setTimeout(fadeout, interv2)
} else {
if (j < li.length - 1) {
j++
} else {
j = 0
};
fadeon()
};
}
//滾動文字
var scrolltxt = function() {
t += num;
span.style.marginTop = t + "px";
if (num < 0 && t > 3) {
timer3 = setTimeout(scrolltxt, interv2)
} else if (num > 0 && t < 62) {
timer3 = setTimeout(scrolltxt, interv2)
} else {
scton = 0
}
};
fadeon();
}
//初始化
window.onload = s;

html代碼:

<body>
<div id="fade_focus">
<div class="loading"></div>
<ul>
<li>
<img src="./img/1.jpg" width="443" height="209" alt="圖片焦點切換第一張文字" /> </li>
<li>
<img src="./img/2.jpg" width="443" height="209" alt="圖片焦點切換第二張文字" /> </li>
<li>
<img src="./img/3.jpg" width="443" height="209" alt="圖片焦點切換第三張文字" /> </li>
<li>
<img src="./img/4.jpg" width="443" height="209" alt="圖片焦點切換第四張文字" /> </li>
<li>
<img src="./img/5.jpg" width="443" height="209" alt="圖片焦點切換第四張文字" /> </li>
</ul>
</div>
</body>

js練習----圖片輪播切換