gpt4 book ai didi

css - typeahead 控件的向上/向下箭头键问题( Angular Bootstrap UI)

转载 作者:技术小花猫 更新时间:2023-10-29 10:55:11 25 4
gpt4 key购买 nike

检查这个PLNKR ,我已经实现了typeahead控制,默认情况下,在提前输入控件中,他们没有设置任何最大高度或要列出的高度,但根据要求,我必须将列表的高度固定为 110px。所以,当我们有更长的列表时,一次只会显示 4 个数据,其余的可以通过向下滚动看到。用户单击向上/向下滚动箭头时滚动有效,但它不适用于键盘向上/向下键。

问题按步骤解释:-

  1. 键入一些内容,例如“a”以提前获取数据(列表将被填充)
  2. 按向下箭头键(焦点将在列表项上)
  3. 按向下箭头键 4-5 次进一步向下(当我们遍历向下列表,滚动不会移动。)
  4. 它总是显示列表中的前 4 项。理想的行为是它应该转变。

用户可以通过手动单击滚动来滚动,但使用箭头键它不会滚动。

Type "a" and traverse down to list with down-arrow key scrolling is not working.

HTML

<!doctype html>
<html ng-app="ui.bootstrap.demo">
<head>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.2.16/angular.js"></script>
<script src="//angular-ui.github.io/bootstrap/ui-bootstrap-tpls-0.12.0.js"></script>
<script src="example.js"></script>
<link href="//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css" rel="stylesheet">
<link href="style.css" rel="stylesheet">
</head>
<body>
<div class='container-fluid' ng-controller="TypeaheadCtrl">
<h4>Static arrays</h4>
<pre>Model: {{selected | json}}</pre>
<input type="text" ng-model="selected" typeahead="state for state in states | filter:$viewValue | limitTo:8" class="form-control">
</div>
</body>
</html>

CSS

.dropdown-menu{
height:110px;
overflow:auto;
}

javascript 数据列表

$scope.states = ['Alabama', 'Alaska', 'Arizona', 'Arkansas', 'California', 'Colorado', 'Connecticut', 'Delaware', 'Florida', 'Georgia', 'Hawaii', 'Idaho', 'Illinois', 'Indiana', 'Iowa', 'Kansas', 'Kentucky', 'Louisiana', 'Maine', 'Maryland', 'Massachusetts', 'Michigan', 'Minnesota', 'Mississippi', 'Missouri', 'Montana', 'Nebraska', 'Nevada', 'New Hampshire', 'New Jersey', 'New Mexico', 'New York', 'North Dakota', 'North Carolina', 'Ohio', 'Oklahoma', 'Oregon', 'Pennsylvania', 'Rhode Island', 'South Carolina', 'South Dakota', 'Tennessee', 'Texas', 'Utah', 'Vermont', 'Virginia', 'Washington', 'West Virginia', 'Wisconsin', 'Wyoming'];

最佳答案

Here is the working plunker

在此,我按照 answer 中的建议覆盖了 ui-bootstrap typeahead .

以下是我需要进行的更改才能使其正常工作:

typeaheadMatch 指令中添加了以下行(plunker 中 ui.bootstrap.typeahead.js 文件的第 335 行)

element[0].focus();

添加了 shouldFocus 指令(行 - 314 -350)

.directive('shouldFocus', function(){
return {
restrict: 'A',
link: function(scope,element,attrs){
scope.$watch(attrs.shouldFocus,function(newVal,oldVal){
element[0].scrollIntoView(false);
});
}
};
})

最后在 li 中添加指令(第 372 行)

should-focus=\"isActive($index)\"

关于css - typeahead 控件的向上/向下箭头键问题( Angular Bootstrap UI),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27705490/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com