Qki*_*kiZ 6 breakpoints google-chrome-devtools
我网站上的一个js导致不必要的滚动到页面顶部.当js更改scrollTop属性时,如何在Chrome开发者工具中休息一下?
粘贴下面的代码,然后运行onVerticalScroll(function(){debugger});。
请注意,这仅在通过JavaScript显式设置滚动位置时才会暂停。例如,如果大元素暂时从页面上消失并导致视口跳起,则不会触发。
function onVerticalScroll(fnOnScroll){
var originalScrollTop = getPropertyDescriptor(HTMLElement.prototype, "scrollTop");
Object.defineProperty(HTMLElement.prototype, "scrollTop", {
get: function(){
return originalScrollTop.get.apply(this, arguments);
},
set: function(){
fnOnScroll();
return originalScrollTop.set.apply(this, arguments);
}
});
var originalScrollTo = window.scrollTo;
window.scrollTo = function(){
fnOnScroll();
return originalScrollTo.apply(this, arguments);
}
var originalScrollBy = window.scrollBy;
window.scrollBy = function(){
fnOnScroll();
return originalScrollBy.apply(this, arguments);
}
function getPropertyDescriptor(object, propertyName){
var descriptor = Object.getOwnPropertyDescriptor(object, propertyName);
if (!object){
throw new Error("descriptor not found");
}
if (!descriptor) {
return getPropertyDescriptor(Object.getPrototypeOf(object), propertyName);
}
return descriptor;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
804 次 |
| 最近记录: |