首页 > 代码库 > viewBox A-Z滚动样式
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);
着笔匆忙,仅实现原理,没有封装成插件!代码也显粗糙~
viewBox A-Z滚动样式
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。