效果图:

     

代码实现 (其中使用了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: auto;
background-color:transparent;
padding-top:5px;
padding-bottom:5px;
right:;top:100px;
z-index:;
}
.a-lists p{
margin:;padding:;
font-size:8px;
text-align: center;
color:#;
line-height: 14px;
}
.AZLists-title{
width:%;
height:20px;
background-color: #ddd;
color:#;
line-height: 20px
}
.pop-AZ{
width:60px;
height:60px;
border-radius: 4px;
background-color: rgba(,,,.);
color:#FFF;
font-size:24px;
     z-index:;
     line-height:60px;
text-align: center;
     position: fixed;
     margin-left:-30px;
     left:%;
     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);

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

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

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

    在Android6.0中,TimePicker控件的默认样式为转盘的样式,就像这个样子: 如果想要显示为之前的滚动样式的话也很简单,只要在布局文件中设置TimePicker的timePickerMod ...

  2. js自定义滚动样式

    <!DOCTYPE html> <html lang="en"> <head> <style type='text/css'> ht ...

  3. css 控制滚动样式

    ::-webkit-scrollbar{width: 8px; height: 8px;}::-webkit-scrollbar-button:vertical{display:none;}::-we ...

  4. DIV滚动样式

    .divScroll{     OVERFLOW:auto;        scrollbar-face-color: #FFFFFF;        scrollbar-shadow-color: ...

  5. html之CSS样式学习笔记

    本文内容: 字体样式 文本样式 背景样式 尺寸样式 盒子模型 边框样式 边距样式 浮动布局 定位布局 [CSS3]伸缩布局 标签显示方式 列表样式 [CSS3]过渡样式 [CSS3]变换样式之2D变形 ...

  6. 20 个用于处理页面滚动效果的 jQuery 插件

    对设计和开发一个网站来说,web开发者不能低估了网站滚动效果的重要性.如今,设计者们都视为一大挑战了,在网站中设计出吸引眼球的高效视觉滚动效果.幸运的是有各种各样的jquery 滚动插件可供他们使用, ...

  7. 图片文字滚动插件jQuery Scrollbox

    图片文字滚动插件jQuery Scrollbox附件中提供了五种图片.文字滚动样式,只需调用jquery库和jQuery Scrollbox插件,然后再加一段简单的jquery代码即可使用,兼容性良好 ...

  8. Javascript和jquery事件--滚动条事件和自定义滚动条事件样式

    很想把滚动条事件跟鼠标滚轮事件放在一起,那就直接写在这一篇了.除了事件以外,对滚动条样式的调整也记在这里吧. 滚动条是浏览器的默认事件,使用overflow:auto/scroll都有可能出现,它的默 ...

  9. (五十三)c#Winform自定义控件-滚动文字

    前提 入行已经7,8年了,一直想做一套漂亮点的自定义控件,于是就有了本系列文章. GitHub:https://github.com/kwwwvagaa/NetWinformControl 码云:ht ...

随机推荐

  1. perl基础:传递hash类型参数

    1 如果是只有一个参数要传,且是hash,最直接想到的办法就是像传其他类型参数一样直接传, 如:   subFuntion(%hash1); 2 如果有多于一个参数要传,这里假设只有一个参数的类型是h ...

  2. 下载历史版本App超详细教程

    有些时候我们需要下载旧版本的 App 进行研究或者其他用途,然而在 iOS 下,苹果的 App Store 里面默认只能下载最新版本的 App,对滴,就是这么任性,不服不行.然而在 Android 里 ...

  3. ionic 的下拉刷新 与 上拉加载

    <ion-view view-title="消息通知"> <ion-content class="padding"> <!-- & ...

  4. ThinkPHP 3.2.3(四)架构之多层MVC

    一.模型(Model)层 1.ThinkPHP支持多层Model,不同的模型层都继承自系统的Model类.   2.模型的多层通过目录结构和命名规范区分. 例如:在某个项目设计中需要区分数据层.逻辑层 ...

  5. angularJs,ionic字符串操作

    1.首先我们需要把一段"文本或字符串"中的我们想进行操作的"字符串","字"筛选出来,代码如下: app.filter('replaceCo ...

  6. java selenium (二) 环境搭建方法一

    webdriver 就是selenium 2.    webdriver 是一款优秀的,开源的,自动化测试框架. 支持很多语言.  本文描述的是用java Eclipse 如何搭建环境 阅读目录   ...

  7. Spring AOP基本概念

    Spring AOP基本概念 目录 Spring AOP定义 AOP基本术语 通知类型 AOP定义 AOP基本术语 切面( Aspect ):一个能横切多个对象的模块化的关注点.对Spring AOP ...

  8. linux 下mysql 开启远程连接

    系统通过netstat -ntlp  来查看正在运行服务所使用的端口 ,查看3306端口是否开启. 防火墙iptables 如果是新装的 系统, 一般不用管这个因素,不过我们也先 用service i ...

  9. 在Heroku上,安装Wordpress

    其實在 Heroku 上安裝 Wordpress 不會很難,不過閱讀之前,你可能先要知道 Heroku 與 git 的基本操作,建議可以先參考以下網站用 Heroku 架設 Wordpress 網站 ...

  10. OpenCV 学习

    #include <opencv2\opencv.hpp> #include <iostream> #include <opencv2\highgui\highgui.h ...