AngularJS实现点击列表行变色与隔行换色的代码示例

作者:阿沐时间:2026-10-22 06:27:16浏览:598

本文详解AngularJS中利用ng-class指令实现列表交互效果的方法。通过绑定点击事件与focus属性,结合$index实现点击行高亮;同时使用ng-class-odd和ng-class-even完成隔行换色,提供完整HTML与JS代码参考。

本文分享了AngularJS实现点击列表行添加样式及变色效果的实例代码,供参考。

AngularJS列表点击变色与隔行换色实现

需求为点击列表某行时该行背景变灰,jQuery中通过addClass即可实现,AngularJS需采用特定方式。

AngularJS列表点击变色与隔行换色实现

接下来展示具体代码实现部分。


<!doctype html>
<html ng-app="a2_11">
<head>
  <title>添加元素样式</title>
  <script src="../Script/angular.min.js"
      type="text/javascript"></script>
<style type="text/css">
  body{font-size:12px}
  ul{margin:0;padding:0;width:408px;list-style-type:none}
  ul li{float:left;padding:5px 0}
  ul .odd{color:#0026ff}
  ul .even{color:red}
  ul .bold{font-weight:700}
  ul li span{float:left;padding:0 10px;width:52px}
  ul .focus{background-color:#ccc}
</style>
</head>
<body>
  <div ng-controller="c2_11">
    <ul>
      <li ng-class="{{bold}}">
        <span>序号</span>
        <span>姓名</span>
        <span>性别</span>
        <span>是否首条</span>
        <span>是否尾条</span>
      </li>
      <li ng-class-odd="'odd'"
        ng-class-even="'even'"
        ng-repeat=" stu in data"
        ng-click='li_click($index)'
        ng-class='{focus: $index==focus}'>
        <span>{{$index+1}}</span>
        <span>{{stu.name}}</span>
        <span>{{stu.sex}}</span>
        <span>{{$first?'是':'否'}}</span>
        <span>{{$last?'是':'否'}}</span>
      </li>
    </ul>
  </div>
  <script type="text/javascript">
    var a2_11 = angular.module('a2_11', []);
    a2_11.controller('c2_11', ['$scope', function ($scope) {
      $scope.bold = "bold";
      $scope.li_click = function (i) {
        $scope.focus = i;
      };
      $scope.data = [
      { name: "张明明", sex: "女" },
      { name: "李清思", sex: "女" },
      { name: "刘小华", sex: "男" },
      { name: "陈忠忠", sex: "男" }
      ];
    }]);
  </script>
</body>
</html>

1、首个<li>元素的ng-class绑定bold属性,实现指定样式加粗效果。

2、利用ng-class-odd与ng-class-even分别绑定奇偶行样式,实现隔行换色。

3、解释点击<li>元素变色的实现逻辑: ①在<li>单击事件中调用$scope定义的li_click()方法;

②该方法接收$index(行号)作为参数,并将focus属性值设置为$index;

③点击某行时,focus属性值更新为对应的$index;

④此时,<li>的ng-class通过key/value对象指定样式,因$index与focus值相同,即$index==focus返回true;

⑤由此可知,ng-class样式指令值变为focus;

⑥经上述分析与操作,成功实现点击<li>元素时添加背景样式的效果。

以上内容希望对学习有所帮助,感谢支持本站。

作者最新文章