CSS。滚动后元素位置发生变化

时间:2013-12-06 18:03:09

标签: javascript jquery html css

假设我有两个div。第一个是固定标题,第二个是相对位置广告。滚动后,广告会进入标题内部。广告应该贴在标题上,它们都返回到正常的页面流,我可以像其他内容一样向下滚动。我相信你有我的想法。

此刻我没有具体的代码,只是头脑风暴。一个想法是使用jQuery window.scroll()window.scrolltop()函数来检测窗口位置以及何时更改CSS。但是如何坚持这个广告并恢复正常流程???

我用谷歌搜索,在这里浏览答案但找不到任何有价值的信息。如果您有任何想法或信息,我将不胜感激。

2 个答案:

答案 0 :(得分:4)

在另一个网站上做了类似的事情。

基本上,我从“固定”位置转换到“相对”位置,但可以根据您的需要进行调整:

    var header = $('#header');
    var ad = $('#ad');
    var min_scroll = 25; // Set your minimum scroll amount here
    $(window).scroll(
        function() {
            var t = $(window).scrollTop();
            if (t > min_scroll) {
                // define your scroll CSS here
                header.css({position: "relative"});
                ad.css({position: "relative"});
            } else {
                // define your non-scrolled CSS here
                header.css({position: "fixed"});
                ad.css({position: "absolute"});
            }
        }
    );

答案 1 :(得分:2)

将绝对位置内容的位置更改为页面顶部将导致该材质跳跃;该材料将滚动并跳回原位。如果你想避免跳跃,那么当它滚动到顶部时,使用jquery将位置从绝对更改为固定在顶部,滚动到页面顶部时将其更改回绝对值。