自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

制作一個選擇中國大學(xué)的彈框

開發(fā) 前端
彈框初始狀態(tài)下為隱藏狀態(tài)(display:none), 為了用戶體驗(yàn), 在用戶觸發(fā)打開彈框時間后, 彈框應(yīng)該在頁面中呈居中顯示, 使用下面一段代碼可以實(shí)現(xiàn)居中效果:

圖1: 效果

1. 數(shù)據(jù)

一共包含了全國3049所大學(xué), 從人人網(wǎng)拷貝的 (僅供學(xué)習(xí)交流, 請勿用于商業(yè)項(xiàng)目)。

數(shù)據(jù)地址:http://files.cnblogs.com/technology/school.js. 這是一個腳本文件, 里含的JSON對象存儲了學(xué)校的信息, 格式為:

  1. var schoolList=[   
  2.     {   
  3.         "id":1, //省份id   
  4.         "school": [   
  5.             {   
  6.                 "id": 1001, //學(xué)校id   
  7.                 "name""\u6e05\u534e\u5927\u5b66" //學(xué)校名稱   
  8.             }   
  9.             /....   
  10.             ], //這個省的學(xué)校   
  11.         "name""\u5317\u4eac" 
  12.     },   
  13.     //...   
  14. ]; 

2. 步驟

2.1 彈框的構(gòu)造及彈出方式

目前彈框分為iframe和div兩種形式, 在本例中我選擇使用div作為彈框, 彈框的結(jié)構(gòu)如下:

  1. <div id="choose-box-wrapper">   
  2.   <div id="choose-box">   
  3.     <div id="choose-box-title">   
  4.         <span>選擇學(xué)校</span>   
  5.     </div>   
  6.     <div id="choose-a-province">   
  7.     </div>   
  8.     <div id="choose-a-school">   
  9.     </div>   
  10.     <div id="choose-box-bottom">   
  11.         <input type="botton" onclick="hide()" value="關(guān)閉" />   
  12.     </div>   
  13.   </div>   
  14. </div> 

彈框初始狀態(tài)下為隱藏狀態(tài)(display:none), 為了用戶體驗(yàn), 在用戶觸發(fā)打開彈框時間后, 彈框應(yīng)該在頁面中呈居中顯示, 使用下面一段代碼可以實(shí)現(xiàn)居中效果:

  1. function makeCenter()   
  2. {   
  3.     $('#choose-box-wrapper').css("display","block");   
  4.     $('#choose-box-wrapper').css("position","absolute");   
  5.     $('#choose-box-wrapper').css("top", Math.max(0, (($(window).height() - $('#choose-box-wrapper').outerHeight()) / 2) + $(window).scrollTop()) + "px");   
  6.     $('#choose-box-wrapper').css("left", Math.max(0, (($(window).width() - $('#choose-box-wrapper').outerWidth()) / 2) + $(window).scrollLeft()) + "px");   

2.2 加載省份列表和學(xué)校列表

在***次跳出彈框時, 默認(rèn)為列表中的***個省份. 加載完這個省份所有的名單后, 給每一項(xiàng)都需要綁定一個click函數(shù), 用戶在發(fā)生單擊后, 更新用戶選擇省份下的大學(xué)列表.

更新完該省的大學(xué)列表后, 同樣要給每一項(xiàng)都綁定一個click函數(shù), 用戶在選擇該大學(xué)后可以執(zhí)行相應(yīng)的操作. (比如給某個文本框填值, 頁面重定向etc.)

  1. function initProvince()   
  2. {   
  3.     //原先的省份列表清空   
  4.     $('#choose-a-province').html('');   
  5.     for(i=0;i<schoolList.length;i++)   
  6.     {   
  7.         $('#choose-a-province').append('<a class="province-item" province-id="'+schoolList[i].id+'">'+schoolList[i].name+'</a>');   
  8.     }   
  9.     //添加省份列表項(xiàng)的click事件   
  10.     $('.province-item').bind('click', function(){   
  11.             var item=$(this);   
  12.             var province = item.attr('province-id');   
  13.             var choosenItem = item.parent().find('.choosen');   
  14.             if(choosenItem)   
  15.                 $(choosenItem).removeClass('choosen');   
  16.             item.addClass('choosen');   
  17.             //更新大學(xué)列表   
  18.             initSchool(province);   
  19.         }   
  20.     );   
  21. }   
  22.     
  23. function initSchool(provinceID)   
  24. {   
  25.     //原先的學(xué)校列表清空   
  26.     $('#choose-a-school').html('');   
  27.     var schools = schoolList[provinceID-1].school;   
  28.     for(i=0;i<schools.length;i++)   
  29.     {   
  30.         $('#choose-a-school').append('<a class="school-item" school-id="'+schools[i].id+'">'+schools[i].name+'</a>');   
  31.     }   
  32.     //添加大學(xué)列表項(xiàng)的click事件   
  33.     $('.school-item').bind('click', function(){   
  34.             var item=$(this);   
  35.             var school = item.attr('school-id');   
  36.             //更新選擇大學(xué)文本框中的值   
  37.             $('#school-name').val(item.text());   
  38.             //關(guān)閉彈窗   
  39.             hide();   
  40.         }   
  41.     );   

2.3 彈出及隱藏窗口

在本例中, 用戶點(diǎn)擊一個要求輸入學(xué)校的文本框, 頁面跳出彈框. 彈框中含有關(guān)閉按鈕, 可以關(guān)閉彈框.

  1. //彈出窗口   
  2. function pop(){   
  3.     //將窗口居中   
  4.     makeCenter();   
  5.     
  6.     //初始化省份列表   
  7.     initProvince();   
  8.     
  9.     //默認(rèn)情況下, 給***個省份添加choosen樣式   
  10.     $('[province-id="1"]').addClass('choosen');   
  11.     
  12.     //初始化大學(xué)列表   
  13.     initSchool(1);   
  14. }   
  15. //隱藏窗口   
  16. function hide()   
  17. {   
  18.     $('#choose-box-wrapper').css("display","none");   

3. 下載

[[86488]]

原文鏈接:http://www.cnblogs.com/technology/archive/2012/07/25/2607560.html

責(zé)任編輯:張偉 來源: Create Chen的博客
相關(guān)推薦

2010-08-09 13:48:14

微軟最佳雇主

2009-06-15 16:48:20

中國大學(xué)畢業(yè)生就業(yè)報(bào)告

2010-03-29 09:26:23

大學(xué)生創(chuàng)業(yè)李開復(fù)

2012-03-20 16:52:24

超算大賽超級計(jì)算機(jī)

2025-04-23 09:34:46

2013-08-07 13:58:21

Android應(yīng)用圖標(biāo)

2012-08-23 10:03:48

2017-01-05 13:38:56

華為ICT

2015-07-13 14:15:19

SDN

2020-07-20 14:04:34

Excel下拉菜單數(shù)據(jù)

2012-03-23 16:00:59

超算大賽

2009-08-19 15:01:24

百度框計(jì)算

2012-03-16 17:07:07

超級計(jì)算機(jī)

2011-06-16 15:36:56

Qt Quick Symbian

2009-09-11 09:11:09

2023-12-05 07:19:43

CAP定理分布式

2013-05-21 11:02:15

雅虎黑客黑客日

2018-06-05 14:40:35

Linux樹莓派繪圖儀

2023-10-05 15:37:15

Linux MintUSB

2013-05-13 09:31:29

Web App開發(fā)WebApp
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號