gpt4 book ai didi

angularjs - Angular JS UI Bootstrap 选项卡 (ui.bootstrap.tabs) 导致页面在选择时滚动/跳转

转载 作者:行者123 更新时间:2023-12-03 08:05:39 25 4
gpt4 key购买 nike

选择标签会导致页面随机滚动,例如选择一个标签几乎可以将页面一直滚动到顶部,然后我必须向下滚动才能看到标签的内容,如果我选择另一个标签,页面会再次滚动。

选项卡的内容大小可变,有些元素比其他元素多,因此它们自然具有不同的高度,但我不确定这是否是随机页面滚动的原因。

我尝试了一些 jquery 来禁用链接默认操作,但没有运气。

$(function () {
$('body').on('click', 'a[ng-click="select()"]', function (event) {
event.preventDefault();
});
});

另一个丑陋的解决方案是我将 tabset 包裹在一个 div 中并在 div 上设置了一个高度
<div class="col-md-12" id="profile-nav-tabs" style="
height:500px;
overflow-y: auto;
overflow-x:hidden
">
<tabset justified="true">
<tab heading="{{::strings.profile}}">
<br />
<div ng-include="'tab-profile.php'"></div>
</tab>
.... more tabs
</tabset>
</div>

最佳答案

我遇到了同样的问题。跟踪代码后,我认为这是tabset的一个bug指示。

解决方案是(分步):

  • 修改 tabset.html , 删除 [ng-class="{active: tab.active}"]
  • 修改 [tab]指令的 scope.$watch('active')的处理程序。
  • 使用 angular.elementaddClassremoveClass添加/删除功能 active类(class)。
    link: function(scope, elm, attrs, tabsetCtrl, transclude) {
    scope.$watch('active', function(active) {
    /*if (active) {
    tabsetCtrl.select(scope);
    }*/
    var idx = tabsetCtrl.tabs.indexOf(scope);
    var elmPane = angular.element(elm[0]).parent().next().children()[idx]; //li->ul->div(tab-content)->div(tab-pane)
    if (active) {
    tabsetCtrl.select(scope);
    angular.element(elmPane).addClass('active');
    }
    else {
    angular.element(elmPane).removeClass('active');
    }
    });
  • 关于angularjs - Angular JS UI Bootstrap 选项卡 (ui.bootstrap.tabs) 导致页面在选择时滚动/跳转,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32342176/

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