JS實現(xiàn)的模仿QQ頭像資料卡顯示與隱藏效果
本文實例講述了JS實現(xiàn)的模仿QQ頭像資料卡顯示與隱藏效果。分享給大家供大家參考,具體如下:
我們使用QQ時經(jīng)常需要查看朋友的資料卡,當我們把鼠標移入頭像時,資料卡顯示,并且鼠標能在頭像與資料卡之間能隨意移動,當鼠標移出頭像或資料卡時,資料卡延時隱藏。
實質(zhì)就是延時提示框問題!
首先寫好布局:
<style> div { float:left; margin:5px; } .head { width:50px;height:50px;background-color:pink; } .info { width:250px;height:200px;background-color:blue;display:none; } </style> <div> <div class="head"></div> <div class="info"></div> </div>
其次js部分:
思路:
(1)鼠標移入頭像,資料卡顯示;鼠標移出頭像,資料卡延時隱藏setTimeout
(2)鼠標移入資料卡,資料卡仍顯示,并清除資料卡延時隱藏的變量
(3)鼠標移出資料卡,資料卡延時隱藏,并且此時如果在移入到頭像中,資料卡扔顯示,并清除資料卡延時隱藏的變量
window.onload =function(){ var oHead = document.getElementsByClassName("head")[0]; var oInfo = document.getElementsByClassName("info")[0]; var timer = null; oHead.onmouseover=function(){ clearTimeout(timer); oInfo.style.display="block"; }; oHead.onmouseout=function(){ timer = setTimeout(function(){ oInfo.style.display="none"; },500); }; oInfo.onmouseover=function(){ clearTimeout(timer); oInfo.style.display="block"; }; oInfo.onmouseout=function(){ timer = setTimeout(function(){ oInfo.style.display="none"; },500); }; };
優(yōu)化代碼:
oInfo.onmouseover = oHead.onmouseover=function(){ clearTimeout(timer); oInfo.style.display="block"; }; oInfo.onmouseout = oHead.onmouseout=function(){ timer = setTimeout(function(){ oInfo.style.display="none"; },500); };
函數(shù)封裝:
注意:事件 .xx 等于 [“xx”]
第一種:函數(shù)外獲取變量,調(diào)用函數(shù),適用于一個或兩個元素調(diào)用此事件
window.onload =function(){ var oHead = document.getElementsByClassName("head")[0]; var oInfo = document.getElementsByClassName("info")[0]; reminder(oHead,oInfo,"onmouseover","onmouseout"); function reminder (div1,div2,event1,event2){ var timer = null; div1[event1] = div2[event1]=function(){ clearTimeout(timer); div2.style.display="block"; }; div1[event2] = div2[event2]=function(){ timer = setTimeout(function(){ div2.style.display="none"; },500); }; } };
第二種:函數(shù)外獲取變量,調(diào)用函數(shù),適用于多個元素調(diào)用此事件
window.onload =function(){ var number=0; reminder("head","info","onmouseover","onmouseout",number); function reminder (div1,div2,event1,event2,num){ var oHead = document.getElementsByClassName(div1)[num]; var oInfo = document.getElementsByClassName(div2)[num]; var timer = null; oHead[event1] = oInfo[event1]=function(){ clearTimeout(timer); oInfo.style.display="block"; }; oHead[event2] = oInfo[event2]=function(){ timer = setTimeout(function(){ oInfo.style.display="none"; },500); }; } };
比如,一共有三個頭像的話,就可以用for循環(huán)遍歷為每個元素綁定事件:
var number=null; for(number=0;number<3;number++){ reminder("head","info","onmouseover","onmouseout",number); }
更多關(guān)于JavaScript相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《JavaScript切換特效與技巧總結(jié)》、《JavaScript查找算法技巧總結(jié)》、《JavaScript動畫特效與技巧匯總》、《JavaScript錯誤與調(diào)試技巧總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》及《JavaScript數(shù)學運算用法總結(jié)》
希望本文所述對大家JavaScript程序設計有所幫助。
- 原生JS仿QQ閱讀點擊展開、收起效果
- JS實現(xiàn)的仿QQ空間圖片彈出效果代碼
- js實現(xiàn)仿qq消息的彈出窗效果
- JS實現(xiàn)超簡單的仿QQ折疊菜單效果
- JS實現(xiàn)仿QQ面板的手風琴效果折疊菜單代碼
- js實現(xiàn)帶緩沖效果的仿QQ面板折疊菜單代碼
- JS實現(xiàn)仿QQ聊天窗口抖動特效
- 純js實現(xiàn)仿QQ郵箱彈出確認框
- 基于zepto.js實現(xiàn)仿手機QQ空間的大圖查看組件ImageView.js詳解
- javascript仿qq界面的折疊菜單實現(xiàn)代碼
- js設置控件的隱藏與顯示的兩種方法
- js菜單點擊顯示或隱藏效果的簡單實例
- javascript 控制 html元素 顯示/隱藏實現(xiàn)代碼
相關(guān)文章
javascript HTML+CSS實現(xiàn)經(jīng)典橙色導航菜單
這篇文章主要介紹了javascript HTML+CSS實現(xiàn)經(jīng)典橙色導航菜單的相關(guān)資料,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-02-02JavaScript實現(xiàn)函數(shù)重載的代碼示例
在JavaScript中并沒有直接支持函數(shù)重載的機制,但是可以通過一些技巧來模擬函數(shù)重載的效果,比如使用參數(shù)判斷,使用默認參數(shù),對象參數(shù),這些方法都可以實現(xiàn)類似函數(shù)重載的效果,所以本文就給大家介紹一下JavaScript如何實現(xiàn)函數(shù)重載,需要的朋友可以參考下2023-08-08如何利用Web Speech API之speechSynthesis實現(xiàn)文字轉(zhuǎn)語音功能
Web Speech API使你能夠?qū)⒄Z音數(shù)據(jù)合并到Web應用程序中,SpeechSynthesisUtterance是HTML5中新增的API,用于將指定文字合成為對應的語音,這篇文章主要介紹了利用Web Speech API之speechSynthesis實現(xiàn)文字轉(zhuǎn)語音功能,需要的朋友可以參考下2024-06-06