我会进一步扩展这个内容,特别是为那些像我一样使用现代js框架而不是JQuery的可怜人提供帮助,并且已经被此线程中的人完全抛弃:
这是在Angular 6中编写的,但如果你编写React 16、Vue 2、Polymer、Ionic、React-Native,你就知道如何适应它了。而且它是整个组件,所以应该很容易。
import {ElementRef, AfterViewInit} from '@angular/core';
@Component({
selector: 'app',
templateUrl: './app.html',
styleUrls: ['./app.scss']
})
export class App implements AfterViewInit {
scrollAmount;
constructor(
private fb: FormBuilder,
private element: ElementRef
) {}
ngAfterViewInit(){
this.scrollAmount = this.element.nativeElement.querySelector('.elem-list');
this.scrollAmount.addEventListener('wheel', e => {
if(this.scrollAmount.scrollHeight > this.scrollAmount.offsetHeight){
}else{
}
});
}
}
在 HTML 中,会有一个带有类名“elem-list”的 div 元素,该元素在 CSS 或 SCSS 中被设置了高度和 overflow 值(不是 hidden,而是 auto 或 scroll)。
我会在滚动事件触发时启动此评估,因为我的最终目标是实现“自动焦点滚动”,即根据组件是否具有垂直滚动条来决定它们是水平滚动整个组件集还是仅垂直滚动一个组件的内部。
但你也可以将这个评估放在其他地方,由其他事件触发。
重要的是记住,你永远不会被迫使用 JQuery,总有一种方法可以访问它具有的相同功能而不使用它。
this
将保留其父范围;th = this;
是不必要的。 - mix3dfunction(){}.bind(this)
。 - mix3d