本文實例講述了JS實現的簡單折疊展開動畫效果。分享給大家供大家參考,具體如下:
<!DOCTYPE = html>
<html>
<head>
<title>www.jb51.net JS折疊展開動畫</title>
<style>
body{
margin: 0px;
padding: 0px;
}
.red{
background-color:red;
width:200px;
height:200px;
position:relative;
left:-200px;
top:0px;
}
.blue{
background:blue;
width:20px;
height:50px;
position:absolute;
left:200px;
top:75px;
}
</style>
</head>
<body>
<div class="red" id="cf1"><div class="blue" id="cf">分享</div></div>
<script>
window.onload = function(){
var onDiv = document.getElementById("cf1");
onDiv.onmouseover = function(){
startmove(0);
}
onDiv.onmouseout = function(){
startmove(-200);
}
}
var timer ;
function startmove(target){
clearInterval(timer);//清除定時器,以免多次觸發定時器導致速度越來越快而不是勻速前進
var onDiv1 = document.getElementById("cf1");
timer = setInterval(function(){
var speed = 0;
if(onDiv1.offsetLeft<target){
speed = 10;
}else{
speed = -10;
}
if(onDiv1.offsetLeft==target){
clearInterval(timer);
}
else{
onDiv1.style.left = onDiv1.offsetLeft+speed+'px';
}
},30)
}
</script>
</body>
</html>
運行效果:

小結:
一、css部分:
1、別忘記樣式初始化;
2、復習css文件的引用方式;(類引用方式)
3、復習絕對定位和相對定位關系(父關系用relative;子關系用absolute)
二、js部分:
1、element.style.left & element.offsetLeft區別:
① 前者單位是px,是字符串;后者單位是數值;
② 其他參見:https://www.jb51.net/article/43981.htm
2、思路開始不夠清晰,未能抽象出鼠標放上和移開關鍵變量——目標位置不同而已
3、函數參數盡可能少(在能達成目標的情況下)
4、鼠標作用對象設置為父級div最好,不然會出現閃爍情況(剛調用onmouseover,目標移除,又調用了onmouseout)
5、注意清除定時器(①、防止移動時速度不穩定 ②、到目標位置停止運動)
三、其他:
Q:谷歌瀏覽器解除禁止彈出窗口?
A:設置——高級設置——隱私設置——內容設置——彈出式窗口,進行相關設置。
更多關于JavaScript相關內容感興趣的讀者可查看本站專題:《JavaScript頁面元素操作技巧總結》、《JavaScript運動效果與技巧匯總》、《JavaScript動畫特效與技巧匯總》、《JavaScript圖形繪制技巧總結》、《JavaScript切換特效與技巧總結》、《JavaScript錯誤與調試技巧總結》、《JavaScript數據結構與算法技巧總結》及《JavaScript數學運算用法總結》
希望本文所述對大家JavaScript程序設計有所幫助。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。