Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537
拉菜單的屬性
length 表示選項(xiàng)<option>的個(gè)數(shù)
selected 布爾值,表示選項(xiàng)<option>是否被選中
SelectedIndex 被選中的選項(xiàng)序號(hào),如果沒有被選中則為-1,對(duì)于多選下拉菜單而言,返回被選中的第一個(gè)選項(xiàng)序號(hào)。從0開始計(jì)數(shù)
text 選項(xiàng)的文本(它是option專有的屬性)
value 選項(xiàng)的value值
type 下拉菜單的類型。單選返回select-one,多選返回select-multiple
options 獲取選項(xiàng)的數(shù)組,列如oSelectBox.options[2]表示下拉菜單oSelectBox中的第3項(xiàng)
訪問選中項(xiàng)
下拉菜單(單選):
<html>
<head>
<title>下拉菜單,單選</title>
<style>
<!--
form{
padding:0px; margin:0px;
font:14px Arial;
}
-->
</style>
<script language="javascript">
function checkSingle(){
var oForm = document.forms["myForm1"];
var oSelectBox = oForm.constellation;
var iChoice = oSelectBox.selectedIndex; //獲取選中項(xiàng)
alert("您選中了" + oSelectBox.options[iChoice].text); //下拉菜單,單選
}
</script>
</head>
<body>
<form method="post" name="myForm1">
<label for="constellation">星座:</label>
<p>
<select id="constellation" name="constellation">
<option value="Aries" selected="selected">白羊</option>
<option value="Taurus">金牛</option>
<option value="Gemini">雙子</option>
<option value="Cancer">巨蟹</option>
<option value="Leo">獅子</option>
<option value="Virgo">處女</option>
<option value="Libra">天秤</option>
<option value="Scorpio">天蝎</option>
<option value="Sagittarius">射手</option>
<option value="Capricorn">摩羯</option>
<option value="Aquarius">水瓶</option>
<option value="Pisces">雙魚</option>
</select>
</p>
<input type="button" onclick="checkSingle()" value="查看選項(xiàng)" />
</form>
</body>
</html>
下拉菜單(多選):
<html>
<head>
<title>下拉菜單,多選</title>
<style>
<!--
form{
padding:0px; margin:0px;
font:14px Arial;
}
p{
margin:0px; padding:2px;
}
-->
</style>
<script language="javascript">
function checkMultiple(){
var oForm = document.forms["myForm1"];
var oSelectBox = oForm.constellation;
var aChoices = new Array();
//遍歷整個(gè)下拉菜單
for(var i=0;i<oSelectBox.options.length;i++)
if(oSelectBox.options[i].selected) //如果被選中
aChoices.push(oSelectBox.options[i].text); //壓入到數(shù)組中,可以用于單選的情況;
alert("您選了:" + aChoices.join()); //輸出結(jié)果
}
</script>
</head>
<body>
<form method="post" name="myForm1">
<label for="constellation">星座:</label>
<p>
<select id="constellation" name="constellation" multiple="multiple" style="height:180px;">
<option value="Aries">白羊</option>
<option value="Taurus">金牛</option>
<option value="Gemini">雙子</option>
<option value="Cancer">巨蟹</option>
<option value="Leo">獅子</option>
<option value="Virgo">處女</option>
<option value="Libra">天秤</option>
<option value="Scorpio">天蝎</option>
<option value="Sagittarius">射手</option>
<option value="Capricorn">摩羯</option>
<option value="Aquarius">水瓶</option>
<option value="Pisces">雙魚</option>
</select>
</p>
<input type="button" onclick="checkMultiple()" value="查看選項(xiàng)" />
</form>
</body>
</html>
通用的訪問下拉菜單選中項(xiàng)的方法:
<script language="javascript">
function getSelectValue(Box){ //Box參數(shù)select標(biāo)簽的ID值
var oForm = document.forms["myForm1"];
var oSelectBox = oForm.elements[Box]; //根據(jù)參數(shù)相應(yīng)的選擇下拉菜單
if(oSelectBox.type == "select-one"){ //判斷是單選還是多選
var iChoice = oSelectBox.selectedIndex; //獲取選中項(xiàng)
alert("單選,您選中了" + oSelectBox.options[iChoice].text);
}else{
var aChoices = new Array();
//遍歷整個(gè)下拉菜單
for(var i=0;i<oSelectBox.options.length;i++)
if(oSelectBox.options[i].selected) //如果被選中
aChoices.push(oSelectBox.options[i].text); //壓入到數(shù)組中
alert("多選,您選了:" + aChoices.join()); //輸出結(jié)果
}
}
</script>
函數(shù)使用方法:
<select id="constellation1" name="constellation1">
<option value="Aries" selected="selected">白羊</option>
<option value="Taurus">金牛</option>
<option value="Gemini">雙子</option>
<option value="Cancer">巨蟹</option>
<option value="Leo">獅子</option>
<option value="Virgo">處女</option>
<option value="Libra">天秤</option>
<option value="Scorpio">天蝎</option>
<option value="Sagittarius">射手</option>
<option value="Capricorn">摩羯</option>
<option value="Aquarius">水瓶</option>
<option value="Pisces">雙魚</option>
</select>
<input type="button" onclick="getSelectValue('constellation1')" value="查看選項(xiàng)" />
添加、替換、刪除選項(xiàng)
通過構(gòu)造函數(shù)Option()直接添加value、text等信息,相當(dāng)方便
var oOption = new Option(text,value,defaultSelected,selected)
defaultSelected為布爾型值:1(true)設(shè)置下拉式表單默認(rèn)值,
selected為布爾值:1(true)表示被選中
最后兩項(xiàng)默認(rèn)值為0,如果不希望添加的選項(xiàng)被默認(rèn)選中則可以忽略,添加選項(xiàng)時(shí)通常將<select>列表的第length項(xiàng)直接設(shè)置為新的選項(xiàng),即在末尾增加。
添加選項(xiàng):
<html>
<head>
<title>添加選項(xiàng)</title>
<style>
<!--
form{padding:0px; margin:0px; font:14px Arial;}
p{margin:0px; padding:3px;}
input{margin:0px; border:1px solid #000000;}
-->
</style>
<script language="javascript">
function AddOption(Box){ //添加選項(xiàng),參數(shù)為<select>標(biāo)簽的ID值
var oForm = document.forms["myForm1"];
var oBox = oForm.elements[Box];
var oOption = new Option("乒乓球","Pingpang");
oBox.options[oBox.options.length] = oOption; //在菜單末尾添加選項(xiàng)
}
</script>
</head>
<body>
<form method="post" name="myForm1">
球類:
<p>
<select id="ball" name="ball" multiple="multiple">
<option value="Football">足球</option>
<option value="Basketball">籃球</option>
<option value="Volleyball">排球</option>
</select>
</p>
<input type="button" value="添加乒乓球" onclick="AddOption('ball');" />
</form>
</body>
</html>
替換選項(xiàng)
如果下拉菜單中的序號(hào)為已經(jīng)存在了的選項(xiàng),添加時(shí)則會(huì)自動(dòng)替換原有的選項(xiàng)
oBox.options[iNum]=oOption;//替換iNum個(gè)選項(xiàng)
<html>
<head>
<title>替換選項(xiàng)</title>
<style>
<!--
form{padding:0px; margin:0px; font:14px Arial;}
p{margin:0px; padding:3px;}
input{margin:0px; border:1px solid #000000;}
-->
</style>
<script language="javascript">
function ReplaceOption(Box,iNum){ //替換選項(xiàng),參數(shù)Box為<select>的ID值,iNum為替換的選項(xiàng)序號(hào);
var oForm = document.forms["myForm1"];
var oBox = oForm.elements[Box];
var oOption = new Option("乒乓球","Pingpang");
oBox.options[iNum] = oOption; //替換第iNum個(gè)選項(xiàng)
}
</script>
</head>
<body>
<form method="post" name="myForm1">
球類:
<p>
<select id="ball" name="ball" multiple="multiple">
<option value="Football">足球</option>
<option value="Basketball">籃球</option>
<option value="Volleyball">排球</option>
</select>
</p>
<input type="button" value="籃球替換為乒乓球" onclick="ReplaceOption('ball',1);" />
</form>
</body>
</html>
添加選項(xiàng)到具體位置
<html>
<head>
<title>添加到具體位置</title>
<style>
<!--
form{padding:0px; margin:0px; font:14px Arial;}
p{margin:0px; padding:3px;}
input{margin:0px; border:1px solid #000000;}
-->
</style>
<script language="javascript">
function AddOption(Box,iNum){
var oForm = document.forms["myForm1"];
var oBox = oForm.elements[Box];
var oOption = new Option("乒乓球","Pingpang");
oBox.insertBefore(oOption,oBox.options[iNum]);
}
</script>
</head>
<body>
<form method="post" name="myForm1">
球類:
<p>
<select id="ball" name="ball" multiple="multiple">
<option value="Football">足球</option>
<option value="Basketball">籃球</option>
<option value="Volleyball">排球</option>
</select>
</p>
<input type="button" value="添加乒乓球" onclick="AddOption('ball',1);" />
</form>
</body>
</html>
以上代碼IE7中雖然在正確的位置插入了選項(xiàng),但內(nèi)容卻沒有顯示出來(bug問題)
兼容性更好的代碼,使用方法與以上相同;
<script language="javascript">
function AddOption(Box,iNum){
var oForm = document.forms["myForm1"];
var oBox = oForm.elements[Box];
var oOption = new Option("乒乓球","Pingpang");
//兼容IE7,先添加選項(xiàng)到最后,再移動(dòng)
oBox.options[oBox.options.length] = oOption;
oBox.insertBefore(oOption,oBox.options[iNum]);
}
</script>
注意:IE9已經(jīng)解決了bug問題
刪除下拉菜單的選項(xiàng):
刪除下拉菜單中的某個(gè)選項(xiàng)時(shí)相對(duì)最簡(jiǎn)單的,只需要將這個(gè)選項(xiàng)設(shè)置為null即可
bBox.options[iNum]=null;
多數(shù)網(wǎng)站中,下拉菜單效果基本常見。在實(shí)現(xiàn)技術(shù)方面,實(shí)現(xiàn)該效果的方法也很多,今天就來說說純CSS樣式來實(shí)現(xiàn)常見的下拉菜單,有興趣的小伙伴可以參考下:
實(shí)現(xiàn)效果如下:
鼠標(biāo)未移上前
鼠標(biāo)未移上前
鼠標(biāo)移上后
鼠標(biāo)移上后
從效果圖可以看出,當(dāng)鼠標(biāo)移上去的時(shí)候,會(huì)彈出下拉的菜單層!要是在JQuery中,實(shí)現(xiàn)原理也蠻簡(jiǎn)單,就是當(dāng)鼠標(biāo)觸發(fā)移上去事件,彈層就顯示(默認(rèn)隱藏)的原理!而在CSS實(shí)現(xiàn)該效果會(huì)用到的原理就是CSS3的動(dòng)畫透明度過渡顯示。因?yàn)樾Ч麍D中也有幾個(gè)三角形圖標(biāo),所以統(tǒng)一用CSS和CSS3的知識(shí)來實(shí)現(xiàn)比較容易。下面首先看看html的結(jié)構(gòu):如下:
布局的CSS:
右邊實(shí)心的三角形可以用偽類元素 :after來實(shí)現(xiàn).
鼠標(biāo)移上去,各種變化的樣式,其中當(dāng)鼠標(biāo)移上去時(shí)候,彈出層的透明度變?yōu)?,就可以看到內(nèi)容
當(dāng)彈層出現(xiàn)后,第一行會(huì)有一個(gè)三角形指向,實(shí)現(xiàn)該三角形可以用到偽類:first-child:before,如下
結(jié)合起來就能完成純CSS做下拉菜單效果!想學(xué)更多知識(shí),歡迎關(guān)注“恒星網(wǎng)絡(luò)”頭條號(hào)!
現(xiàn)效果
代碼:
*請(qǐng)認(rèn)真填寫需求信息,我們會(huì)在24小時(shí)內(nèi)與您取得聯(lián)系。