js實現(xiàn)可以點擊收縮或張開的懸浮窗
本文實例為大家分享了js實現(xiàn)懸浮窗的具體代碼,供大家參考,具體內(nèi)容如下

說明:點擊”+“按鈕,懸浮窗收縮/展開
思路
1、在html中定義一個div塊,定一個id;一個按鈕,點擊時用。
2、寫一個js,包含收縮以及展開的函數(shù);為按鈕添加點擊事件。
3、想要讓懸浮窗好看點,可設(shè)置對應(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í)開展開收縮
if (flag) {
r_len = 0;
timer = setInterval(slideright, 10);
} else {
r_len = -160;
timer = setInterval(slideleft, 10);
}
}
//展開
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>
//嵌套在頁面中,文檔初始化時加載。
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í)開展開收縮
if (flag) {
r_len = 0;
timer = setInterval(slideright, 10);
} else {
r_len = -160;
timer = setInterval(slideleft, 10);
}
}
//展開
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é)到此。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
JS實現(xiàn)側(cè)邊欄鼠標(biāo)經(jīng)過彈出框+緩沖效果
本文主要介紹了JS實現(xiàn)側(cè)邊欄鼠標(biāo)經(jīng)過彈出框+緩沖效果的實現(xiàn)原理與方法步驟。具有很好的參考價值,下面跟著小編一起來看下吧2017-03-03
scrapyd schedule.json setting 傳入多個值問題
這篇文章主要介紹了scrapyd schedule.json setting 傳入多個值,本文給出了問題分析及思路解決方案,非常不錯,具有一定的參考借鑒價值,需要的朋友參考下吧2019-08-08
前端uniapp封裝網(wǎng)絡(luò)請求以及實際應(yīng)用教程
這篇文章主要給大家介紹了關(guān)于前端uniapp封裝網(wǎng)絡(luò)請求以及實際應(yīng)用的相關(guān)資料,在uniapp中進(jìn)行網(wǎng)絡(luò)測試請求可以通過封裝網(wǎng)絡(luò)請求來實現(xiàn),文中給出了詳細(xì)的代碼實例,需要的朋友可以參考下2024-01-01
小程序scroll-view安卓機(jī)隱藏橫向滾動條的實現(xiàn)詳解
這篇文章主要介紹了小程序scroll-view安卓機(jī)隱藏橫向滾動條的實現(xiàn)詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-05-05

