2016-07-23 11 views
1

フォーム内の入力フィールドを介して誰かがタブを上下にスクロールしようとしました。私は、現在フォーカスされている入力要素が、ユーザーがタブを通過するときに、ページの中央に垂直にセンタリングされることを望みます。私はこれのための指示を書いたが、私はそれが期待するように動作しません。 、 また、使用elem.prop(....)入力フィールドの中央にページをスクロールする方法

+0

あなたは手の込んだてもらえ* doesnの」: –

答えて

0
var app = angular.module('plunker', []); 
app.controller('MainCtrl', function($scope) { 
    $scope.name = 'World'; 
}); 

app.directive('formScroll', formScroll); 
    function formScroll($window) { 
     return { 
     link: function(scope, elem) { 
       elem.bind('focus', function() { 
        var offset, 
       elOffset = elem.prop('offsetTop'), //.offset().top, 
       elHeight = elem.prop('height'), //elem.height(), 
       windowHeight = $window.innerHeight; 
       offset = elOffset - ((windowHeight - elHeight)/2); 
       $window.scrollTo(0, offset); 
       }); 
     } 
     } 
    } 

angular 
    .module('app') 
    .directive('formScroll', formScroll); 

function formScroll($window) { 

     function link(scope, elem) { 
      elem.bind('focus', function() { 
       var offset, 
        elOffset = elem.offset().top, 
        elHeight = elem.height(), 
        windowHeight = $window.innerHeight; 

       offset = elOffset - ((windowHeight - elHeight)/2); 

       $window.scrollTo(0, offset); 
      }); 
     } 
    } 
は私がオブジェクト{...}のリンクを返すようにformScroll機能を修正しました私が期待する*仕事は意味する?
関連する問題