繁体   English   中英

角度材质选择在固定块上奇怪地起作用

[英]Angular Material select acts weirdly on fixed blocks

我创建了一个默认情况下是static的侧块,但在滚动到某个点时会变得fixed 在这个块中我使用Angular-Material选择。

CSS:

.pos-fixed {
    position:fixed;
    top: 60px;
    width:16.5%!important;
}

#sidebar-right {
    float:right;
    width:23%;
}
#sidebar-right #widget {
    width:100%;
}

HTML:

  <div id="sidebar-right">
    <div id="widget" ng-class="{'pos-fixed': imageHidden}" class="panel md-padding">
      <div>
        <md-input-container style="width:100%">
          <md-select ng-model="number1" placeholder="number 1">
            <md-option ng-repeat="number in ['one','two','three','four','five','six','seven']" value="{{number}}">{{number}}</md-option>
          </md-select>
        </md-input-container>
        <br />
        <md-input-container style="margin-top: 0px;width:100%">
          <md-select ng-disabled="!number1" ng-model="number2" placeholder="numbe 2">
            <md-option ng-repeat="number in ['one','two','three','four','five','six','seven']" value="{{number}}">{{number}}</md-option>
          </md-select>
        </md-input-container>
      </div>
    </div

JS(滚动间谍):

app.directive('scroll', function($window) {
  return function(scope, element, attrs) {
    angular.element($window).bind('scroll', function() {
      if (this.pageYOffset >= 320) {
        scope.imageHidden = true;
      } else {
        scope.imageHidden = false;
      }
      scope.$apply();
    });
  };
});

fixed侧边块之前,材质选择工作正常,但是一旦滚动并且它变得fixed ,选择开始奇怪地行动。
GIF: http//recordit.co/i72EaaVxJf
Plunker: http ://plnkr.co/edit/lfik78wR2FqPoSFSCNlz?p = preview

我该如何解决?

将其添加到控制器而不是scroll指令:

var body = document.querySelector('body');
angular.element($window).bind('scroll', function() {
  if (body.style.position !== 'fixed') {
    $scope.isFixed = window.scrollY > 330;
    $scope.$applyAsync();
  }
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM