功能需求
1、調用要方便,做好之後應該像這樣:
function loadSelect(selectobj){
//傳入一個select對象就能將他的樣式美化
}
2、不改變原有表單項,表單的頁面代碼不去破壞:
<form name="f" >
<fieldset>
<legend>用戶注冊</legend>
<div>
<label for="username">帳號</label>
<input type="text" id="username" name="username" />
</div>
<div>
<label for="pwd">密碼</label>
<input type="password" name="pwd" id="pwd" />
</div>
<div>
<label for="province">省份</label>
<select id="province" name="province">
<option value="10">江西</option>
<option value="11">福建</option>
<option value="12">廣東</option>
<option value="13">浙江</option>
</select>
</div>
</fieldset>
<input type="submit" value="提交" name="btnSub" />
</form>
實現思路
第一步:將表單中的select隱藏起來。
為什麼?很簡單,因為這家伙太頑固了,用css根本搞不出來你想要的。所以把它殺掉。
第二步:用腳本找到select標簽在網頁上的絕對位置。
我們在那個位置上用DIV標簽做個假的、好看點的來當他的替身。
第三步:用腳本把select標簽中的值讀出來。
雖然藏起來了,但它裡邊的options我們還有用呢,統統取過來。
第四步:當用戶點擊select標簽的替身,也就是div的時候。我們再用一個div浮在上一個div的下邊,這個就是options的替身了。
大致上就是這樣了,接下來我們一步一步去實現它!
准備工作
1、想好你要把select美化成什麼樣子,並准備好相應的圖片。我准備了兩張小圖,就是下拉箭頭1和下拉箭頭2,1是默認樣式,2是鼠標移過來的樣式。
2、寫好一個普通的表單遞交頁面,比如下邊這個。注意我給select定義了基本的CSS樣式、在頭部添加了調用js文件的代碼、在body中添加了調用函數的腳本。
編寫javascript
<script type="text/javascript" src="select.js"></script>
新建一個js文件並保存為select.js,剩下的工作我們全部在這個js中去完成。
函數名:loadSelect(obj);
參數:select對象
相關函數:
//取標簽的絕對位置
{
var t = e.offsetTop;
var l = e.offsetLeft;
var w = e.offsetWidth;