ionic——類似通訊錄的A-Z檢索

image.png

首先要明確步驟:
1、頁面顯示出A-Z的效果(絕對定位)鸭轮;
2垮刹、數(shù)據(jù)結(jié)構(gòu)要適合檢索(中文轉(zhuǎn)拼音問題);
3张弛、點(diǎn)擊相應(yīng)的字母,自動到對應(yīng)的位置(錨點(diǎn));
4吞鸭、增加滑動事件(自定義指令)寺董;

1)這個簡單,用position(絕對定位)刻剥,
*注意:代碼不能寫到滾動框中遮咖,不然無法定位,兩種解決辦法造虏;
1御吞、取消ion-content滾動,自己寫ion-scroll漓藕,把A-Z寫在ion-scroll外面陶珠;
2、直接把A-Z寫到ion-content外部(之前沒想到享钞,這個感覺更好點(diǎn))揍诽;

<div class="initials">
      <div style="margin-top:5px;width:23px;">
        <li ng-touchend="endAbc()" ng-touchmove="moveAbc($event)" ng-repeat="k in abc">{{k}}</li>
      </div>
    </div>

Css:

.initials{
      position: absolute;
      top: 0px;
      right: 0px;
      /*height: auto;*/
      height: 100%;
      width: 23px;
      padding:2px 0px;
      text-align: center;
      font-size: 12px;
      z-index: 9;
      background: #ddd;
    }

2)因?yàn)樾枰氖莿討B(tài)數(shù)據(jù)的遍歷展示,所以有要把數(shù)據(jù)分組為A-Z栗竖,也就涉及到了中文問題暑脆;
數(shù)據(jù)結(jié)構(gòu):

datas:{
A:[ ],
B:[ ],
C:[ ],
.
.
Z:[ ]
}

我們得到的數(shù)據(jù)可能是混亂的,需要根據(jù)英文首字母和中文拼音首字母分組狐肢,中文轉(zhuǎn)拼音:
https://my.oschina.net/tommyfok/blog/202412添吗;
展示:

image.png

代碼

<ion-content  scroll="false" id="content1" overflow-scroll="true" class="has-tabs">
//側(cè)邊A-Z
    <div class="initials">
      <div style="margin-top:5px;width:23px;">
        <li ng-touchend="endAbc()" ng-touchmove="moveAbc($event)" ng-repeat="k in abc">{{k}}</li>
      </div>
    </div>
//中間顯示選中了哪個字母
    <div ng-if="showAbc" style="z-index:10;position:fixed;left:47%;top:47%;width:40px;height:40px;background:#ddd;display:flex;justify-content:center;align-items:center;font-size:20px;color:#262626;">
      {{bigAbc}}
    </div>
//數(shù)據(jù)展示
    <ion-scroll style="height: 100%;">
    <ion-list>
      <div ng-repeat="(k,data) in datas">
        <div id="{{k}}" class="item item-divider">
          {{k}}
        </div>
        <div ng-repeat="name in data">
          <ion-item  ng-click="" class="item item-light item-icon-left item-icon-right">
            <i class="icon ion-ios-gear-outline" style="color: #9e9e9e"></i>
                {{name}}
          </ion-item>
        </div>
      </div>
    </ion-list>
    </ion-scroll>
  </ion-content>

A-Z

/*右側(cè)檢索條*/
  var az = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ#';
  $scope.abc = az.split("");

3)給每個li綁定點(diǎn)擊事件,獲取點(diǎn)擊的是哪個字母份名,錨點(diǎn)到那個字母就可以了
錨點(diǎn):

image.png

事件:

$scope.selAbc = function(k){
    k = k.toLowerCase();
    for(var i in $rootScope.drivers){
      if(k == i){
        //在屏幕中間顯示一個字母框
        $scope.showAbc = true;
        $scope.bigAbc = k;
        //錨點(diǎn)的重點(diǎn)
        $location.hash(k);
        $ionicScrollDelegate.anchorScroll();
      }
    }
  }

4)側(cè)邊A-Z上下滑動觸發(fā)檢索碟联;
angularjs沒有ng-touchmove事件,需要自定義指令同窘,具體代碼看連接玄帕;
http://www.cnblogs.com/guoyansi19900907/p/5217292.html

