js模仿微信联系人 定位和字母悬浮

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"> 
		<title>人名反应</title>
	</head>
	<style>
		* {
		  margin: 0;
		  padding: 0;
		  font-family: "microsoft yahei !important";
		}
		li {
		  list-style: none;
		}
		#bigbox {
		  margin-top: 0.525rem;
		}
		.search {
		  width: 100%;
		  display: block;
		  height: 1.425rem;
		  box-sizing: border-box;
		  background: #f7f7f7;
		  border-radius: 5px;
		  border: 0;
		}
		#searchbox {
		  position: relative;
		  width: 17.55rem;
		  font-size: 0.65rem;
		  margin: 0 auto;
		  height: 1.425rem;
		  margin-bottom: 0.6rem;
		}
		#searchbox img {
		  position: absolute;
		  display: inline-block;
		  width: 0.875rem;
		  height: 0.875rem;
		  top: 50%;
		  margin-top: -0.4375rem;
		  margin-left: 0.625rem;
		}
		#searchbox span {
		  color: #bbbbbb;
		  position: absolute;
		  top: 50%;
		  margin-top: -0.4375rem;
		  margin-left: 1.75rem;
		}
		.namelist {
		  display: block;
		  height: 1.125rem;
		  line-height: 1.125rem;
		  background: #f5f5f5;
		  color: #999999;
		  font-size: 0.6rem;
		  border-top: 1px solid #e6e6e6;
		}
		.namelist span {
		  display: block;
		  width: 17.55rem;
		  margin: 0 auto;
		}
		.listbox {
		  display: block;
		  width: 100%;
		}
		.listbox li {
		  width: 17.55rem;
		  font-size: 0.65rem;
		  height: 2.2rem;
		  margin: 0 auto;
		  line-height: 2.2rem;
		  font-size: 0.7rem;
		  color: black;
		  border-bottom: 1px solid #e6e6e6;
		}
		li:last-child {
		  border: none ;
		}
		.right_nav {
		  position: fixed;
		  right: 0.6rem;
		  top: 25%;
		}
		.right_nav li {
		  font-size: 0.5rem;
		}
		.right_nav img {
		  width: 0.45rem;
		}
		.active_fixed {
		  position: fixed;
		  display: block;
		  top: 0;
		  width: 100%;
		}
		.active_top {
		  margin-top: 1.2rem;
		}
		.active_hide {
		  display: none;
		}
		.overbox {
		  width: 100%;
		}
		.overbox .overlistbox {
		  display: block;
		  width: 18.15rem;
		  margin-left: 0.6rem;
		}
		.overbox .overlistbox li {
		  font-size: 0.7rem;
		  border-bottom: 1px solid #e6e6e6;
		  height: 2.25rem;
		  line-height: 2.25rem;
		}
		input {
		  outline: none;
		  /*清除选中效果的默认蓝色边框 */

		  -webkit-appearance: none;
		  /*清除浏览器默认的样式 */

		  line-height: normal;
		}
	</style>
	<body style="position: relative;">
		<div id="bigbox">
			<div id="searchbox">
				<form action="#" ><input class="search"  type="search" /></form>
				<spahu class='imgbig'>
					<img  src="img/search.png"/>
					<span >搜索</span>
				</spahu>
			</div>
		</div>
		<!--列表区域-->
		<div id="list_big_box" style="">
			<div class="elist publictop"  style="display: none">
				<div class="namelist active_fixed"><span id="pubtext">A</span></div>
			</div>
			<ul id="ul">
				<div class="elist" id="A">
					<div class="namelist"><span>A</span></div>
					<ul class="listbox">
						<li>Acetoacetic Ester Condensation</li>
						<li>Acetoacetic Ester Synthesi</li>
						<li>Acyloin Condensation</li>
						<li>Alder-Ene Reaction</li>
					</ul>
				</div>
				<div class="elist" id="B">
					<div class="namelist"><span>B</span></div>
					<ul class="listbox">
						<li>Baeyer-Villiger Oxidation</li>
						<li>Baeyer-Villiger Oxidation</li>
						<li>Baeyer-Villiger Oxidation</li>
						<li>Baeyer-Villiger Oxidation</li>
						<li>Baeyer-Villiger Oxidation</li>
						<li>Baeyer-Villiger Oxidation</li>
						<li>Baeyer-Villiger Oxidation</li>
						<li>Baeyer-Villiger Oxidation</li>
						<li>Baeyer-Villiger Oxidation</li>
						<li>Baeyer-Villiger Oxidation</li>
						<li>Baeyer-Villiger Oxidation</li>
						<li>Acyloin Condensation</li>
						<li>Alder-Ene Reaction</li>
					</ul>
				</div>
				<div class="elist" id="C">
					<div class="namelist"><span>C</span></div>
					<ul class="listbox">
						<li>Ccetoacetic Ester Condensation</li>
						<li>Ccetoacetic Ester Synthesi</li>
						<li>Ccetoacetic Ester Condensation</li>
						<li>Ccetoacetic Ester Synthesi</li>
						<li>Ccetoacetic Ester Condensation</li>
						<li>Ccetoacetic Ester Synthesi</li>
						<li>Ccetoacetic Ester Condensation</li>
						<li>Ccetoacetic Ester Synthesi</li>
						<li>Ccetoacetic Ester Condensation</li>
						<li>Ccetoacetic Ester Synthesi</li>
						<li>Ccetoacetic Ester Condensation</li>
						<li>Ccetoacetic Ester Synthesi</li>
						<li>Ccetoacetic Ester Condensation</li>
						<li>Ccetoacetic Ester Synthesi</li>
						<li>Ccetoacetic Ester Condensation</li>
						<li>Ccetoacetic Ester Synthesi</li>
					</ul>
				</div>
				<div class="elist" id="D">
					<div class="namelist"><span>D</span></div>
					<ul class="listbox">
						<li>Dcetoacetic Ester Condensation</li>
						<li>Dcetoacetic Ester Synthesi</li>
						<li>Dcyloin Condensation</li>
						<li>Dlder-Ene Reaction</li>
						<li>Dcetoacetic Ester Condensation</li>
						<li>Dcetoacetic Ester Synthesi</li>
						<li>Dcyloin Condensation</li>
						<li>Dlder-Ene Reaction</li>
						<li>Dcetoacetic Ester Condensation</li>
						<li>Dcetoacetic Ester Synthesi</li>
						<li>Dcyloin Condensation</li>
						<li>Dlder-Ene Reaction</li>
						<li>Dcetoacetic Ester Condensation</li>
						<li>Dcetoacetic Ester Synthesi</li>
						<li>Dcyloin Condensation</li>
						<li>Dlder-Ene Reaction</li>
					</ul>
				</div>
				<div class="elist" id="E">
					<div class="namelist"><span>E</span></div>
					<ul class="listbox">
						<li>Ecetoacetic Ester Condensation</li>
						<li>Ecetoacetic Ester Synthesi</li>
						<li>Ecyloin Condensation</li>
						<li>Elder-Ene Reaction</li>
						<li>Ecetoacetic Ester Condensation</li>
						<li>Ecetoacetic Ester Synthesi</li>
						<li>Ecyloin Condensation</li>
						<li>Elder-Ene Reaction</li>
						<li>Ecetoacetic Ester Condensation</li>
						<li>Ecetoacetic Ester Synthesi</li>
						<li>Ecyloin Condensation</li>
						<li>Elder-Ene Reaction</li>
						<li>Ecetoacetic Ester Condensation</li>
						<li>Ecetoacetic Ester Synthesi</li>
						<li>Ecyloin Condensation</li>
						<li>Elder-Ene Reaction</li>
					</ul>
				</div>
				<div class="elist" id="F">
					<div class="namelist"><span>F</span></div>
					<ul class="listbox">
						<li>Fcetoacetic Ester Condensation</li>
						<li>Fcetoacetic Ester Synthesi</li>
						<li>Fcyloin Condensation</li>
						<li>Flder-Ene Reaction</li>
						<li>Fcetoacetic Ester Condensation</li>
						<li>Fcetoacetic Ester Synthesi</li>
						<li>Fcyloin Condensation</li>
						<li>Flder-Ene Reaction</li>
					</ul>
				</div>
			</ul>
			<ul class="right_nav">
				<img src="img/search_little.png"/>
				<li>A</li>
				<li>B</li>
				<li>C</li> 
				<li>D</li>
				<li>E</li>
				<li>F</li>
				<li>G</li>
				<li>H</li>
				<li>I</li>
				<li>J</li>
				<li>K</li>
				<li>L</li>
				<li>M</li>
				<li>N</li>
				<li>O</li>
				<li>P</li>
				<li>Q</li>
				<li>R</li>
				<li>S</li>
				<li>T</li>
				<li>U</li>
				<li>V</li>
				<li>W</li>
				<li>X</li>
				<li>Y</li>
				<li>Z</li>
			</ul>
		</div>
	</body>
