我們老是在想著怎麼提升自己的水平,但是實際上的行動卻很少,大師都說是要每天碼一點點代碼的,那麼要怎麼做到動手實踐碼代碼呢?我就想有時候我們自己在欣賞別人的網站的時候,是不是就會想說看到某個模塊非常的美觀簡潔,那麼是不是就可以自己動手寫下來呢?不懂的時候我們就使用火狐自帶的 firebug來查看這些結構,然後模仿下來,仔細分析好,後續在自己實現看看,這樣不是就更能進步呢?於是我在自己工作的同時看到好看的我也就想著實現它,現在就發現比較會去思考怎麼來實現某個模塊了。不過還是有很多缺陷,如果你在看我這篇文章,有發現更優的解法,請不要吝啬的貼上你的代碼部分吧。
初始化
經過的下拉展示
這邊是我查看的地址,我要模仿的是他的下拉框,經過美化的偽下拉:
http://www.lawtime.cn/xiamen 不過我這邊有做了小小的調整現在我的浏覽都是基於火狐和谷歌浏覽器上查看特效的,我沒有在去關注IE,因此,我右邊的小三角是用CSS3實現的,鼠標經過的時候有旋轉特效哦。。下面是Html結果
復制代碼代碼如下:
<div class="select">
<div class="select_default"></div>
<!--這邊是默認展示我們選中的框-->
<ul class="select_item">
<!--實則所有的下拉選項隱藏了,在這個ul中-->
<li>Complex</li>
<li>Knowledge</li>
<li>Case</li>
<li>Article</li>
<li>News</li>
</ul>
</div>
然後在進行CSS美化
復制代碼代碼如下:
*{
margin:0;
padding:0;
}
body{
margin:0;
padding:0;
font:normal 12px Arial, Helvetica, sans-serif;
}
.select{
width:100px;
position:relative;
top:100px;
left:100px;
cursor:pointer;
}
.select_default{
width:80px;
height:32px;
line-height:32px;
padding:0 10px;
border:solid 1px #ccc;
}
/*這邊就是三角形的CSS代碼,使用偽類和定位實現右三角*/
.select_default:after{
content:"";
border-left:5px solid transparent;
border-right:5px solid transparent;
border-bottom:5px solid #999;
-webkit-transform-origin:5px 2.5px;
-moz-transform-origin:5px 2.5px;
-ms-transform-origin:5px 2.5px;
-o-transform-origin:5px 2.5px;
transform-origin:5px 2.5px;
-webkit-transition: all .5s ease;
-moz-transition: all .5s ease;
-ms-transition: all .5s ease;
-o-transition: all .5s ease;
transition: all .5s ease;
position:absolute;
right:5px;
top:14px;
}
.select_default.rotate:after{
-webkit-transform:rotate(180deg);
-moz-transform:rotate(180deg);
-ms-transform:rotate(180deg);
-o-transform:rotate(180deg);
transform:rotate(180deg);
}
.select_item{
margin:0;
padding:0;
display:none;
list-style:none;
}
.select_item li{
width:80px;
height:32px;
line-height:32px;
padding:0 10px;
border:solid 1px #ccc;
border-top:none;
}
.select_item li.hover{
background:#666;
color:#fff;
}
最後使用jq實現下拉
復制代碼代碼如下:
$(document).ready(function(){
var $sel = $(".select"),
$sel_default = $(".select_default"),
$sel_item = $(".select_item"),
$sel_item_li = $(".select_item li")
$sel_default.text($(".select_item li:first").text());
//alert();
$sel.hover(function(){
$sel_item.show();
$sel_default.addClass("rotate");
$sel_item_li.hover(function(){
$index = $sel_item_li.index(this);
//alert($index)
$sel_item_li.eq($index).addClass("hover");
},function(){
$sel_item_li.removeClass("hover");
})
},function(){
$sel_item.hide();
$sel_default.removeClass("rotate");
});
$sel_item_li.click(function(){
$sel_default.text($(this).text());
$sel_item.hide();
});
});