//滑動事件
$scope.moveAbc = function(event){
    //console.log("event:"+event);
//計(jì)算位置
    var positionX=event.pageX || event.touches[0].pageX;
    var positionY=event.pageY || event.touches[0].pageY;
    //console.log(positionX+"-"+positionY);
//位置的標(biāo)簽對象
    var ele = document.elementFromPoint(positionX,positionY);
    if(!ele){
      return;
    }
//是哪個字母
    var c=ele.innerText;
    if(!c || c==" " || c.length!=1){
      return;
    }
    if($scope.keepAbc != c){
      //console.log("c:"+c);
      $scope.keepAbc = c;
      //觸發(fā)錨點(diǎn)
      $scope.selAbc($scope.keepAbc);
    }

  }
//滑動結(jié)束事件
  $scope.endAbc = function(){
    $timeout(function(){
//隱藏中間顯示的字母
      $scope.showAbc = false;
      $scope.bigAbc = "";
    },500)
  }
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市想邦,隨后出現(xiàn)的幾起案子裤纹,更是在濱河造成了極大的恐慌,老刑警劉巖丧没,帶你破解...
    沈念sama閱讀 211,290評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件鹰椒,死亡現(xiàn)場離奇詭異,居然都是意外死亡呕童,警方通過查閱死者的電腦和手機(jī)漆际,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,107評論 2 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來夺饲,“玉大人奸汇,你說我怎么就攤上這事施符。” “怎么了擂找?”我有些...
    開封第一講書人閱讀 156,872評論 0 347
  • 文/不壞的土叔 我叫張陵戳吝,是天一觀的道長。 經(jīng)常有香客問我贯涎,道長听哭,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,415評論 1 283
  • 正文 為了忘掉前任塘雳,我火速辦了婚禮陆盘,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘败明。我一直安慰自己隘马,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,453評論 6 385
  • 文/花漫 我一把揭開白布肩刃。 她就那樣靜靜地躺著祟霍,像睡著了一般。 火紅的嫁衣襯著肌膚如雪盈包。 梳的紋絲不亂的頭發(fā)上沸呐,一...
    開封第一講書人閱讀 49,784評論 1 290
  • 那天,我揣著相機(jī)與錄音呢燥,去河邊找鬼崭添。 笑死,一個胖子當(dāng)著我的面吹牛叛氨,可吹牛的內(nèi)容都是我干的呼渣。 我是一名探鬼主播,決...
    沈念sama閱讀 38,927評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼寞埠,長吁一口氣:“原來是場噩夢啊……” “哼屁置!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起仁连,我...
    開封第一講書人閱讀 37,691評論 0 266
  • 序言:老撾萬榮一對情侶失蹤蓝角,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后饭冬,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體使鹅,經(jīng)...
    沈念sama閱讀 44,137評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,472評論 2 326
  • 正文 我和宋清朗相戀三年昌抠,在試婚紗的時候發(fā)現(xiàn)自己被綠了患朱。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,622評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡炊苫,死狀恐怖裁厅,靈堂內(nèi)的尸體忽然破棺而出冰沙,到底是詐尸還是另有隱情,我是刑警寧澤姐直,帶...
    沈念sama閱讀 34,289評論 4 329
  • 正文 年R本政府宣布倦淀,位于F島的核電站,受9級特大地震影響声畏,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜姻成,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,887評論 3 312
  • 文/蒙蒙 一插龄、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧科展,春花似錦均牢、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至琅攘,卻和暖如春垮庐,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背坞琴。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工哨查, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人剧辐。 一個月前我還...
    沈念sama閱讀 46,316評論 2 360
  • 正文 我出身青樓寒亥,卻偏偏與公主長得像,于是被迫代替她去往敵國和親荧关。 傳聞我的和親對象是個殘疾皇子溉奕,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,490評論 2 348

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

  • 不多說,只有上圖忍啤,紅輝水溶性彩鉛加勤。 希望這樣的熱巴也合你的意 嘻嘻,歡迎關(guān)注我的簡書和微信公眾號呀
    蘅春水生閱讀 338評論 1 0
  • 生命中,若是有個在乎自己的人就是幸福参萄。在乎著卫枝,你的心情起伏;惦記著讹挎,你的冷暖甜苦校赤;心疼著吆玖,你的奔波勞碌;珍惜著马篮,你...
    娚稀妹子閱讀 234評論 0 0
  • 今天是2月的最后一天沾乘,也是我在簡書日更的第9天,通過持續(xù)數(shù)日的更文練習(xí)浑测,給我?guī)砹艘庀氩坏降淖兓嵴螅刮腋訄?jiān)定了寫...
    琴琴思語閱讀 241評論 2 4
  • 有沒有一段時間,你會特別頹廢迁央,哪怕再耀眼的陽光也照不清你前面的路掷匠。就像此刻的我。 漫無目的地走進(jìn)商場岖圈,我時常會在行...
    安然ZCR閱讀 456評論 4 7