</html>
<script type="text/javascript">
	//适配
	(function (doc, win) {  
        var docEl = doc.documentElement,  
            resizeEvt = 'orientationchange' in window ? 'orientationchange' : 'resize',  
            recalc = function () {  
                var clientWidth = docEl.clientWidth;  
                if (!clientWidth) return;  
                if(clientWidth>=1024){  // 兼容的设备宽度最大尺寸 
                	//iphone6   1rem  = 20px;
                    docEl.style.fontSize = '54.61px';  
                    // console.log("1rem===="+docEl.style.fontSize);
                }else{  
                    docEl.style.fontSize = 54.61* (clientWidth / 1024) + 'px';  
                  	//console.log("1rem====="+docEl.style.fontSize);  
                }  
            };  
        if (!doc.addEventListener) return;  
        win.addEventListener(resizeEvt, recalc, false);  
        doc.addEventListener('DOMContentLoaded', recalc, false);  
    })(document, window);  
  	//滚动字母悬浮
    window.addEventListener('scroll',function(){    
        var sct = document.documentElement.scrollTop || window.pageYOfset ||document.body.scrollTop;
        var scp = document.querySelector('.right_nav').firstChild.nextElementSibling;
        var scrtop = document.querySelector('#A').lastElementChild.offsetTop;
        var imalist = document.querySelectorAll('.elist');
        if(scrtop-sct<=14){//余量自己调
        	document.querySelector('.publictop').style.display = "block";

        }else{
        	document.querySelector('.publictop').style.display = "none";
        }
        for(var i=0;i<imalist.length;i++){
        	if(sct-imalist[i].offsetTop>=0){
        		document.querySelector('#pubtext').innerHTML=Elist[i].firstChild.innerHTML;
        	}
        }
    });
    //定位
    var liList = document.querySelector('.right_nav').children;
    var Elist = document.querySelectorAll('.namelist');
	for(var i=0;i<liList.length;i++){
		liList[i].index = i;
		liList[i].onclick=function(){
			if(this.index==0){//回顶部
				document.querySelector('html').scrollIntoView();
			}
			var _text = this.innerHTML;//点击左侧的字母
			if(Elist[this.index-1]){
				var listText=Elist[this.index].firstChild.innerHTML;
			}
			if(_text==listText){//防止某个 字母下内容为空
				Elist[this.index].parentNode.scrollIntoView();
			}
		}
	}
</script>


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值