javascript - 复杂的视差效果元素定位

标签 javascript html css

这就是问题所在,我正在使用 Skrollr 插件制作视差效果/动画网站来为我的一位客户展示产品。

现在我在定位方面遇到了一个大问题,我需要将元素定位在视口(viewport)之外,但它们必须附加到一个固定的包装器上,并且动画到 div 的中心。

我很乐意只在 css 中执行此操作以避免过多的 js(无论如何 Skrollr 使用 css 代码来制作动画)。

我所尝试的只是将我的元素定位为 +200% 或 -200%,这在较小的屏幕上效果很好,但在大屏幕上,我们仍然可以看到这些元素。所以这不是一个好的解决方案。

我曾尝试使用 css3 值 VH 和 VW,但之后将它们定位在屏幕中央是一个问题,而且在 Firefox 和 Chrome 之间似乎有问题。

这也是我的测试,这个是使用 %:

http://natcom.fr/commun/sites_construction/animation/old

这是使用 VH 和 VW:

http://natcom.fr/commun/sites_construction/animation

我提前感谢大家提供的任何帮助。

最佳答案

给你 =),但一个问题是当 inner-div 获得绝对/相对位置时它不再起作用。 但我不知道你的完整 html 结构等。

你也可以从 inner-div 中取出对象吗?

<!DOCTYPE html>
<html>
    <head>
        <style>
            body, html {
                width: 100%;
                height: 100%;
                overflow: hidden;
            }

            .outer-div {
                left: -200px;
                right: -200px;
                position: absolute;
            }

            .object {
                position: absolute;
                left: 0;
                width: 200px;
                height: 200px;
                background: #0000FF;
            }

            .move-object {
                transition-duration: 10s;
                margin-left: -100px;
                left: 50%;
            }

            .inner-div {
                width: 500px;
                margin-left: auto;
                margin-right: auto;
                border: 1px solid black;
                height: 200px;
            }


        </style>
        <script>
            function moveit() {
                var element = document.getElementById('testobj');
                element.setAttribute('class', 'object move-object');
            }
        </script>
    </head>
    <body>
        <button onclick="moveit();">Click</button>
        <div class="outer-div">
            <div class="inner-div">
                <div class="object" id="testobj">

                </div>
            </div>
        </div>
    </body>
</html>

关于javascript - 复杂的视差效果元素定位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17550257/

相关文章:

javascript - 调试azure sdk(如何显示相关的REST API)

Javascript 正则表达式 : find the first 'use strict'

php - 在使用 PHP Mysql Excel 上传期间如何验证手机号码列?

html - Angular 4 动画正确地左、右、上、下,但不适用于转换(translateX、translateY、translateZ)

javascript - 容器 cacheCanvas 和上下文绘制问题

javascript - 如何在表格中显示c3.js数据

javascript - jquery droppable 在放置后添加 css

css - Material-Ui 使用组件类 Prop 应用伪类 '::before'

html - 简单的表格不会变大

javascript - 在 Bootstrap 模式中使特定的 div 背景透明