移动端导航固定头部的fixed设置
2017-12-04 17:33
281 查看
移动端导航固定头部的fixed设置
html部分:<div class="poi-navigation">
<ul class="list-inline" id="ul_navigation">
<li class="active"><b>产品介绍</b></li>
<li><b>预定须知</b></li>
<li><b>用户点评</b></li>
</ul>
</div>css部分:
.poi-navigation{
margin-top: 10px;
}
.poi-navigation ul{
height: 35px;
line-height: 35px;
text-align: -webkit-center;
background-color: white;
border-bottom: 1px solid #ccc;
}
.poi-navigation ul li{
position: relative;
width:30%;
}
.active:after{
position: absolute;
left:0;
bottom:0;
content:"";
width: 100%;
height: 2px;
background-color:#40c895;
}
.fixed_top{
position:fixed;
top:0;
left: 0;
width: 100%;
margin-top: 0px;
}
js部分
// 滚动监听
window.onscroll = spotDetail.scrollEvent;
/**
* 滚动监听
*/
scrollEvent : function () {
var scrollTop = document.documentElement.scrollTop || window.pageYOffset || document.body.scrollTop;
var u1 = $('#menu1').offset().top;
var u2 = $('#menu2').offset().top;
var u3 = $('#menu3').offset().top;
if(scrollTop >= u1){
$('.poi-navigation').addClass('fixed_top');
} else {
$('.poi-navigation').removeClass('fixed_top');
}
if(scrollerFlag){
if(scrollTop >= u1 && scrollTop < u2){
$('#ul_navigation').find('li').removeClass('active');
$('#ul_navigation').find('li').eq(0).addClass('active');
} else if(scrollTop >= u2 && scrollTop < u3){
$('#ul_navigation').find('li').removeClass('active');
$('#ul_navigation').find('li').eq(1).addClass('active');
} else if(scrollTop >= u3){
$('#ul_navigation').find('li').removeClass('active');
$('#ul_navigation').find('li').eq(2).addClass('active');
}
}
},
// tap切换
$('#ul_navigation').on('click','li',function(){
if(!$(this).hasClass('active')){
var obj = $(this);
$('#ul_navigation').find('li').removeClass('active');
$(obj).addClass('active');
var ind = $(obj).index();
var totop = '';
switch (ind) {
case 0:
totop = $('#menu1').offset().top;
break;
case 1:
totop = $('#menu2').offset().top;
break;
case 2:
totop = $('#menu3').offset().top;
break;
default:
break;
}
scrollerFlag = false;
$('html,body').animate({scrollTop:totop}, 300,function(){
setTimeout(function(){
scrollerFlag = true;
}, 500);
});
}
});
html部分:<div class="poi-navigation">
<ul class="list-inline" id="ul_navigation">
<li class="active"><b>产品介绍</b></li>
<li><b>预定须知</b></li>
<li><b>用户点评</b></li>
</ul>
</div>css部分:
.poi-navigation{
margin-top: 10px;
}
.poi-navigation ul{
height: 35px;
line-height: 35px;
text-align: -webkit-center;
background-color: white;
border-bottom: 1px solid #ccc;
}
.poi-navigation ul li{
position: relative;
width:30%;
}
.active:after{
position: absolute;
left:0;
bottom:0;
content:"";
width: 100%;
height: 2px;
background-color:#40c895;
}
.fixed_top{
position:fixed;
top:0;
left: 0;
width: 100%;
margin-top: 0px;
}
js部分
// 滚动监听
window.onscroll = spotDetail.scrollEvent;
/**
* 滚动监听
*/
scrollEvent : function () {
var scrollTop = document.documentElement.scrollTop || window.pageYOffset || document.body.scrollTop;
var u1 = $('#menu1').offset().top;
var u2 = $('#menu2').offset().top;
var u3 = $('#menu3').offset().top;
if(scrollTop >= u1){
$('.poi-navigation').addClass('fixed_top');
} else {
$('.poi-navigation').removeClass('fixed_top');
}
if(scrollerFlag){
if(scrollTop >= u1 && scrollTop < u2){
$('#ul_navigation').find('li').removeClass('active');
$('#ul_navigation').find('li').eq(0).addClass('active');
} else if(scrollTop >= u2 && scrollTop < u3){
$('#ul_navigation').find('li').removeClass('active');
$('#ul_navigation').find('li').eq(1).addClass('active');
} else if(scrollTop >= u3){
$('#ul_navigation').find('li').removeClass('active');
$('#ul_navigation').find('li').eq(2).addClass('active');
}
}
},
// tap切换
$('#ul_navigation').on('click','li',function(){
if(!$(this).hasClass('active')){
var obj = $(this);
$('#ul_navigation').find('li').removeClass('active');
$(obj).addClass('active');
var ind = $(obj).index();
var totop = '';
switch (ind) {
case 0:
totop = $('#menu1').offset().top;
break;
case 1:
totop = $('#menu2').offset().top;
break;
case 2:
totop = $('#menu3').offset().top;
break;
default:
break;
}
scrollerFlag = false;
$('html,body').animate({scrollTop:totop}, 300,function(){
setTimeout(function(){
scrollerFlag = true;
}, 500);
});
}
});
相关文章推荐
- 解决 scroll() position:fixed 抖动、导航菜单固定头部(底部)跟随屏幕滚动
- 移动端设置fixed布局的问题解决
- scrollToFixed.js——导航...滚动固定
- "把一个div标签,给它的属性设置position: fixed;bottom:0;固定在浏览器的最底部。 这个div标签在浏览器上下滚动的时候,会一直保持在屏幕最底部,这一点没有问题。但问题是当浏览
- 导航页面头部固定
- css - fixed定位(设置固定的导航条)
- fixed固定导航,并左右滑动
- 固定底部导航菜单-续集(BottomMenu-移动端V3.0)
- jQuery实现仿百度帖吧头部固定导航效果
- 头部导航设置 (ios 和android 同一种样式 ),app.js举例
- 导航头部固定jQuery代码
- 网站导航固定头部
- Android ListView 技巧设置固定可滚动头部
- html 页面太长滚动时,固定页面菜单标签,或者导航标签的位置,fixed/stickUp the position
- 移动端,控制头部尾部固定
- Android RecycleView设置头部或者底部视图,给固定高度失效问题
- jQuery实现仿百度帖吧头部固定导航效果
- android中字母导航和PinnedHeaderListView(listview头部固定)
- 关于position: fixed学习,顶部固定导航