下拉列表的簡單Demo

一穗泵、Html頁面布局
<body>
  <div id="divselect">
    <cite>請選擇分類</cite>
    <ul>
      <li id="li"><a href="javascript:;" selectid="1">ASP開發(fā)</a></li>
      <li><a href="javascript:;" selectid="2">.NET開發(fā)</a></li>
      <li><a href="javascript:;" selectid="3">PHP開發(fā)</a></li>
      <li><a href="javascript:;" selectid="4">Javascript開發(fā)</a></li>
      <li><a href="javascript:;" selectid="5">Java開發(fā)</a></li>
    </ul>
  </div>
</body>
二、Css樣式
body, ul, li {
  margin: 0;
  padding: 0;
  font-size: 13px;
}

ul, li {
  list-style: none;
}

#divselect {
  width: 186px;
  margin: 80px auto;
  position: relative;
  z-index: 10000;
}

#divselect cite {
  width: 150px;
  height: 24px;
  line-height: 24px;
  display: block;
  color: #807a62;
  cursor: pointer;
  font-style: normal;
  padding-left: 4px;
  padding-right: 30px;
  border: 1px solid #333333;
  /*background:url(xjt.png) no-repeat right center;*/
}
/*向下的三角箭頭*/
cite:before {
  content: '';
  position: absolute;
  right: 7px;
  bottom: 7px;
  width: 0;
  height: 0;
  border-width: 4px;
  border-style: solid;
  border-color: #888 transparent transparent transparent;
  transition: all 0.2s;
  -webkit-transition: all 0.2s;
  -moz-transition: all 0.2s;
  -o-transition: all 0.2s;
  -ms-transition: all 0.2s;
  transform-origin: 50% 25%;
  -ms-transform-origin: 50% 25%;
  -moz-transform-origin: 50% 25%;
  -webkit-transform-origin: 50% 25%;
  -o-transform-origin: 50% 25%;
}

.extended cite:before {
  transform: rotate(180deg);
  -webkit-transform: rotate(180deg);
  -moz-transform: rotate(180deg);
  -o-transform: rotate(180deg);
  -ms-transform: rotate(180deg);
}

#divselect ul {
  width: 184px;
  border: 1px solid #333333;
  background-color: #ffffff;
  position: absolute;
  z-index: 20000;
  margin-top: -1px;
  display: none;
  overflow: hidden;
}

#divselect ul li {
  height: 24px;
  line-height: 24px;
}

#divselect ul li a {
  display: block;
  height: 24px;
  color: #333333;
  text-decoration: none;
  padding-left: 10px;
  padding-right: 10px;
}

.animated {
  animation-fill-mode: both;
  -webkit-animation-fill-mode: both;
  -moz-animation-fill-mode: both;
  -o-animation-fill-mode: both;
  -ms-animation-fill-mode: both;
}

.speed_fast {
  animation-duration: 0.2s;
  -webkit-animation-duration: 0.2s;
  -moz-animation-duration: 0.2s;
  -o-animation-duration: 0.2s;
  -ms-animation-duration: 0.2s;
}

.anim_extendDown {
  animation-name: extendDown;
  -webkit-animation-name: extendDown;
  -moz-animation-name: extendDown;
  -o-animation-name: extendDown;
  -ms-animation-name: extendDown;
}

@keyframes extendDown {
  0% {
    border-bottom-color: transparent;
    height: 0;
  }
  100% {
    border-bottom-color: #333;
    height: 120px;
  }
}

@-webkit-keyframes extendDown {
  0% {
    border-bottom-color: transparent;
    height: 0;
  }
  100% {
    border-bottom-color: #333;
    height: 120px;
  }
}

@-moz-keyframes extendDown {
  0% {
    border-bottom-color: transparent;
    height: 0;
  }
  100% {
    border-bottom-color: #333;
    height: 120px;
  }
}

@-o-keyframes extendDown {
  0% {
    border-bottom-color: transparent;
    height: 0;
  }
  100% {
    border-bottom-color: #333;
    height: 120px;
  }
}

