仿苹果手机通讯录按字母定位

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<meta name="format-detection" content="telephone=no" />
<meta name="renderer" content="webkit">
<meta name="keywords" content="">
<meta name="description" content="">
<title>仿苹果手机通讯录按字母定位</title>
<style type="text/css">
*{
	margin:0;
	padding:0;
}
ul,ol{
	list-style-type:none;
}
a{
	text-decoration:none;
}
.p_lr_15{
	padding:0 15px;
}
.point_nav{
	width:25px;
	height:100%;
	background:#ccc;
	font-size:12px;
	position:fixed;
	right:0;
	top:0;
}
.point_nav ul{
	width:25px;
	position:absolute;
	top:50%;
	left:50%;
	transform: translate(-50%, -50%);
	-webkit-transform: translate(-50%, -50%);
}
.point_nav li{
	text-align:center;
}
.point_nav li a{
	display:block;
}
.tracing_point {
	background: #f7f7f7;
	height: 20px;
	line-height: 20px;
}
.tracing_point ul li a{
	color:#646464;
}
.city_num {
	width: 100%;
	margin: 0;
	padding: 0;
}
.city_num li {
	height: 44px;
	line-height: 44px;
	border-bottom: 1px solid #ccc;
}
.city_num li a {
	color: #000000;
	display: block;
}
.city_num li:last-child {
	border-bottom: none;
}

.p_c{
	position:fixed;
	left:50%;
	top:50%;
	transform: translate(-50%, -50%);
	-webkit-transform: translate(-50%, -50%);
	}
</style>
<script type="text/javascript">
	var anchorPoint = {
		touchstart : "touchstart",
		touchmove : "touchmove",
		touchend : "touchend",
		touchEvents: function () {
			var ua = window.navigator.userAgent;
			if(!/ipad|iphone|android/.test(ua.toLowerCase())){
				this.touchstart = "mousedown";
				this.touchmove = "mousemove";
				this.touchend = "mouseup";
				return true;
			}
		},
		compatible:function(target,evt,obj){
			if(document.all){ 
				target.attachEvent(‘on‘+evt,obj);
			}else{
				target.addEventListener(evt,obj,false);
			}
		},
		compatible_ie:function(){
			if(document.all){
				window.event.returnValue = false;
			}else{
				event.preventDefault();
				event.stopPropagation();
			}
		},
		scrollTop_ie:function(val){
			if(document.all){
				document.documentElement.scrollTop = val;
			}else{
				document.body.scrollTop = val;
			}
		},
		start:function(event){
			var touch_x = null;
			var touch_y = null;
			if(anchorPoint.touchEvents() == true){
				touch_x = event.clientX;
				touch_y = event.clientY;
			}else{
				touch_x = event.touches[0].pageX;
				touch_y = event.touches[0].pageY;
			}

			anchorPoint.changeLocal(touch_x,touch_y);

			anchorPoint.compatible_ie();
		},
		move:function(event){
			var touch_x = null;
			var touch_y = null;
			if(anchorPoint.touchEvents() == true){
				touch_x = event.clientX;
				touch_y = event.clientY;
			}else{
				touch_x = event.touches[0].pageX;
				touch_y = event.touches[0].pageY;
			}

			anchorPoint.changeLocal(touch_x,touch_y);

			anchorPoint.compatible_ie();
		},
		end:function(event){
			//e.stopPropagation();
			anchorPoint.compatible_ie();
		},
		changeLocal:function(touch_x,touch_y){
			var point_nav_text = null;
			var y = null;

			if(this.touchEvents() != true){
				y = touch_y - document.body.scrollTop;
			}else{
				y = touch_y;
			}

			try{
				var point = document.elementFromPoint(touch_x,y);

				if(point&&point.tagName){
					var point_tagName = point.tagName.toLowerCase();

					if(point_tagName == "a"){
						point_nav_text = point.innerHTML;
					}

					var point_nav_text_top = document.getElementById(point_nav_text);

					if(point_nav_text == "#"){
						this.scrollTop_ie(0);
						return;
					}

					if(point_nav_text_top != null){
						var top = point_nav_text_top.offsetTop;
						this.scrollTop_ie(top);
					}
				}
			}catch(e){
				var inner_text = document.getElementById("text");
				inner_text.innerHTML = e;
			}
		},
		init:function(target_id,child_ele){
			var self = this;
				self.touchEvents();

			var point_nav = document.getElementById(target_id);
			var point_nav_li = point_nav.getElementsByTagName(child_ele);

				self.compatible(point_nav,self.touchstart,self.start);
				self.compatible(point_nav,self.touchmove,self.move);
				self.compatible(point_nav,self.touchend,self.end);
		}
	};

	window.onload=function(){
		anchorPoint.init("point_nav","li");
	}

