【问题标题】:Check scrolling with CSS使用 CSS 检查滚动
【发布时间】:2014-01-17 09:51:01
【问题描述】:

我正在尝试创建一个纯 100% CSS(无 jQuery)“返回顶部”按钮,但我希​​望该按钮仅在访问者向下滚动页面时显示。

是否可以通过 CSS 进行检查?因此,如果访问者向下滚动一点,就会显示“返回顶部”按钮。

谢谢!

【问题讨论】:

    标签: css scroll


    【解决方案1】:

    按光标位置确定

    您可以这样做的一种方法是仅在用户将鼠标悬停在页面本身的内容上时才显示.toTop 元素,远低于标题和导航链接:

    .toTop { opacity: 0; }
    .toTop:hover, main:hover + .toTop { opacity: 1; }
    

    你可以在这里看到效果:http://jsfiddle.net/GFfbe/1/

    或者,慢慢揭开它

    或者,您可以慢慢发现 .toTop 与另一个元素的链接。在下面的示例中,我使用 body 的伪元素 ::before 来掩盖 .toTop 元素,并随着用户滚动慢慢显露出来:

    /* .toTop will appear in the left margin */
    body {
        margin: 0 10em;
    }
    
    /* Positioned and sized to overlap .toTop */
    body::before {
        content: "";
        background: white;
        position: absolute;
        bottom: 0; left: 0;
        width: 100%; height: 5em;
    }
    
    /* Positioned, so body::before goes behind it */
    main {
        position: relative;
    }
    
    /* Attached to viewport at bottom left */
    .toTop {
        z-index: -1;
        position: fixed;
        bottom: 1em; left: 1em;
    }
    

    你可以在这里看到这个效果:http://jsfiddle.net/GFfbe/2/

    【讨论】:

    • 1.即使我们不需要滚动,也会出现“返回顶部”。 2.如果我们稍微滚动一下,我们可以看到一半的“返回顶部”按钮。 jsfiddle.net/GFfbe/8
    • 聪明的想法。我发现这个技巧的唯一缺点是它不适用于移动用户,就像所有其他 :hover 技术一样。 .
    • @JoE.: 为什么它不能在移动设备上使用? :hover 似乎享有移动浏览器的普遍支持:caniuse.com/#search=%3Ahover
    • @HassanBaig 我认为这是因为hoverclick 冲突,因为手机不能像使用鼠标光标的桌面用户那样hover。因此,在智能手机中,例如,如果您触摸图像,悬停处理程序将触发,但如果您有点击处理程序,它也会触发。我认为这曾经是并且现在仍然是问题?
    猜你喜欢
    • 1970-01-01
    • 2013-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-10
    • 1970-01-01
    • 1970-01-01
    • 2013-03-27
    相关资源
    最近更新 更多