javascript-电话薄小功能

上代码:

<style>
	*{ margin:0 ; padding: 0;}
	.phrase_wrap,
	.phrase_list{
		width: 200px;
		height: 200px;
	}
	.phrase_wrap{
		position:relative;
		overflow: hidden;
		margin: 20px auto;
	}
	.phrase_list{
		overflow:auto;
	}
	.phrase_panel,
	.phrase_list dt{
		padding: 0 4px;
		height: 24px;
		background:#066;
		color: #fff;
		font: bold 14px/24px SimSun;
	}
	.phrase_panel{
		width: 175px;
		position:absolute;

		display: none;
	}
</style>
</head>

<body>

<div class="phrase_wrap" id="phrase_wrap">
	<div class="phrase_panel" id="phrase_panel"></div>
	<dl id="phrase_list" class="phrase_list">
    	<dt>A</dt>
        <dd>a1</dd>
        <dd>a1</dd>
        <dd>a1</dd>
        <dd>a1</dd>
        <dd>a1</dd>
        <dd>a1</dd>
        <dd>a1</dd>
        <dd>a1</dd>
        <dd>a1</dd>
        <dd>a1</dd>
        <dt>B</dt>
        <dd>b2</dd>
        <dd>b2</dd>
        <dd>b2</dd>
        <dd>b2</dd>
        <dd>b2</dd>
        <dd>b2</dd>
        <dd>b2</dd>
        <dt>C</dt>
        <dd>c3</dd>
        <dd>c3</dd>
        <dd>c3</dd>
        <dd>c3</dd>
        <dd>c3</dd>
        <dd>c3</dd>
        <dd>c3</dd>
        <dd>c3</dd>
        <dt>D</dt>
        <dd>d4</dd>
        <dd>d4</dd>
        <dd>d4</dd>
        <dd>d4</dd>
        <dd>d4</dd>
        <dd>d4</dd>
        <dd>d4</dd>
        <dt>A</dt>
        <dd>a1</dd>
        <dd>a1</dd>
        <dd>a1</dd>
        <dd>a1</dd>
        <dd>a1</dd>
        <dd>a1</dd>
        <dd>a1</dd>
        <dd>a1</dd>
        <dd>a1</dd>
        <dd>a1</dd>
        <dt>B</dt>
        <dd>b2</dd>
        <dd>b2</dd>
        <dd>b2</dd>
        <dd>b2</dd>
        <dd>b2</dd>
        <dd>b2</dd>
        <dd>b2</dd>
        <dt>C</dt>
        <dd>c3</dd>
        <dd>c3</dd>
        <dd>c3</dd>
        <dd>c3</dd>
        <dd>c3</dd>
        <dd>c3</dd>
        <dd>c3</dd>
        <dd>c3</dd>
        <dt>D</dt>
        <dd>d4</dd>
        <dd>d4</dd>
        <dd>d4</dd>
        <dd>d4</dd>
        <dd>d4</dd>
        <dd>d4</dd>
        <dd>d4</dd>
    </dl>
</div>

<script>
	/**
		实现滚动下面条码的时候,对应的导航标题,在顶端显示。
		分析:
			1、首先要得到所有标题列表的坐标。
			2、设置显示面板的内容。
		步骤:
			1、获取标题列表集合,并获取对应的坐标值。
			2、设置显示面板内容并记录当前列表集合的索引。
	*/

	/**
		实现滚动下面条码的时候,对应的导航标题,在顶端显示。
		分析:
			1、首先要得到所有标题列表的坐标。
			2、设置显示面板的内容。
		步骤:
			1、获取标题列表集合,并获取对应的坐标值。

			var phraseHeadList=[]
			var phraseHead={title:‘‘,x:0,y:0}//标题,坐标

			2、设置显示面板内容并记录当前列表集合的索引。
			var phrasePanel={title:‘‘,curHeadIndex:0};
	*/

	/**
		实现滚动下面条码的时候,对应的导航标题,在顶端显示。
		分析:
			1、首先要得到所有标题列表的坐标。
			2、设置显示面板的内容。
		步骤:
			1、获取标题列表集合,并获取对应的坐标值。

			var phraseHeadList=[]
			var phraseHead={title:‘‘,x:0,y:0}//标题,坐标

			2、设置显示面板内容并记录当前列表集合的索引。
			var phrasePanel={title:‘‘,curHeadIndex:0};

			3、定位显示面板,并显示当前的标题
			setPanel(index);
	*/
	//获取标题列表集合,并获取对应的坐标值。
	var phraseList=document.getElementById("phrase_list");
	var phraseListTop=phraseList.offsetTop;
	var dts=phraseList.getElementsByTagName(‘dt‘);
	var phraseHeadList=[];
	var phraseHead={title:‘‘,x:0,y:0}//标题,坐标

	for(var i=0,len=dts.length;i<len;i++){
		phraseHead={
			title:dts[i].innerHTML,
			x:dts[i].offsetLeft,
			y:dts[i].offsetTop-phraseListTop
		}
		phraseHeadList.push(phraseHead);
	}

	//设置显示面板内容并记录当前列表集合的索引。
	var phrasePanel=document.getElementById(‘phrase_panel‘)

	//监听
	var phraseWrap=document.getElementById("phrase_wrap");
	phraseList.onscroll=function(e){
		var scrollTop=this.scrollTop;

		var idx=getPhraseHeadIndex(scrollTop);
		var nextIdx=idx+1;
		var len=phraseHeadList.length;
		//后一个的值和探测值比较
		var probeH=dts[0].offsetHeight;
		var diffTop=phraseHeadList[nextIdx].y-scrollTop;
		if(diffTop<probeH){
			phrasePanel.style.top=diffTop-probeH+‘px‘;
		}
		setPanel(idx);
		//纠错

	}
	//搜索获取当前索引
	function getPhraseHeadIndex(top){
		var idx=0;
		for(var i=0,len=phraseHeadList.length;i<len;i++){
			if(phraseHeadList[i].y<top){
				idx=i;
			}
			if(phraseHeadList[i].y>top){
				break;
			}
		}
		return idx;
	}
	//设置浮动条
	function setPanel(index){
		if(phrasePanel.index==index)return;
		phrasePanel.index=index;
		phrasePanel.style.display=‘block‘;
		phrasePanel.style.top=0;
		phrasePanel.innerHTML=phraseHeadList[index].title
	}

	//初始化
	setPanel(0)

