HTML顶部状态栏更改背景,移动端常见随屏幕滑动顶部固定导航栏背景色透明度变化简单jquery特效...

项目需要,自己写了一个jquery代码,满足目前移动端常见的效果,就是顶部导航栏随屏幕滑动到指定位置,背景由透明变成不透明。该代码在设置随滚动条其他变化时,同样有效,改变其css即可。一般为了过渡自然,我用了css3的过渡效果。这里我只把关键代码给贴出来。

请转载此文的朋友务必附带原文链接,谢谢。

原文链接:http://xuyran.blog.51cto.com/11641754/1830134

jquery代码如下:

$(document).ready(function(){

$(window).scroll(function() {

var top = $(".fenlei").offset().top; //获取指定位置

var scrollTop = $(window).scrollTop();  //获取当前滑动位置

if(scrollTop > top){                 //滑动到该位置时执行代码

$(".mui-bar-nav").addClass("active");

}else{

$(".mui-bar-nav").removeClass("active");

}

});

});

css代码如下:

.mui-bar-nav{box-shadow: none; background:rgba(0,0,0,.5)}

.mui-bar-nav.active{

background:rgba(0,0,0,1);

transition: background 1s;

* Firefox 4 */

-moz-transition:background 1s;

/* Safari and Chrome */

-webkit-transition:background 1s;

/* Opera */

-o-transition:background 1s;

}

html代码如下:

北京

效果如下:

3c1a7ec4846621a230320bef1ae3ee35.png

6310dffdd150352ee8b6b83ec455a284.png

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要实现这种响应式布局,可以使用CSS的flexbox布局。首先,将整个页面分为左侧边栏和右侧内容两部分,使用flexbox布局将它们排成一行。并且设置左侧边栏的宽度为固定的值,右侧内容的宽度为自适应的值: ```html <div class="container"> <div class="sidebar">左侧边栏</div> <div class="content">右侧内容</div> </div> ``` ```css .container { display: flex; flex-wrap: nowrap; } .sidebar { width: 200px; /* 左侧边栏宽度固定 */ flex-shrink: 0; } .content { flex-grow: 1; /* 右侧内容宽度自适应 */ } ``` 接下来,实现左侧边栏可以动态调整宽度。可以使用JavaScript监听鼠标移动事件,当鼠标在左侧边栏和右侧内容的分界线上按下并拖动时,改变左侧边栏的宽度,右侧内容的宽度也会随之自适应。同时,顶部导航栏和左侧边栏可以使用CSS的position属性设置为固定,不会随着滑动而移动: ```html <div class="container"> <div class="header">顶部导航栏</div> <div class="sidebar">左侧边栏</div> <div class="content">右侧内容</div> </div> ``` ```css .header { position: fixed; top: 0; left: 0; right: 0; height: 50px; } .sidebar { position: fixed; top: 50px; left: 0; bottom: 0; width: 200px; flex-shrink: 0; } .content { margin-left: 200px; /* 右侧内容的左边距为左侧边栏的宽度 */ } ``` ```javascript var isDragging = false; var container = document.querySelector('.container'); var sidebar = document.querySelector('.sidebar'); var content = document.querySelector('.content'); var startX = 0; var startWidth = 0; sidebar.addEventListener('mousedown', function(e) { isDragging = true; startX = e.pageX; startWidth = sidebar.offsetWidth; }); document.addEventListener('mousemove', function(e) { if (!isDragging) { return; } var newWidth = startWidth + (e.pageX - startX); sidebar.style.width = newWidth + 'px'; content.style.marginLeft = newWidth + 'px'; }); document.addEventListener('mouseup', function(e) { isDragging = false; }); ``` 这样就可以实现左侧栏目固定,左侧边栏可以动态调整宽度,右侧内容随着屏幕宽度变化变化,左侧边栏和顶部导航栏固定不会随着滑动

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值