angularjs实现tab切换

angularjs实现tab切换

<!DOCTYPE html>
<html ng-app="myApp" >
	<head>
		<meta charset="UTF-8">
		<title></title>
		<style type="text/css">
			*{
				margin: 0;
				padding: 0;
			}
			.box{
				width:300px;
				margin:20px auto;
				height:200px;
			}
			#tab1 .first{
				background: #f40;
				color:#fff;
			}
			a{
				display:inline-block;
				width:75px;
				height:25px;
				line-height: 25px;
				color:black;
				text-decoration: none;
				border:0px solid gray;
				text-align: center;
			}
			#tab1 div{
				width: 300px;
				height: 200px;
				border: 1px solid #ddd;
				display: none;
			}
			#tab1 img{
				width: 100px;
				height: 100px;
				margin:0 auto;
			}
		</style>
	</head>
	<body ng-controller="show">
	<div class="box">
		<gr-tab gr-id="tab1" gr-data="data1" ></gr-tab>
	</div>	
	<!-- <gr-tab gr-id="tab1" gr-data="data1" ></gr-tab> -->
		<script src="js/jquery-1.11.3.js" type="text/javascript" charset="utf-8"></script>
		<script src="http://cdn.static.runoob.com/libs/angular.js/1.4.6/angular.min.js"></script>
		<script type="text/javascript">
			var app = angular.module('myApp',[]);
			app.directive('grTab',function(){  //自定义指令
				return {
					restrict : 'E', //定义标签属性
					templateUrl : 'tabqh1.html', //外部引入html文件
					replace : true, //把当前自定义的指令标签替换成引入的标签
					scope : { //作用域隔离 : 每个作用域执行的是自己的功能
						grId : '@', //拿所有grId的字符串
						grData : '=' //拿所有grData属性的变量名
					},
					link : function( scope , element , attr ){ //dom操作
						element.delegate('a','click',function(){
							$(this).addClass('first').siblings('a').removeClass('first');
							$(this).siblings('div').eq($(this).index()).css('display','block').siblings('div').css('display','none')
						});
					}
				};
			})
			app.controller('show',['$scope',function($scope){
				$scope.data1 = [
					{'val':'小花','title':'它是一个比较帅气的男孩儿',"img":"img/img1.png"},
					{'val':'小兰','title':'它有着一张跟年龄不服的脸庞',"img":"img/img2.png"},
					{'val':'小光','title':'它是一个比较任性的男孩儿',"img":"img/img3.png"},
					{'val':'小赫','title':'它是个逗比',"img":"img/img4.png"}
				]
				
			}]);
			
		</script>	
	</body>
</html>
tabqh1.html

<div id="{{grId}}">
	<a  href="javascript:;" ng-repeat="attr in grData" ng-class="{first:$first}">{{attr.val}}</a>
	<div ng-repeat="attr in grData" ng-style="{display:$first?'block':'none'}">
		<img ng-src="{{attr.img}}"/> 
		<p>{{attr.title}}</p>
	</div>
</div>





  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以通过添加/删除 CSS 类来切换样式,并使用 ngClass 指令绑定到相应的按钮。 首先,在 HTML 中定义按钮: ```html <button ng-click="activeTab = 'tab1'" [ngClass]="{'active': activeTab === 'tab1'}">Tab 1</button> <button ng-click="activeTab = 'tab2'" [ngClass]="{'active': activeTab === 'tab2'}">Tab 2</button> <button ng-click="activeTab = 'tab3'" [ngClass]="{'active': activeTab === 'tab3'}">Tab 3</button> ``` 在上面的代码中,我们使用了 ngClass 指令来根据条件添加/删除 CSS 类。activeTab 是一个作用域变量,用于跟踪当前选定的选项卡。 接下来,定义 CSS 样式: ```css button { border: none; background-color: #ddd; color: #333; padding: 10px; margin-right: 10px; cursor: pointer; } button.active { background-color: #333; color: #fff; } ``` 这里定义了两个样式,一个是常规按钮样式,一个是选定按钮时的样式。当按钮被点击时,ngClass 指令会根据条件添加或删除 active 类,从而切换样式。 需要注意的是,ngClass 指令接受一个对象作为其值,该对象的属性名是 CSS 类名,属性值是一个布尔值,表示是否应该应用该类。在上面的代码中,我们使用了一个三元运算符来确定 active 类是否应该应用于按钮。 另外,如果您需要更多的动态样式,您也可以使用 ngStyle 指令,它接受一个对象作为其值,该对象的属性名是 CSS 属性名,属性值是一个表达式,表示该属性的值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值