本文實(shí)例為大家分享了js實(shí)現(xiàn)懸浮窗的具體代碼,供大家參考,具體內(nèi)容如下

說(shuō)明:點(diǎn)擊”+“按鈕,懸浮窗收縮/展開(kāi)
思路
1、在html中定義一個(gè)div塊,定一個(gè)id;一個(gè)按鈕,點(diǎn)擊時(shí)用。
2、寫一個(gè)js,包含收縮以及展開(kāi)的函數(shù);為按鈕添加點(diǎn)擊事件。
3、想要讓懸浮窗好看點(diǎn),可設(shè)置對(duì)應(yīng)的參數(shù)。
步驟
html
<div id="area"> <div id="small_menu"> <ul> <li><a href="#">item one</a></li> <li><a href="#">item two</a></li> <li><a href="#">item three</a></li> <li><a href="#">item four</a></li> <li><a href="#">item five</a></li> </ul> </div> <div id="on" onclick="xuanfu();"><p>+</p></div> </div>
js
var menubox = document.getElementById("area"); //area為菜單欄的id  var cli_on = document.getElementById("on"); //on為按鈕  var flag = false, timer = null, initime = null, r_len = 0;  if(menubox.style.right=== 0){    flag = true;    }  else{    flag = false;    }  cli_on.onclick = function () {    //為on按鈕綁定click事件    clearTimeout(initime);    //根據(jù)狀態(tài)flag執(zhí)開(kāi)展開(kāi)收縮    if (flag) {      r_len = 0;      timer = setInterval(slideright, 10);    } else {      r_len = -160;      timer = setInterval(slideleft, 10);    }  }  //展開(kāi)  function slideright() {    if (r_len <= -160) {      clearInterval(timer);      flag = !flag;      return false;    }else{      r_len -= 5;      menubox.style.right = r_len + 'px';    }  }  //收縮  function slideleft() {    if (r_len >= 0) {      clearInterval(timer);      flag = !flag;      return false;    } else {      r_len += 5;      menubox.style.right = r_len + 'px';    }  } 完整代碼
含css,可直接用
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>懸浮窗</title></head><style type="text/css">#area{ position:fixed; width:160px; right:-160px; top:27%;}#small_menu ul { list-style: none;}#area #on{ position: absolute; top: 40%; right: 100%; width: 30px; height: 30px; cursor: pointer; border-radius: 15px; background-color: rgba(13, 143, 143, 0.2); }#area #on p{ font-size:30px; text-align:center; margin-top:-6px; color:#01E290; }#area #small_menu { width:100%; } #area #small_menu ul li { width:100%; height: 44px; text-align:left; background-color: rgba(2, 27, 38, 0.62); border-top: 1px solid #043B46; line-height: 44px;}#area #small_menu ul li a{ text-decoration: none;  margin-left:30px; color: #bfbfbf; font-size:16px; font-family: 'Microsoft Yahei'; }#area #small_menu li.active { width: 156px;  background-color: rgba(2, 27, 38, 0.87); border-left: 4px solid #00ffff; border-top: 0px;}#area #small_menu li.active a{ color: #00ffff; }#area #small_menu ul li:hover { width: 156px; background-color: rgba(2, 27, 38, 0.87); border-left: 4px solid #00ffff;}#area #small_menu ul li:hover a{ color: #00ffff;  } </style><body> <div id="area">  <div id="small_menu">   <ul>    <li><a href="#">item one</a></li>    <li><a href="#">item two</a></li>           <li><a href="#">item three</a></li>    <li><a href="#">item four</a></li>    <li><a href="#">item five</a></li>   </ul>       </div>    <div id="on" onclick="xuanfu();"><p>+</p></div>  </div><script>//嵌套在頁(yè)面中,文檔初始化時(shí)加載。 var menubox = document.getElementById("area"); //area為菜單欄的id var cli_on = document.getElementById("on"); //on為按鈕 var flag = false, timer = null, initime = null, r_len = 0; if(menubox.style.right=== 0){  flag = true;  } else{  flag = false;  } cli_on.onclick = function () {  //為on按鈕綁定click事件  clearTimeout(initime);  //根據(jù)狀態(tài)flag執(zhí)開(kāi)展開(kāi)收縮  if (flag) {   r_len = 0;   timer = setInterval(slideright, 10);  } else {   r_len = -160;   timer = setInterval(slideleft, 10);  } } //展開(kāi) function slideright() {  if (r_len <= -160) {   clearInterval(timer);   flag = !flag;   return false;  }else{   r_len -= 5;   menubox.style.right = r_len + 'px';  } } //收縮 function slideleft() {  if (r_len >= 0) {   clearInterval(timer);   flag = !flag;   return false;  } else {   r_len += 5;   menubox.style.right = r_len + 'px';  } } </script></body></html>小結(jié)到此。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持武林網(wǎng)。
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注