</script>
</head>

<body>
    <div class="p_c" id="text"></div>
    
    <div class="tracing_point">
        <div class="p_lr_15">
            <a href="javascript:void(0);" id="B">B</a>
        </div>
    </div>
    <div class="city_num">
        <ul class="p_lr_15">
            <li><a href="javascript:void(0)">北京市</a></li>
            <li><a href="javascript:void(0)">北京市</a></li>
            <li><a href="javascript:void(0)">北京市</a></li>
            <li><a href="javascript:void(0)">北京市</a></li>
            <li><a href="javascript:void(0)">北京市</a></li>
            <li><a href="javascript:void(0)">北京市</a></li>
            <li><a href="javascript:void(0)">北京市</a></li>
            <li><a href="javascript:void(0)">北京市</a></li>
            <li><a href="javascript:void(0)">北京市</a></li>
            <li><a href="javascript:void(0)">北京市</a></li>
            <li><a href="javascript:void(0)">北京市</a></li>
            <li><a href="javascript:void(0)">北京市</a></li>
        </ul>
    </div>
    
    <div class="tracing_point">
        <div class="p_lr_15">
            <a href="javascript:void(0);" id="C">C</a>
        </div>
    </div>
    <div class="city_num">
        <ul class="p_lr_15">
            <li><a href="javascript:void(0)">长春</a></li>
            <li><a href="javascript:void(0)">长春</a></li>
            <li><a href="javascript:void(0)">长春</a></li>
            <li><a href="javascript:void(0)">长春</a></li>
            <li><a href="javascript:void(0)">长春</a></li>
            <li><a href="javascript:void(0)">长春</a></li>
            <li><a href="javascript:void(0)">长春</a></li>
            <li><a href="javascript:void(0)">长春</a></li>
            <li><a href="javascript:void(0)">长春</a></li>
            <li><a href="javascript:void(0)">长春</a></li>
            <li><a href="javascript:void(0)">长春</a></li>
            <li><a href="javascript:void(0)">长春</a></li>
        </ul>
    </div>
    
    <div class="tracing_point">
        <div class="p_lr_15">
            <a href="javascript:void(0);" id="D">D</a>
        </div>
    </div>
    <div class="city_num">
        <ul class="p_lr_15">
            <li><a href="javascript:void(0)">大理</a></li>
            <li><a href="javascript:void(0)">大理</a></li>
            <li><a href="javascript:void(0)">大理</a></li>
            <li><a href="javascript:void(0)">大理</a></li>
            <li><a href="javascript:void(0)">大理</a></li>
            <li><a href="javascript:void(0)">大理</a></li>
            <li><a href="javascript:void(0)">大理</a></li>
            <li><a href="javascript:void(0)">大理</a></li>
            <li><a href="javascript:void(0)">大理</a></li>
            <li><a href="javascript:void(0)">大理</a></li>
            <li><a href="javascript:void(0)">大理</a></li>
            <li><a href="javascript:void(0)">大理</a></li>
        </ul>
    </div>
    
    <div class="tracing_point">
        <div class="p_lr_15">
            <a href="javascript:void(0);" id="H">H</a>
        </div>
    </div>
    <div class="city_num">
        <ul class="p_lr_15">
            <li><a href="javascript:void(0)">海珠区</a></li>
            <li><a href="javascript:void(0)">海珠区</a></li>
            <li><a href="javascript:void(0)">海珠区</a></li>
            <li><a href="javascript:void(0)">海珠区</a></li>
            <li><a href="javascript:void(0)">海珠区</a></li>
            <li><a href="javascript:void(0)">海珠区</a></li>
            <li><a href="javascript:void(0)">海珠区</a></li>
            <li><a href="javascript:void(0)">海珠区</a></li>
            <li><a href="javascript:void(0)">海珠区</a></li>
            <li><a href="javascript:void(0)">海珠区</a></li>
            <li><a href="javascript:void(0)">海珠区</a></li>
            <li><a href="javascript:void(0)">海珠区</a></li>
            <li><a href="javascript:void(0)">海珠区</a></li>
            <li><a href="javascript:void(0)">海珠区</a></li>
        </ul>
    </div>
    
    <div class="point_nav" id="point_nav">
        <ul>
            <li><a href="javascript:void(0);" id="aa">#</a></li>
            <li><a href="javascript:void(0);">A</a></li>
            <li><a href="javascript:void(0);">B</a></li>
            <li><a href="javascript:void(0);">C</a></li>
            <li><a href="javascript:void(0);">D</a></li>
            <li><a href="javascript:void(0);">E</a></li>
            <li><a href="javascript:void(0);">F</a></li>
            <li><a href="javascript:void(0);">G</a></li>
            <li><a href="javascript:void(0);">H</a></li>
            <li><a href="javascript:void(0);">I</a></li>
            <li><a href="javascript:void(0);">J</a></li>
            <li><a href="javascript:void(0);">K</a></li>
            <li><a href="javascript:void(0);">L</a></li>
            <li><a href="javascript:void(0);">M</a></li>
            <li><a href="javascript:void(0);">N</a></li>
            <li><a href="javascript:void(0);">O</a></li>
            <li><a href="javascript:void(0);">P</a></li>
            <li><a href="javascript:void(0);">Q</a></li>
            <li><a href="javascript:void(0);">R</a></li>
            <li><a href="javascript:void(0);">S</a></li>
            <li><a href="javascript:void(0);">T</a></li>
            <li><a href="javascript:void(0);">U</a></li>
            <li><a href="javascript:void(0);">V</a></li>
            <li><a href="javascript:void(0);">W</a></li>
            <li><a href="javascript:void(0);">X</a></li>
            <li><a href="javascript:void(0);">Y</a></li>
            <li><a href="javascript:void(0);">Z</a></li>
        </ul>
    </div>
