我正在使用角度与离子
我使用了以下代码
<input type="number" name="foo" ng-model="field.field_value" class="form-number" ng-focus="keyboardFocus(this)" >
$scope.keyboardFocus=function(t){
var a= $(t).attr('class');
alert(a);
// $ionicScrollDelegate.scrollBottom();
// $ionicScrollDelegate.$getByHandle(t).scrollTop();
$("."+a).css('position','absolute');
$("."+a).css('top','0px');
}
但滚动在文本框上的当前位置不起作用。键盘焦点文本框不起作用,但键入任何文本foucus正在工作
答案 0 :(得分:3)
Imho,无需使用$ionicScrollDelegate
,更改位置,手动滚动或任何其他复杂的内容。
您只需安装Ionic Keyboard Cordova plugin即可。请参阅解释here。
要安装它:
cordova plugin add com.ionic.keyboard
别无他法。在焦点上,页面将自动移动。
当然,它只适用于真实设备,但根据我的经验,使用此插件时,重点表单元素永远不会隐藏在键盘下。
答案 1 :(得分:0)
最好的方法是使用$ionicScrollDelegate
,因为您需要以这种方式定义元素的delegate-handle
值:
<input type="number" name="foo" ng-model="field.field_value" class="form-number" delegate-handle="myInput" ng-focus="keyboardFocus('myInput')" >
然后以这种方式传递到keyboardFocus
:ng-focus="keyboardFocus('myInput')"
。
功能将变为
$scope.keyboardFocus=function(handleValue){
$ionicScrollDelegate.$getByHandle(handleValue).scrollTop();
}