var dotA = {
trim:function(string){
return string.replace(/^\s+|\s+$/g,'');
},
/* id className or Dom Elements */
one:function(selector){
selector = this.trim(selector);
if(typeof selector == 'string')
if(selector.indexOf('#') > -1){
var aSel = selector.split("#");
return document.getElementById(aSel[1]);
}
else if(selector.indexOf('.') > -1){
var aSel = selector.split(".");
var tagName = aSel[0];
var className = aSel[1];
var elements = document.getElementsByTagName(tagName || "*");
if(elements)
for(var i = 0 , len = elements.length ; i < len ;i++){
if(elements[i].className.indexOf(className) > -1){
return elements[i];
break;
}
}
else
return null;
}else{
return document.getElementsByTagName(selector)[0];
}
else
return selector;
},
/* add event to elements method */
addEvent:function(el, type, fn, capture) {
if (el && el.addEventListener) {
el.addEventListener(type, fn, capture);
} else if (el && el.attachEvent) {
el.attachEvent("on" + type, fn);
}
},
/*
add a class to a elements
el:id or htmlElement
*/
addClass:function(el,className){
el = (typeof el == 'string') ? this.one('#' + el) : el;
if(!(el.className.indexOf(className) > -1)){
el.className += " "+className;
el.className = dotA.trim(el.className);
}
},
removeClass:function(el,className){
el = (typeof el == 'string') ? this.one('#' + el) : el;
el.className = dotA.trim(el.className.replace(className,''));
},
hasClass:function(el,className){
el = (typeof el == 'string') ? this.one('#' + el) : el;
if((el.className.indexOf(className) > -1)){
return true
}else
return false
},
stopEvent:function(e){
if(e.target){
e.preventDefault()
}else{
e.returnValue = false;
}
}
};
dotA.tabView = {
tab_list_selected:null,
tab_panel_selected:null,
selected_index:0,
toggleTab:function(e){
e = e.srcElement || e.target;
if(e.parentNode.tagName == 'LI'){
var liTag = e.parentNode;
if(!dotA.hasClass(liTag,'dota-tablist-selected')){
dotA.removeClass(tab_list_selected,'dota-tablist-selected');
dotA.addClass(liTag,'dota-tablist-selected');
tab_list_selected = liTag;
dotA.removeClass(tab_panel_selected,'dota-tab-selected');
dotA.addClass(dotA.one(e.getAttribute('href')),'dota-tab-selected');
tab_panel_selected = dotA.one(e.getAttribute('href'));
}
}
return false;
},
/* el is a selector or a htmlElement*/
render:function(el){
el = (typeof el == 'string') ? dotA.one(el) : el;
/* add class for elements */
dotA.addClass(el,'dota-tabview');
var ul = el.getElementsByTagName('ul')[0];
dotA.addClass(ul,'dota-tabview-list');
var div = el.getElementsByTagName('div')[0];
dotA.addClass(div,'dota-tabview-panel');
var tabpanels = div.children;
for(var i = 0 ; i < tabpanels.length ; i++){
dotA.addClass(tabpanels[i],'dota-tab-panel');
};
var ulist = ul.children;
dotA.addClass(ulist[this.selected_index],'dota-tablist-selected');
tab_list_selected = ulist[this.selected_index];
dotA.addClass(tabpanels[this.selected_index],'dota-tab-selected');
tab_panel_selected = tabpanels[this.selected_index];
dotA.addEvent(ul,'click',dotA.tabView.toggleTab);
},
setCurrent:function(index){
this.selected_index = index;
}
};
dotA.tabView.setCurrent(1);
dotA.tabView.render('#tabview');
附件里面就是個示例
分享到:
相关推荐
3. **数据绑定**:在组件的`data`对象中定义tab选项的数据,包括标签文本、对应的路由或页面组件等。例如: ```javascript data() { return { tabs: [ { name: '首页', component: 'HomeView' }, { name: '...
结合`TabLayout`,我们可以轻松创建具有Tab标签和内容视图切换的界面。`TabLayout`是Android Design Support Library的一部分,它提供了美观且易于定制的Tab界面。 接下来,让我们分析"Android fleep滑动切换tab...
4. 自定义`TabLayout`的样式,包括标签文字、图标等,可以使用`TabLayout.Tab`对象进行定制。 在实际开发中,我们可能还需要处理一些高级功能,如动态加载内容、下拉刷新、滑动回弹效果、动画过渡等。此外,为了...
- **初始化数据**:在`data`对象中定义了`selected`和`selected1`两个变量,用于记录当前选中的标签。 - **事件处理函数**:分别为两个标签定义了点击事件处理函数`selected`和`selected1`,在函数内部通过`setData`...
4. **BottomNavigationView**:虽然不是传统意义上的Tab,但BottomNavigationView也是Android应用中用来切换不同页面的组件,常位于屏幕底部,与Tab有类似的功能。 5. **Jetpack Navigation Component**:作为...
《jQuery Tab切换详解》 在Web开发中,Tab切换是一种常见的用户界面元素,它能够有效地组织和展示大量的信息,提供良好的用户体验。jQuery作为一款强大的JavaScript库,提供了丰富的API和插件,使得实现Tab切换功能...
"在VC窗口中实现TAB视图切换功能"是一个非常实用的技术,它允许用户通过点击不同的Tab页来切换不同的视图(View),从而在不增加额外窗口的情况下,展示多种类型的信息。 首先,我们要理解VC++中的MFC(Microsoft ...
在iOS应用开发中,Tab View Controller(标签视图控制器)是一种常见的用户界面设计,它允许用户在多个相互关联的视图之间轻松切换。这个“IOS应用源码之位于顶部的黑酷tab view视图demo”提供了实现这种效果的示例...
微信小程序中的滑动切换tab通常基于`<scroll-view>`组件实现。`<scroll-view>`允许用户在指定区域内滚动查看内容,结合CSS样式设置,可以创建一个水平滑动的容器,每个tab对应一个子节点。 2. **数据管理** 在`...
学习如何创建和管理Fragment,以及如何在`BottomNavigationView`的点击事件中切换Fragment,是实现自定义tab切换的关键。 3. **Menu资源与OnNavigationItemSelectedListener**:在XML布局文件中,我们可以定义一个...
首先,Tab Bar Controller(标签栏控制器)是UIViewController的一个子类,它提供了在多个视图控制器之间切换的界面。在iOS应用设计中,它通常位于屏幕底部,显示一系列的图标或文字标签,用户可以通过点击这些标签...
总结起来,实现底部导航栏Tab切换的关键在于正确设置导航栏的菜单项,处理点击事件,以及在事件响应中动态加载和切换对应的界面内容。同时,自定义过渡动画可以让用户体验更加流畅自然。通过以上步骤,你就能创建出...
`TabLayout`用于展示Tab标签,`ViewPager`则负责处理页面滑动和页面之间的切换。 1. 添加依赖库: 在项目的`build.gradle`(Module)文件中,确保已添加以下依赖库: ```groovy dependencies { implementation '...
在iOS开发中,创建一个美观且功能强大的顶部Tab View视图是常见的需求,这通常用于在应用程序中提供多个主要功能间的切换。这个“IOS应用源码——位于顶部的黑酷tab view视图demo”就是一个很好的示例,展示了如何...
tab.addClass('in-view').siblings('.tab').removeClass('in-view'); } else { tab.removeClass('in-view'); } }); }); ``` 最后,我们可能还需要添加一些CSS样式来美化我们的Tab选项卡: ```css .tab-nav { ...
Tab View在iOS开发中是一个常见的用户界面元素,用于展示多个可切换的视图或控制器,这个设计可能具有独特的视觉效果和交互体验。 【描述解析】 "前两年IOS应用源码-主要是用于毕业设计学习的。" 这段描述表明该...
综上所述,要实现“点击手机底部的标签时 切换相对应的内容界面”的功能,你需要结合`Fragment`、TabLayout或BottomNavigationView、FragmentManager以及Activity等组件和概念,通过编程实现动态的界面切换。...
下面将详细阐述这两个组件以及如何通过它们来实现一个动态切换的Tab标签系统。 `ViewPager`是Android SDK中的一个强大组件,它允许用户通过左右滑动来浏览多个页面。每个页面都可以是一个独立的Fragment或Activity...
通过`TabLayout.newTab().setCustomView()`方法可以设置自定义的`View`,并在此基础上添加动画元素。 5. **适配器与数据绑定** 在`PagerAdapter`中,我们需要实现`instantiateItem()`和`destroyItem()`方法,用于...