我的解决方案是:
1.创建html代码
<ul class="uk-tab" data-uk-tab="{connect:'#tab-content', hash: true}">
<li><a href="#tab-profile">Профиль</a></li>
<li><a href="#tab-verify">Подтверждение телефона</a></li>
<li><a href="#tab-access">Изменить пароль</a></li>
</ul>
<ul class="uk-switcher uk-margin-medium-top" id="tab-content">
<li>i am tab-profile</li>
<li>i am tab-verify</li>
<li>i am tab-access</li>
</ul>
where hash: true
- 允许在地址栏中更改哈希的参数(默认情况下在单击选项卡上 - event.preventDeault()
)
2.添加到uikit.jshash
的默认参数param(以下仅显示更改)
UI.component('tab', {
defaults: {
'target' : '>li:not(.uk-tab-responsive, .uk-disabled)',
'connect' : false,
'active' : 0,
'animation' : false,
'duration' : 200,
'swiping' : true,
'hash' : false
},
init: function() {
...
this.on("click.uk.tab", this.options.target, function(e) {
e.preventDefault();
if($this.options.hash) {
location.hash = $(e.currentTarget).find('a').attr('href');
}
...
});
...
},
...
});
3.通过哈希激活活动标签。向切换组件添加一些代码
UI.component('switcher', {
init: function() {
// init active tab by hash
if(document.location.hash.match(/^#?tab/gi)) {
UIkit.$("[href="+document.location.hash+"]").parents("li").addClass("uk-active");
}
...
},
...
});
uikit v.2.26.4。示例:http ://codepen.io/Intiligent/pen/RRqwAZ