</body>
</html>
时间: 2024-11-03 02:52:50

仿苹果手机通讯录按字母定位的相关文章

ionic 实现仿苹果手机通讯录搜索功能

前言 由于之前做的SRM移动应用采用的是ionic1.x框架进行开发的,由于性能方便的诟病,导致用户体验不是很友好,于是想着怎么样去提高应用的性能问题.此时刚好ionic3.x框架已发布,由于ionic1.x框架是在ng1.x的框架基础上开发的,但是ionic3.x是在ng4.x基础上开发的.于是呼去ng官网上去了解了ng的一下语法及规则的使用,发现ng4.x不向前兼容,ng4.x是基于Es6标准进行开发的.本着出生不拍牛犊的性子,觉得升级应该不会太难,没想到这里面的坑太多了,费了九牛二虎之力才

android仿酷狗歌曲列表界面点击右侧字母定位到该字母的集合列表

原文:android仿酷狗歌曲列表界面点击右侧字母定位到该字母的集合列表 源代码下载地址:http://www.zuidaima.com/share/1550463694064640.htm android仿酷狗歌 曲列表界面 点击右侧字母定位到该字母的集合列表,也像类似联系人界面效果

【Android 仿微信通讯录 导航分组列表-上】使用ItemDecoration为RecyclerView打造带悬停头部的分组列表

