【发布时间】:2014-01-17 09:51:01
【问题描述】:
我正在尝试创建一个纯 100% CSS(无 jQuery)“返回顶部”按钮,但我希望该按钮仅在访问者向下滚动页面时显示。
是否可以通过 CSS 进行检查?因此,如果访问者向下滚动一点,就会显示“返回顶部”按钮。
谢谢!
【问题讨论】:
我正在尝试创建一个纯 100% CSS(无 jQuery)“返回顶部”按钮,但我希望该按钮仅在访问者向下滚动页面时显示。
是否可以通过 CSS 进行检查?因此,如果访问者向下滚动一点,就会显示“返回顶部”按钮。
谢谢!
【问题讨论】:
您可以这样做的一种方法是仅在用户将鼠标悬停在页面本身的内容上时才显示.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/
【讨论】:
:hover 技术一样。 .
:hover 似乎享有移动浏览器的普遍支持:caniuse.com/#search=%3Ahover
hover 与click 冲突,因为手机不能像使用鼠标光标的桌面用户那样hover。因此,在智能手机中,例如,如果您触摸图像,悬停处理程序将触发,但如果您有点击处理程序,它也会触发。我认为这曾经是并且现在仍然是问题?