JS實現(xiàn)的簡單折疊展開動畫效果示例
本文實例講述了JS實現(xiàn)的簡單折疊展開動畫效果。分享給大家供大家參考,具體如下:
<!DOCTYPE = html> <html> <head> <title>www.dbjr.com.cn 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);//清除定時器,以免多次觸發(fā)定時器導(dǎo)致速度越來越快而不是勻速前進 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>
運行效果:
小結(jié):
一、css部分:
1、別忘記樣式初始化;
2、復(fù)習(xí)css文件的引用方式;(類引用方式)
3、復(fù)習(xí)絕對定位和相對定位關(guān)系(父關(guān)系用relative;子關(guān)系用absolute)
二、js部分:
1、element.style.left & element.offsetLeft區(qū)別:
① 前者單位是px,是字符串;后者單位是數(shù)值;
② 其他參見:http://www.dbjr.com.cn/article/43981.htm
2、思路開始不夠清晰,未能抽象出鼠標放上和移開關(guān)鍵變量——目標位置不同而已
3、函數(shù)參數(shù)盡可能少(在能達成目標的情況下)
4、鼠標作用對象設(shè)置為父級div最好,不然會出現(xiàn)閃爍情況(剛調(diào)用onmouseover,目標移除,又調(diào)用了onmouseout)
5、注意清除定時器(①、防止移動時速度不穩(wěn)定 ②、到目標位置停止運動)
三、其他:
Q:谷歌瀏覽器解除禁止彈出窗口?
A:設(shè)置——高級設(shè)置——隱私設(shè)置——內(nèi)容設(shè)置——彈出式窗口,進行相關(guān)設(shè)置。
更多關(guān)于JavaScript相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《JavaScript頁面元素操作技巧總結(jié)》、《JavaScript運動效果與技巧匯總》、《JavaScript動畫特效與技巧匯總》、《JavaScript圖形繪制技巧總結(jié)》、《JavaScript切換特效與技巧總結(jié)》、《JavaScript錯誤與調(diào)試技巧總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》及《JavaScript數(shù)學(xué)運算用法總結(jié)》
希望本文所述對大家JavaScript程序設(shè)計有所幫助。
相關(guān)文章
Three.js中網(wǎng)格對象MESH的屬性與方法詳解
三維開發(fā)渲染最多的對象大概是網(wǎng)格mesh了,Webgl開發(fā)三維也不例外,下面這篇文章主要給大家介紹了關(guān)于Three.js中網(wǎng)格對象MESH的屬性與方法,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考借鑒,下面來一起看看吧。2017-09-09一文帶你掌握掌握JavaScript中不同屬性類型的細節(jié)
JavaScript是一種功能強大的編程語言,支持面向?qū)ο蟮木幊谭妒?,本文將介紹JavaScript中面向?qū)ο缶幊痰幕靖拍睿▽ο?、屬性類型、定義多個屬性和讀取屬性的特性2023-06-06JavaScript中將number轉(zhuǎn)為string的5種方法
這篇文章主要給大家介紹了關(guān)于JavaScript中將number轉(zhuǎn)為string的5種方法,在JavaScript的值類型轉(zhuǎn)換中,最常發(fā)生的就是string與number這兩種類型值之間的相互轉(zhuǎn)換,需要的朋友可以參考下2023-07-07javascript實現(xiàn)詳細時間提醒信息效果的方法
這篇文章主要介紹了javascript實現(xiàn)詳細時間提醒信息效果的方法,涉及javascript操作時間的技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-03-03javascript之典型高階函數(shù)應(yīng)用介紹二
在前一篇文章javascript之典型高階函數(shù)中主要實現(xiàn)了幾個典型的functional函數(shù),文章最后也提出了疑問,為啥那樣的實現(xiàn)與F#之類的函數(shù)式語言“不太一樣”呢?今天來試試更“函數(shù)式”的實現(xiàn)2013-01-01js表數(shù)據(jù)排序 sort table data
對于表格的排序,是很不錯的一個功能,方便用戶快速的分析一些數(shù)據(jù)。2009-02-02VScode中配置JavaScript編譯環(huán)境的方法
這篇文章主要介紹了VSCODE中配置JavaScript編譯環(huán)境的方法,方式一 使用Node.js做為解釋器運行JS代碼 Node.js的安裝和配置,方式二使用VSCODE插件Code Runner運行JS代碼,本文給大家介紹的非常詳細,需要的朋友可以參考下2022-08-08