[Android 仿微信通讯录 导航分组列表-上]使用ItemDecoration为RecyclerView打造带悬停头部的分组列表 一 概述 本文是Android导航分组列表系列上,因时间和篇幅原因分上下,最终上下合璧,完整版效果如下: 上部残卷效果如下:两个ItemDecoration,一个实现悬停头部分组列表功能,一个实现分割线(官方demo) 网上关于实现带悬停分组头部的列表的方法有很多,像我看过有主席的自定义ExpandListView实现的,也看过有人用一个额外的父布局里面套 Rec

web移动端仿苹果手机的地址插件

这是一个仿苹果手机地址的zepto地址插件,在样式上还有待美化. 效果预览: html代码: @* 地址弹出框 *@ <div class="dg-plug" id="address-sel"> <div class="plug-op"> <button class="cancel-btn">取消</button> <button class="choice-bt

Android 自定义 View 实现通讯录字母索引(仿微信通讯录)

一.效果:我们看到很多软件的通讯录在右侧都有一个字母索引功能,像微信,小米通讯录,QQ,还有美团选择地区等等.这里我截了一张美团选择城市的图片来看看: 我们今天就来实现图片中右侧模块的索引功能,包括触摸显示以选中的索引字母.这里我的UI界面主要是参照微信的界面来实现,所以各位也可以对照微信来看看效果,什么都不说了,只有效果图最具有说服力! 二.分析: 我们看到这样的效果我们心理都回去琢磨,他是如何实现的: 首先,它肯定是通过自定义 View 来实现的,因为 Android 没有提供类似这样的控件

仿IOS通讯录效果,实现获取手机通讯录、字母排序显示、搜索联系人、拨打电话

1.使用UITableView,实现联系人字母排序.点击字母跳转显示联系人组目录: 2.使用UISearchController,实现联系搜索,动态显示符合查询的联系人: 3.点击通讯录列表项,显示联系人信息(使用自定义模式化窗口类似与UIAlertView,使用UIwindow实现),点击拨号,可以直接拨打电话: 4.实现获取手机通讯录里面的联系人信息: 详情见资源:http://download.csdn.net/detail/u011622479/9505751 效果图如下: 获取联系人:

如何获得android手机通讯录的字母显示(两)

随后的写如何使各第一字母显示相同的分类触点: 于adapter implement SectionIndexer 这项adapter必须在下面可以实现3接口: @Override public Object[] getSections() { //section的集合 } @Override public int getPositionForSection(int section) {//当前section的位置 } @Override public int getSectionForPosit

苹果4S手机刚买就被偷 苹果手机4S关机怎么定位

Q-Q:971-041-894定位[手機系列找回刪除等信息]这件事说来也是巧了,也算是他们上级领导的矛盾吧,因为公司与另一个公司之前有一点合同上的纠葛,所以老板在发函以前之前让我跟对方公司现承认一下,看是不是真的要闹到这个地步,因为我是担任这个项目的,相对在状况上回对比的了解,那个时分我刚好在外面,所以只能用自己的手机打以前了,这也没什么,不便是知会一声吗,当然的,两头的利益不是那么快就可以到达的,所以发函这个工作仍是进行了请问我的苹果5s手机被偷关还能机么定位吗.手机没电话卡可以定位吗

-仿京东商城楼梯式导航定位菜单

实现京东商城楼梯式导航定位菜单:滚动定位菜单项和点击定位菜单项! 涉及知识点:find().parent().offset().scroll()等jQ函数,请自觉复习各种函数! html代码: 1 <!-- 导航菜单 --> 2 <div id="menu"> 3 <ul> 4 <li>1F<span>服饰</span></li> 5 <li>2F<span>美妆</spa