使用.animate滚动文本

Use .animate to scroll text

本文关键字:文本 滚动 animate 使用      更新时间:2023-09-26

我正在尝试创建类似于这个网页的东西,其中使用视频作为背景,当用户上下滚动时,文本/背景视频会发生适当的变化,以便讲述故事。

现在,播放视频是唯一有效的方法。视频将按预期加载和播放。然而,CCD_ 1元素被简单地一个接一个地堆叠在视频下方。当用户点击页面上的任何位置时,我希望文本从底部向上滚动,并在到达页面上与前一文本相同的位置后完成滚动。。。但是,我认为我没有正确使用.animate()函数。

这似乎相对容易做到,所以这是我公认的软弱的第一次尝试。

小提琴:http://jsfiddle.net/f06w76bv/

<!DOCTYPE html>
<html>
    <head>
    <style>
    .textConatiner{
        position: absolute;
        background-color: rgba(0, 0, 0, 0.9);
        color: #fff;
        left:10%;
    }
    video.bgvid{
        position: fixed;
        right: 0;
        bottom: 0;
        min-width: 100%;
        min-height: 100%;
        width: auto;
        height: auto;
        z-index: -100;
        background: url(TurbineStill.png) no-repeat;
        background-size: cover;
    }
    </style>
    </head>
    <body>
        <video autoplay loop poster="TurbineStill.png"  class="bgvid">
            <source src="Turbine.mp4" type="video/mp4">
        </video>    
        <section>
            <div class="textConatiner" id="one" style="top:50%;">
                <h2>Video Backgrounds One</h2>                          
            </div>      
        </section>      
        <section>
            <div class="textConatiner" id="two" style="top:150%;">
                <h2>Video Backgrounds One</h2>                          
            </div>      
        </section>
    </body> 
    <script src="js/jquery-1.11.1.js"></script>
    <script>
    $(document).ready(function () { 
        $(document).click(function () {
            var myDiv = $("#two");
            var scrollto = myDiv.offset().top + (myDiv.height() / 2);
            myDiv.animate({ scrollTop: scrollTo }, 1000);
        });
    });
    </script>
</html>

编辑通过将position添加到div容器中,我可以在页面加载时将原始div位置准确地放在我想要的位置。然而,我仍然无法使用animate方法将第二个div从下面移动到页面中。

你的问题并不新鲜,实际上只是一堆问题。

首先,对于您的定位,您将能够像使用任何DOM元素一样使用纯CSS。例如W3Schools的教程。

使用JQuery滚动到一个元素在这个stackoverflow问题中得到了回答。

关于通过滚动移动视频的另一个stackoverflow问题可以在这里找到。