Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/419.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 角度5 ViewChild clientHeight、scrollTop和scrollHeight在_Javascript_Jquery_Css_Angular_Angularjs Directive - Fatal编程技术网

Javascript 角度5 ViewChild clientHeight、scrollTop和scrollHeight在

Javascript 角度5 ViewChild clientHeight、scrollTop和scrollHeight在,javascript,jquery,css,angular,angularjs-directive,Javascript,Jquery,Css,Angular,Angularjs Directive,我有一个可滚动内容的组件。 然而,当我尝试使用ViewChild获取角度可滚动内容的维度时,所有值都为零,但是如果我使用jQuery获取元素,我会得到正确的值。为什么会这样?如何获得正确的角度尺寸?我验证了两者都有相同的元素,但我认为angular没有正确的值或元素?在控制台中,从css类和html名称来看,jQuery和Angular似乎都有相同的元素 模板: <div class="container-fluid px-5 py-5 scrolled-contents" style="

我有一个可滚动内容的组件。 然而,当我尝试使用ViewChild获取角度可滚动内容的维度时,所有值都为零,但是如果我使用jQuery获取元素,我会得到正确的值。为什么会这样?如何获得正确的角度尺寸?我验证了两者都有相同的元素,但我认为angular没有正确的值或元素?在控制台中,从css类和html名称来看,jQuery和Angular似乎都有相同的元素

模板:

<div class="container-fluid px-5 py-5 scrolled-contents" style="display:inline-block" #scrolledContents>

  <div class="row">
  ...content
  </div>
</div>
请帮忙?

,我似乎无法重现您的问题


你把全部密码都给我了吗?它是路由组件吗?任何信息都会有用。

我想处理你的问题。你会分享类似“Plunker”的东西吗?嗯,我想可能很难包含Plunker,我不确定。我可以试试。看起来你用的是angular 4.4.3,我用的是angular 5,boostrap 4.0,元素是boostrap容器,你能试着用angular 5复制吗?此外,我的容器没有在th元素上指定特定的高度。此外,我在容器内创建的内容是其他组件(不会影响它)。当然,内容是在页面加载后创建的。它不依赖于角度版本,但无论如何,只需将其设置为5,相同的URL,您可以检查。如果您没有弄乱CSS属性,内容就不会成为问题。@DoryZidon在“行”溢出时是否会显示“滚动”?如果发生
窗口:滚动
在您的情况下不起作用。您确定更新有效吗?我收到了关于丢失rx文件的错误。。你能再次检查或发送一个新的链接吗?
export class ScrollContainer implements OnInit {

  @ViewChild('scrolledContents') private scrollContainer: ElementRef;

  @HostListener("window:scroll", [])
  onScroll(): void {
    const jQueryelement = $(".scrolled-contents")[0];
    const angularElement = this.scrollContainer.nativeElement;
    // angularElement.clientHeight == 0, angularElement.offsetHeight == 0, angularElement.scrollTop == 0, etc
    // jQueryElement.clientHeight == correctValue, jQueryElement.offsetHeight == correct value, jQueryElement.scrollTop == correctValue 
  }