2016-02-11 6 views
5

मैंने एक साइड ब्लॉक बनाया है जो डिफ़ॉल्ट रूप से static है, लेकिन जब आप किसी बिंदु पर स्क्रॉल करते हैं तो fixed बन जाता है। और इस ब्लॉक में मैं कोणीय-सामग्री का चयन करता हूं।कोणीय सामग्री का चयन निश्चित ब्लॉक पर अजीब तरह से कार्य करता है

सीएसएस:

.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 

जे एस (स्क्रॉल जासूस):

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

मैं इसे कैसे ठीक कर सकते हैं?

+0

आप थोड़ा और अधिक स्पष्ट क्या अजीब तरह से कार्य करता है को खुश कर सकते हैं? –

+0

कृपया "अजीब तरह से कार्य करें" को परिभाषित करें – peterpeterson

+0

* "अजीब तरीके से कार्य करता है" * उचित समस्या का विवरण नहीं है। डेमो ने मेरे लिए ठीक काम किया। क्या आप एक ही मुद्दे को कई ब्राउज़रों में देख रहे हैं? – charlietfl

उत्तर

1

scroll निर्देश के बजाय अपने नियंत्रक को यह करें:

var body = document.querySelector('body'); 
angular.element($window).bind('scroll', function() { 
    if (body.style.position !== 'fixed') { 
    $scope.isFixed = window.scrollY > 330; 
    $scope.$applyAsync(); 
    } 
}); 
संबंधित मुद्दे