[英]How to add stretching effect to a scrollable div tag
让我尝试解释一下。 我有一个带有类overflow
的div
标签。 .overflow
有overflow: auto
以便滚动。 这个div
有几个带有文本的p
标签。 现在我想要的是具有伸展作用 。 延伸是指,如您在Mac
上的google chrome and safari
等浏览器中所看到的,当用户滚动页面并且滚动结束时,该页面会拉伸一点,告诉用户它不再具有内容,因此无法滚动。 因此,我想在div标签上方添加这种拉伸效果。 如何添加CSS,HTMl,JavaScript和/或jQuery?
这是我的jsbin
这是我的代码。
的HTML
<div class="overflow">
<p>This is paragraph</p>
<p>This is paragraph</p>
<p>This is paragraph</p>
<p>This is paragraph</p>
<p>This is paragraph</p>
<p>This is paragraph</p>
<p>This is paragraph</p>
<p>This is paragraph</p>
<p>This is paragraph</p>
<p>This is paragraph</p>
<p>This is paragraph</p>
<p>This is paragraph</p>
<p>This is paragraph</p>
<p>This is paragraph</p>
<p>This is paragraph</p>
<p>This is paragraph</p>
<p>This is paragraph</p>
<p>This is paragraph</p>
<p>This is paragraph</p>
<p>This is paragraph</p>
<p>This is paragraph</p>
<p>This is paragraph</p>
<p>This is paragraph</p>
<p>This is paragraph</p>
</div>
的CSS
.overflow {
height: 300px;
border: 1px solid red;
overflow: auto;
}
看起来该库可能会满足您的需求。 如果愿意,可以将其配置为禁用页面刷新或Ajax回调,并用您描述的“内容不再”消息替换“正在加载”动画:
https://github.com/jordansinger/hook.js/
RubberBand是一种执行类似操作的替代方法:
您可以使用一些js检测滚动的底部,然后使用css动画添加拉伸效果,如下所示:
body {
-webkit-transform: translate3d(0, 0, 0);
}
.overflow {
height: 300px;
border: 1px solid red;
overflow: auto;
}
.bottom {
-webkit-transform-origin: top left;
-webkit-animation: stretch .5s;
transform-origin: top left;
animation: stretch .5s;
}
@-webkit-keyframes stretch {
0% {
-webkit-transform: scaleY(1);
}
50%{
-webkit-transform: scaleY(1.25);
}
100% {
-webkit-transform: scaleY(1);
}
}
@keyframes stretch {
0% {
transform: scaleY(1);
}
50% {
transform: scaleY(1.25);
}
100% {
transform: scaleY(1);
}
}
$('.overflow').scroll(function () {
if ($('.overflow')[0].scrollHeight - $('.overflow').scrollTop() === $('.overflow').innerHeight()) {
$('.overflow').addClass('bottom');
} else {
$('.overflow').removeClass('bottom');
}
});
说明文件:
。滚动()
.scrollHeight
.scrollTop()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.