美文网首页
ionic在ios下键盘挡住输入框的解决方法

ionic在ios下键盘挡住输入框的解决方法

作者: lzb30 | 来源:发表于2017-12-08 11:09 被阅读0次

解决方案,给input输入框添加一个指令,这个指令用来监听input的onFocus事件,只要触发这个事件,就计算input的top和当前页面滚动的top,从而计算出实际的top,然后控制页面滚动。

.directive('focusInput', ['$ionicScrollDelegate', '$window', '$timeout', '$ionicPosition', function ($ionicScrollDelegate, $window, $timeout, $ionicPosition) {

return {

restrict: 'A',

scope: false,

link: function ($scope, iElm, iAttrs, controller) {

if (ionic.Platform.isIOS()) {

iElm.on('focus', function () {

var top = $ionicScrollDelegate.getScrollPosition().top;

var eleTop = ($ionicPosition.offset(iElm).top) / 2

var realTop = eleTop + top;

$timeout(function () {

if (!$scope.$last) {

$ionicScrollDelegate.scrollTo(0,realTop);

} else {

try {

var aim = angular.element(document).find('.scroll')

aim.css('transform', 'translate3d(0px,' + '-' + realTop + 'px, 0px) scale(1)');

$timeout(function () {

iElm[0].focus();

console.log(2);

}, 100)

} catch (e) {

}

}

}, 500)

})

}

}

}

}])

参考链接:

http://blog.csdn.net/github_37533433/article/details/66471962

http://www.jb51.net/article/92052.htm

相关文章

网友评论

      本文标题:ionic在ios下键盘挡住输入框的解决方法

      本文链接:https://www.haomeiwen.com/subject/cgxeixtx.html