我只想要一些简单的JQ/JS来检查当前页面/窗口(不是特定元素)是否有垂直滚动条.
谷歌搜索给了我这些基本功能似乎过于复杂的东西.
如何才能做到这一点?
我正在开发一个自定义的knockout绑定,用于确定是否正在滚动特定元素,并使用元素相对于视口的顶部更新绑定的observable.现在,绑定似乎有效,但我担心是否存在某些情况不会发生.
HTML:
Scroll position: <span data-bind="text: scrollPosition"></span>
<div class="longdiv">
<p data-bind="scroll: scrollPosition">This is some text.</p>
<div class="shim"></div>
</div>
Run Code Online (Sandbox Code Playgroud)
CSS:
.longdiv {
width: 200px;
height: 200px;
overflow: scroll;
border: 1px solid black;
}
Run Code Online (Sandbox Code Playgroud)
JS:
ko.bindingHandlers.scroll = {
init: function(element, valueAccessor, allBindings, viewModel, bindingContext) {
var firstScrollableContainer = null;
var binding = allBindings.get('scroll');
$(element).parents().each(function (i, parent) {
if ($(parent).css('overflow')=='scroll') {
firstScrollableContainer = parent;
return false;
}
});
firstScrollableContainer = firstScrollableContainer || window;
binding(element.getBoundingClientRect().top);
$(firstScrollableContainer).scroll(function() {
binding(element.getBoundingClientRect().top);
});
}
};
var ViewModel = …Run Code Online (Sandbox Code Playgroud)