viewBox A-Z滚动样式

效果图:

     

代码实现 (其中使用了ionic框架。。。)

html 代码:
<ion-content class=‘page-location‘>
        <div class=‘AZLists A‘>
        <div class=‘AZLists-title‘>A</div>
                ..............
         </div>
         <div class=‘AZLists B‘>
        <div class=‘AZLists-title‘>B</div>
                ..............
         </div>
         .......
</ion-content>
此部分代码可以用ng-repeat写
<div class=‘a-lists‘>
    <div ng-repeat=‘n in navItem‘ >
        <p class=‘{{n}}-nav-item‘>{{n}}</p>
    </div>
</div>
<div class=‘pop-AZ‘></div>
css 代码
.a-lists{
        position: fixed;
         width:25px;
        margin:0 auto;
        background-color:transparent;
         padding-top:5px;
        padding-bottom:5px;
        right:0;top:100px;
        z-index:100;
}
.a-lists p{
    margin:0;padding:0;
    font-size:8px;
    text-align: center;
    color:#444;
    line-height: 14px;
}
.AZLists-title{
    width:100%;
    height:20px;
    background-color: #ddd;
    color:#444;
    line-height: 20px
}
.pop-AZ{
        width:60px;
        height:60px;
        border-radius: 4px;
        background-color: rgba(0,0,0,.5);
        color:#FFF;
        font-size:24px;     z-index:101;     line-height:60px;
        text-align: center;     position: fixed;     margin-left:-30px;     left:50%;     top:{{popAZTop}};     display: none;
}                             
js 代码
    $scope.popAZTop=(window.innerHeight/2-30)+‘px‘;
    var _items=[];
    for(var k=0;k<26;k++){
      _items[k]=String.fromCharCode(65+k);
    }
    $scope.navItem=_items;
    setTimeout(function(){
      for(var i=0;i<_items.length;i++){
          var _azitem=document.querySelector(‘.‘+_items[i]+‘-nav-item‘);
          _azitem.addEventListener(‘touchstart‘,function(e){
              $(‘.a-lists‘).css(‘background-color‘,‘#ddd‘);
             var _tip=$(this).text();
             if($(‘.‘+_tip).offset()!==undefined){
                var _scrolltop =$(‘.‘+_tip).offset().top-$(‘.A‘).offset().top;
               $(‘ion-content‘).animate({
                   scrollTop: _scrolltop},1
               );
             }
             $(‘.pop-AZ‘).css(‘display‘,‘block‘);
            $(‘.pop-AZ‘).empty().html(_tip);
          })
          _azitem.addEventListener(‘touchmove‘,function(e){
             e.preventDefault();
             var touch=e.targetTouches[0];
             var _item=parseInt((touch.pageY-100)/14)
             if(_item>=_items.length){
                 _item=(_items.length-1);
             }else if(_item<0){
                _item=0;
             }
             var event = document.createEvent(‘Events‘);
             event.initEvent(‘touchstart‘, true, true);
             document.querySelector(‘.‘+_items[_item]+‘-nav-item‘).dispatchEvent(event);
             $(‘.pop-AZ‘).css(‘display‘,‘block‘);
             $(‘.pop-AZ‘).empty().append(_items[_item]);
          })
          _azitem.addEventListener(‘touchend‘,function(e){
             e.preventDefault();
             $(‘.a-lists‘).css(‘background-color‘,‘transparent‘);
             $(‘.pop-AZ‘).css(‘display‘,‘none‘);
          })
      }
    },200);

着笔匆忙,仅实现原理,没有封装成插件!代码也显粗糙~

时间: 2024-10-07 12:14:17

viewBox A-Z滚动样式的相关文章

Android 6.0 中TimePicker显示为滚动样式的方法

在Android6.0中,TimePicker控件的默认样式为转盘的样式,就像这个样子: 如果想要显示为之前的滚动样式的话也很简单,只要在布局文件中设置TimePicker的timePickerMode属性为spinner就好了,即: [html] view plain copy <TimePicker android:id="@+id/id_add_timePicker" android:layout_width="match_parent" android

vue 横向滚动样式&amp;&amp;$ref.scrollLeft初始化数据滚动位置

一.先说一下横向滚动样式: <div class="everyone-wrap" ref="parent"> <div class="everyone-cont"> <dl v-for="(item, index) in shareData.top" :key="index"> <dt> <van-image :src="item.pic&qu

js自定义滚动样式

1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 5 <style type='text/css'> 6 7 html{ 8 overflow: hidden; 9 } 10 11 #scroll{ 12 width: 800px; 13 margin: 100px auto; 14 padding: 10px 30px 10px 10px; 15 border: 1px solid #ccc

淘宝,京东之“无缝滚动”-----前端必杀技能

无缝滚动样式图: <!DOCTYPE html><html><head lang="en"> <meta charset="UTF-8"> <title></title> <style> * { padding: 0; margin: 0; list-style:none; } .outer { width: 490px; height: 170px; padding: 5px; m

图片文字滚动插件jQuery Scrollbox

图片文字滚动插件jQuery Scrollbox附件中提供了五种图片.文字滚动样式,只需调用jquery库和jQuery Scrollbox插件,然后再加一段简单的jquery代码即可使用,兼容性良好,冲突的概率比较低. 在线演示本地下载 原文地址:https://www.cnblogs.com/wwhhq/p/8270745.html

HTML前端入门归纳——样式

本人一直在从事.net的开发,界面都是采用的WPF,近期花了一个多月进行HTML前端的学习,在这里呢进行学习总结和归纳. 本系列将主要分为4个模块: 控件 样式 布局 JavaScript 根据多年WPF的开发经验,界面就是控件及样式与布局的组合,再加上代码来控制交互逻辑,本期先对HTML常用的样式属性进行归纳. 选择器 选择器用于对HTML控件及css的样式进行匹配,常用的选择器有如下几种: id选择器 以下的样式规则应用于元素属性 id="para1": 1 #para1 2 {

uni-app 之 聊天室页面滚动到底部

uni-app 之 聊天室滚到最底部 请注意 !:  知识点为uni-app 与 vue 结合 这次写到聊天室,碰到一个emmmmm问题比较严重的事情,聊天嘛,咱们想实现的就无非是微信,QQ那种聊天的效果嘛,我们研究了,,,,emmmm  (n久之长),终于是把这个功能写出来了,代码等什么时候整理出来给大家看,今天主要说一下碰到的一个问题,就是我发送消息的时候, 想要将消息弹出,发一条弹一条,代码附上 注意:scroll-view要设置高度 输入内容后,必然要在对话界面的底部显示内容,可以通过u

WPF学习之旅---页面布局

WPF布局执行工作 测量:容器遍历所有子元素,并询问子元素所期望的尺寸 排列:容器在合适的位置放置子元素,并设置最终尺寸 height,width:元素期望尺寸 Actualheight,Actualwidth:实际尺寸 布局继承机制 DispatherObject:WPF应用程序使用单线程亲和模式,每个用户界面只被一个单线程使用. DependebcyObject:依赖属性,在winform控件中,控件通常默认保存初始化值,这样就浪费资源,依赖属性就是解决这一问题,默认的属性只保存一份 Vis

2017/08/22 工作日志

今日正式开始制作机构.科室选择页面的样式. 最明显的难点就是页面里的滚动,最初使用了H-ui里的滚动样式,但是在里面套Repeater控件时会出现问题,并且,它的翻页是JavaScript脚本,同一页中出现两个以上时会同时启动,这一点不太符合要求,我就另找了一个滚动脚本cxScroll,网址在这http://code.ciaoca.com/jquery/cxScroll/,没有前面所说的两个问题,基本功能一切正常. 但是我还是没能解决数据超出时自动换行的问题,经理让我去看看栅格化系统.简单来说B