</script>

 效果:

时间: 2024-07-30 09:20:51

javascript-电话薄小功能的相关文章

纯JavaScript实现一些小功能

题目链接:http://wenku.baidu.com/link?url=7Gbarr5q9X6h1QFRVAsHmfPp1xXagG209mvrJqBogseb4WLeRqbVKwxQieoh8SL0-BDawlYXYr4vY1TSxgxNtTJ2kRDGust7XVFSiKDbBZC 一.实时刷新(1秒)的时钟 需要注意的地方: JavaScript代码放置的位置问题,如果放在body元素之前,可能会出现getElementById找不到id,这是可能容易忽略的地方.要是忽略了,可能会骂街.

C++学习之电话薄功能(类的简单应用)

本篇我们讨论一个小程序:实现电话薄简单功能.(一条语句最好一个作用) 问题描述 : a) : 实现电话添加记录功能:(电话重复的视为同一人,不予增添):即电话号码唯一. b) : 删除记录功能:(实现提醒功能:确认是否要真的删除) c) : 查询记录功能:(按手机号码查询); 待优化功能: 1) :每次启动程序都为空.故可以先从文件读取若干项至vector中:readfile功能. 2) :没有提供修改记录的功能:比如某人的电话号码或者住址改了.(先按照号码查询,然后按要求修改之即可.): 3)

用OC写一个可以分字母组,的电话薄,并实现功能

首先要创建 AddressContact 类, #import <Foundation/Foundation.h>   //---------AddressContact的.h文件 @interface AddressContact : NSObject {     NSString *_name;     NSString *_sex;     NSString *_phone;     NSString *_address;     NSString *_groupName;     NS

javascript实现的一个信息提示的小功能/

//什么状况.CSDN的排版怎么这么多状况,还是本人太次?调整几次都没弄好.最后一遍了-- 最近由于公司业务问题.须要做一些面向公众的平台,于是对UI要求会高一点, 对于传统的alert的这样的方式来提示用户操作错误显然会非常影响客户体验.于是做了一个小功能,来替代原本的alert.话不啰嗦,先上效果图. watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMDU3MTkxMw==/font/5a6L5L2T/fontsize/400/fill/I0

iOS 网易彩票-5设置模块三(常用小功能)

该篇文章中,用到很多iOS开发过程中常用的小功能,当前只是将这些功能集成到网易彩票的设置中.iOS-常用小功能介绍,请参考我的另一篇文章: iOS 常用小功能 总结:http://www.cnblogs.com/jys509/p/4805030.html 关于 效果图 思路分析: 使用self.tableView.tableHeaderView 自定义组头部,通过加载xib来实现 评分支持,使用[iOS 常用小功能 总结]中“应用评分”小功能 客户电话,使用[iOS 常用小功能 总结]中“打电话

【小功能2】android获取手机信息(号码,内存,CPU,分辨率,MAC,IP,SD卡,IMEI,经纬度,信号强度等等)

为了实现一个功能,需要搜集手机信息,自己先在网上找了相关信息进行了汇总,主要是汇集手机的信息,一般想要的信息在手机设置->关于手机->状态消息里面包含了手机的各种信息,下面的代码中也主要显示了那些信息,但是源码的方法我还没有看,先把总结的贴出来.先上图(太多就截取几个).  上代码啦,太多了,就写主要代码了. // 获取Android手机中SD卡存储信息 获取剩余空间 public void getSDCardInfo() { // 在manifest.xml文件中要添加 /* * <u

( 译、持续更新 ) JavaScript 上分小技巧(二)

考虑到文章过长,不便于阅读,这里分出第二篇,如有后续,每15个知识点分为一篇... #29 - 使用缓存的记忆让递归函数加速运行波非那切数列(Fibonacci sequence)想必大家都不陌生(针对学霸而言,在这之前本兽完全不知道这是个什么鬼,虽然经常会用到递归),我们可以在20秒内写出以下的函数: var fibonacci = function(n){ return n < 2 ? n : fibonacci(n-1) + fibonacci(n-2); } 它确实是运行了,但是效率并不

电话薄程序

//该程序需要连接数据库.根据word文档要求所有功能均已实现.//大部分方法基本差不多,//在查询修改的时候能输出 最大ID号 和最小ID号,并且可以对输入的ID号进行判断是否存在(具体方法请查看 修改电话号码, 其他修改方法暂时没有相对完善, 只针对修改电话号码的方法进行了修改,方便后期对编写程序思路的查看). package 电话薄1; public class Menu { //主菜单 public void mainMenu() { for(int i = 0 ; i >= 0 ; i

开发用到的小功能、功能、网站等

平时用到的比较好的工具或网站,收藏以备使用. 网站: 1.验证json.加密等开发实用的小功能集合: http://www.bejson.com/ 2.JavaScript离线代码检查工具——JSLintMate http://ace.acejoy.com/thread-4450-1-1.html (出处: ACE Developer) 3.json 自动生成测试数据网页: http://beta.json-generator.com/NkflPxI7b