Прокрутите изображение до верхней части в директиве angularjs на боковой панели

0

Мне нужно прокрутить активное изображение вверх, используя директиву angularjs. Когда я пытался обработать с элементом [0].offset() его ошибку бросания.

Объяснение:

Здесь я жестко кодирую активный элемент до 5 в строке. Не нужно кодировать для этого, поскольку я мог бы установить динамический активный элемент на основе URL-адреса. Все, что мне нужно, - это изображение 5, которое должно прокручиваться вверху на боковой панели, поскольку это активный элемент

myApp.controller('sidebarController', function($scope){
$scope.images=[];
for(var i = 0; i< 10; i++){
    temp = {url:'http://lorempixel.com/400/200',active:false}
    $scope.images.push(temp)
}

$scope.images[5].active=true;  // hardcoding the 5th element to be active.

})

Вот мой код директивы.

myApp.directive('scrollToTop',function($timeout){

return {
    restrict:'A',
    link:function(scope, element, attributes){
    if(attributes.active == true || attributes.active =='true'){
    $timeout(function () {
            console.log(element)
        //angular.element(element)[0].scrollTop =  element[0].offset().top;// commented it as it was throwing error.
      });
    }
  }  
}

})

Вот мой jsfiddle

Теги:
scroll
directive

1 ответ

0

Через 2 дня кодирования отправился с anchorScroll. Надеюсь, это единственное решение. Смутил, что scrollTop для?

Вот мой обновленный код

myApp.directive('scrollToTop',function($timeout, $anchorScroll, $location){

return {
    restrict:'A',
    link:function(scope, element, attributes){
            if(JSON.parse(attributes.scrollToTop.toLowerCase())){
        $location.hash(attributes.id);
        $anchorScroll();
        }
  }  
}

})

Ещё вопросы

Сообщество Overcoder
Наверх
Меню