@-ms-keyframes extendDown {
  0% {
    border-bottom-color: transparent;
    height: 0;
  }
  100% {
    border-bottom-color: #333;
    height: 120px;
  }
}
三、Js部分
window.onload = function(){
  var box = document.getElementById('divselect'),
      title = box.getElementsByTagName('cite')[0],
      menu = box.getElementsByTagName('ul')[0],
      as = box.getElementsByTagName('a'),
      index = -1;

  function resetA(){
    for(var i = 0; i < as.length; i++) {
      as[i].style.background = "#fff";
    }
  }

  function resetM() {
    box.className = '';
    menu.className = '';
    menu.style.display = "none";
    index = -1;
    resetA();
  }
  //點擊顯示選項列表
  title.onclick = function(event) {
    event = event || window.event;
    //兼容IE
    event.stopPropagation ? event.stopPropagation() : event.cancelBubble = true;
    //防止事件冒泡
    if(box.className == "extended"){
      resetM();
    } else {
      box.className = "extended";
      menu.className = "anim_extendDown animated speed_fast";
      menu.style.display = "block";
    }
  }
  //滑過滑出選項 改變樣式 點擊選擇內(nèi)容
  for(var i = 0; i < as.length; i++) {
    as[i].onmouseover = function() {
      resetA();
      this.style.background = "#ccc";
      index = this.getAttribute('selectid') - 1;
    }
    as[i].onclick = function() {
      resetM();
      title.innerHTML = this.innerHTML;
    }
  }
  //點擊頁面其他地方 隱藏選項列表
  document.onclick = function() {
    resetM();
  }
  //鍵盤點擊事件
  document.onkeydown = function (e) {
    e = e || window.event;
    if(box.className == "extended"){
      if(e.keyCode == 40){
          e.preventDefault ? e.preventDefault() : e.returnValue = false;
          index++;
          if(index > as.length - 1){
              index = 0;
          }
          resetA();
          as[index].style.backgroundColor = "#ccc";
      }else if(e.keyCode == 38){
          e.preventDefault ? e.preventDefault() : e.returnValue = false;
          index--;
          if(index < 0){
              index = as.length - 1;
          }
          resetA();
          as[index].style.backgroundColor = "#ccc";
      }else if(e.keyCode == 13 && index != -1){
          e.preventDefault ? e.preventDefault() : e.returnValue = false;
          title.innerHTML = as[index].innerHTML;
          index = -1;
          resetA();
          resetM();
      }
    }
  }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子鲜戒,更是在濱河造成了極大的恐慌,老刑警劉巖抹凳,帶你破解...
    沈念sama閱讀 218,858評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件遏餐,死亡現(xiàn)場離奇詭異,居然都是意外死亡赢底,警方通過查閱死者的電腦和手機失都,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,372評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來幸冻,“玉大人粹庞,你說我怎么就攤上這事∏⑺穑” “怎么了庞溜?”我有些...
    開封第一講書人閱讀 165,282評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長碑定。 經(jīng)常有香客問我流码,道長,這世上最難降的妖魔是什么延刘? 我笑而不...
    開封第一講書人閱讀 58,842評論 1 295
  • 正文 為了忘掉前任漫试,我火速辦了婚禮,結(jié)果婚禮上碘赖,老公的妹妹穿的比我還像新娘驾荣。我一直安慰自己外构,他們只是感情好,可當我...
    茶點故事閱讀 67,857評論 6 392
  • 文/花漫 我一把揭開白布播掷。 她就那樣靜靜地躺著审编,像睡著了一般。 火紅的嫁衣襯著肌膚如雪歧匈。 梳的紋絲不亂的頭發(fā)上割笙,一...
    開封第一講書人閱讀 51,679評論 1 305
  • 那天,我揣著相機與錄音眯亦,去河邊找鬼。 笑死般码,一個胖子當著我的面吹牛妻率,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播板祝,決...
    沈念sama閱讀 40,406評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼宫静,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了券时?” 一聲冷哼從身側(cè)響起孤里,我...
    開封第一講書人閱讀 39,311評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎橘洞,沒想到半個月后捌袜,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,767評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡炸枣,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年虏等,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片适肠。...
    茶點故事閱讀 40,090評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡霍衫,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出侯养,到底是詐尸還是另有隱情敦跌,我是刑警寧澤,帶...
    沈念sama閱讀 35,785評論 5 346
  • 正文 年R本政府宣布逛揩,位于F島的核電站柠傍,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏息尺。R本人自食惡果不足惜携兵,卻給世界環(huán)境...
    茶點故事閱讀 41,420評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望搂誉。 院中可真熱鬧徐紧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,988評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至嘲碧,卻和暖如春稻励,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背愈涩。 一陣腳步聲響...
    開封第一講書人閱讀 33,101評論 1 271
  • 我被黑心中介騙來泰國打工望抽, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人履婉。 一個月前我還...
    沈念sama閱讀 48,298評論 3 372
  • 正文 我出身青樓煤篙,卻偏偏與公主長得像,于是被迫代替她去往敵國和親毁腿。 傳聞我的和親對象是個殘疾皇子辑奈,可洞房花燭夜當晚...
    茶點故事閱讀 45,033評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標簽默認的外補...
    _Yfling閱讀 13,754評論 1 92
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,166評論 25 707
  • 一:在制作一個Web應用或Web站點的過程中已烤,你是如何考慮他的UI鸠窗、安全性、高性能胯究、SEO稍计、可維護性以及技術因素的...
    Arno_z閱讀 1,166評論 0 1
  • 我們明白市場的真正需求嗎? 我們可以滿足市場需求嗎裕循? 挑最被需要的事情去做丙猬。 談到個人成長話題很大,也有很多的成功...
    B型血兔子007閱讀 359評論 2 2
  • 親愛的: 現(xiàn)在是凌晨五點费韭,我醒了茧球,可能只睡了三四個小時,因為你昨晚把我狠狠的教育了一頓星持。 我做了個不好的夢抢埋,夢里面...
    iceaswater閱讀 850評論 0 2