css设置背景图片随滚动缓慢滚动_滚动时div的背景图片随之滚动

在浏览一些网站时发现有一种效果是当滚动时看到某一DIV的背景也会随之滚动,如下:

当滚动时内容位置保持不变,但是内容后面的背景却在随着滚动。随之我通过审查元素看到了其是通过background-position来实现的,实现原理为当目标DIV出现在屏幕上时,当往下滚动时background-position的Y越来越小,反之则越大。

准备好一张大图,先写出布局

.wrap{width: 100%;height: 3000px;}

.wrap_bg{background: url(images/scroll_bg.jpg) no-repeat;background-position: center -300px;width: 100%;height: 600px;overflow: hidden;}

.content{width: 100%;height: 100px;text-align: center;color: #fff;font-size: 100px;margin-top: 100px;}

内容

使用scroll()方法实现最终效果

var winHeight = $(window).height();//窗口高

var divHeight = $('.wrap_bg').height();//div高

var divTop = $('.wrap_bg').offset().top;//div距离html顶部高度

var prevtop = divTop;

$(window).on('scroll',function(){

var winTop = $(window).scrollTop();//滚动条滚动高度

if(winTop+winHeight>divTop && winTop

if(winTop>=prevtop){//滚动条往下

$('.wrap_bg').finish().animate({

backgroundPositionY:'-=10px'

},100);

}else{//滚动条往上

$('.wrap_bg').finish().animate({

backgroundPositionY:'+=10px'

},100);

}

prevtop = $(window).scrollTop();

}

})

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值