滚动时div的背景图片随之滚动

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

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

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

<style>
.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;}
</style>

<div class="wrap">
    <div class="wrap_bg">
        <div class="content">
            内容
        </div>
    </div>
</div>

使用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<divTop+divHeight){//判断div是否出现在屏幕
        if(winTop>=prevtop){//滚动条往下
            $(‘.wrap_bg‘).finish().animate({
                backgroundPositionY:‘-=10px‘
            },100);
        }else{//滚动条往上
            $(‘.wrap_bg‘).finish().animate({
                backgroundPositionY:‘+=10px‘
            },100);
        }
        prevtop = $(window).scrollTop();
    }
})
时间: 2024-12-28 23:51:53

滚动时div的背景图片随之滚动的相关文章

js如何设置div的背景图片

js如何设置div的背景图片:通过js设置div背景图片的方式有多种,这里只介绍一下使用style方式设置,尽管这种方式大家最为熟悉,但是设置背景因为涉及到路径,可能会稍稍造成一点困难,直接给出代码: odiv.style.backgroundImage="url('images/test.jpg')"; 当然也可以使用setAttribute()函数实现,具体可以参阅setAttribute()函数的用法详解一章节. 原文地址是:http://www.softwhy.com/foru

判断鼠标点击在div外时,更改背景图片

学习起步时,本人试着在web端界面上仿照qq客户端主菜单,做出了一个界面. 当做到qq主菜单的搜索框时,发现点击搜索框后,里面的背景图片会消失,如下面2张图所示:      点击前                                                                      点击后 尽管类似这种判断鼠标是否点击在div外,以更改背景图片的应用在web开发中并不多见,但是我们还是需要明白,应如何实现对鼠标是否点击在div外的判断. 在这里,我采用了如下代

js 动态设置 div 背景图片 并滚动显示

var imgs =["../img/index/bgstyle/style1/index_top_bg2.jpg", "../img/index/bgstyle/style1/index_top_bg3.jpg", "../img/index/bgstyle/style1/index_top_bg1.jpg"]; //(设定想要显示的图片) var i = 0; var head=document.getElementsByClassName(

页面滚动时div窗口始终居中

<html xmlns="http://www.w3.org/1999/xhtml"><head>    <title></title>    <script type="text/JavaScript">        function fn1() {            var _div = document.getElementById("div1");            f

css设置背景固定不滚动效果的示例

css设置背景固定不滚动效果的示例 背景固定不滚动各位看到最多的无非就是QQ空间了,我们在很多的空间都可以看到内容滚动而北京图片不滚动了,下文整理了几个关于背景固定不滚动css代码. 一.css设置背景不滚动的效果 <!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd">

div嵌套div 背景图片 不显示的问题

这几天 在做一个小Demo的时候碰到了如上的问题,一个DIV嵌套多个DIV时,父容器DIV不显示背景图片.同时结合之前碰到类似的问题,我归纳了如下几个解决方法: 1.就是常见的 子div 背景把父div的背景给盖住了,例子: 该例子就是 我有一个父div 和它里面嵌套的一个子div,两个div的宽度和高度大小是一样的,其中父div的背景图片就是上面这张图片(箭头部分是透明的),子div的背景图片是那种渐变灰色图片,其实懂英语的人应该看出来了就是,我想实现一个那种类似于iphone滑动那种灯光从

css background-size与背景图片填满div

background-size与背景图片填满div 在开发中,常有需要将一张图片作为一个div的背景图片充满div的需求 background-size的取值及解释 background-size共有三种属性,分别为 background-size: cover MDN文档解释说明:缩放背景图片以完全覆盖背景区,可能背景图片部分看不见.A keyword that is the inverse of contain. Scales the image as large as possible a

【COCOS2DX-游戏开发之三四】cocos2dx 3.0 TableView特殊用法:滚动时不能选择等等

cocos2dx 3.0版本TableView拍生自ScrollView,常用来做滚动列表,有几种特殊用法,不知道大家用到过没 要求:1.滚动时不能选中TableCell,非滚动状态才能选中 很简单,在TableView的delegate函数中,通过isTouchMoved()函数来判断 void WeaponSelectLayer::tableCellUnhighlight(cocos2d::extension::TableView* table, cocos2d::extension::Ta

【COCOS2DX-游戏开发之三四】cocos2dx 3.0 TableView特殊使用方法:滚动时不能选择等等

cocos2dx 3.0版本号TableView拍生自ScrollView,经常使用来做滚动列表,有几种特殊使用方法,不知道大家用到过没 要求:1.滚动时不能选中TableCell,非滚动状态才干选中 非常easy,在TableView的delegate函数中,通过isTouchMoved()函数来推断 void WeaponSelectLayer::tableCellUnhighlight(cocos2d::extension::TableView* table, cocos2d::exten