分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 技术分享

angularjs1 制作自定义轮播图(汉字导航)

发布时间:2023-09-06 01:10责任编辑:彭小芳关键词:js轮播图

本来想用swiper插件的,可是需求居然说要汉字当导航栏这就没办法了,只能自己写。

directive

// 自定义指令: Home页面的轮播图 app.directive(‘swiperImg‘, ["$interval", function ($interval) { ???return { ???????restrict: ‘E‘, ???????replace: true, ???????scope: { imgList: "=", tabList: "=", autoplay : "="}, ???????template: ‘<div class="swiper-container"><ul class="swiper-wrapper" >‘ + ???????‘<li class="swiper-wrapper-items" ng-repeat="item in imgList" ng-class="{ imgActive : isSelImg(item) }"><img ng-src="{{item.src}}" /></li>‘ + ???????‘</ul><ul class="swiper-pagination"><li class="pagination-item" ng-repeat="item in tabList" ng-mouseover="hoverTab($index)" ng-mouseleave="leaveTab($index)" ng-class="{ imgActive : isSelImg(item) }">{{ item.name }}</li></ul></div>‘, ???????link: function ($scope, elem, attr) { ???????????var i = 0; ???????????var imgInterval; ???????????$scope.hoverTab = function (index) { ???????????????$scope.hoverImg = index; ???????????????$scope.isSelImg(index); ???????????????i = index; ???????????????$interval.cancel(imgInterval); ???????????} ???????????$scope.leaveTab = function (index) { ???????????????imgInterval = $interval(function () { ???????????????????if (i == $scope.imgList.length) { ???????????????????????i = 0; ???????????????????} ???????????????????$scope.hoverImg = i; ???????????????????$scope.isSelImg(i); ???????????????????i++; ???????????????}, $scope.autoplay); ???????????} ???????????imgInterval = $interval(function () { ???????????????if (i > 3) { ???????????????????i = 0; ???????????????} ???????????????$scope.hoverImg = i; ???????????????$scope.isSelImg(i); ???????????????i++; ???????????}, $scope.autoplay); ???????????$scope.isSelImg = function (item) { ???????????????return $scope.hoverImg == item.id; ???????????} ???????????$scope.hoverImg = i; ???????????$scope.isSelImg(i); ???????} ???};}]);

CSS

.swiper-container { ???margin: 0 auto; ???position: relative; ???overflow: hidden; ???z-index: 1; ???width: 100%; ???height: 100%;}.swiper-wrapper{ ???height: 200px; ???width: 100%;}.swiper-wrapper-items { ???height: 100%; ???position: absolute; ???width: 100%; ???opacity: 0; ???transition: opacity .8s; ???-moz-transition: opacity .8s; ???-webkit-transition: opacity .8s; ???-o-transition: opacity .8s;}.imgActive.swiper-wrapper-items { ???opacity: 1;}.swiper-container img { ???width: 100%; ???height: 100%;}.swiper-pagination { ???display: box; ???display: -webkit-box; ???display: -moz-box; ???display: -ms-flexbox; ???display: -webkit-flex; ???display: flex; ???bottom: 0 !important; ???position: absolute; ???left: 0; ???right: 0; ???text-align: center; ???z-index: 12;}.pagination-item:first-child { ???background-color: rgba(60,141,188,0.5);}.pagination-item:nth-child(2) { ???background-color: rgba(202,64,64,0.5);}.pagination-item:nth-child(3) { ???background-color: rgba(255,134,4,0.5);}.pagination-item:last-child { ???background-color: rgba(34,172,56,0.5);}.imgActive.pagination-item:first-child { ???background-color: rgba(60,141,188,1);}.imgActive.pagination-item:nth-child(2) { ???background-color: rgba(202,64,64,1);}.imgActive.pagination-item:nth-child(3) { ???background-color: rgba(255,134,4,1);}.imgActive.pagination-item:last-child { ???background-color: rgba(34,172,56,1);}.pagination-item { ???-webkit-box-flex: 1; ???-moz-box-flex: 1; ???-webkit-flex: 1; ???-ms-flex: 1; ???flex: 1; ???-webkit-user-select: none; /* Chrome all / Safari all /opera15+*/ ???-moz-user-select: none; /* Firefox all */ ???-ms-user-select: none; /* IE 10+ */ ???user-select: none; ???cursor: pointer; ???color: #fff; ???padding: 10px; ???transition: all .8s; ???-moz-transition: all .8s; ???-webkit-transition: all .8s; ???-o-transition: all .8s;}

引用

<swiper-img img-list="imgList" tab-list="tabList" autoplay="autoplay"></swiper-img>

控制器

$scope.tabList = [{ id: 0, name: "开拓创新" }, { id: 1, name: "高效务实" }, { id: 2, name: "利益客户" }, { id: 3, name: "成就员工" }]; ???????$scope.imgList = [{ id: 0, src: "@Url.Content("~/Content/images/u3.jpg")" }, { id: 1, src: "@Url.Content("~/Content/images/bg1.png")" }, ???????????{ id: 2, src: "@Url.Content("~/Content/images/bg2.png")" }, { id: 3, src: "@Url.Content("~/Content/images/bg3.png")" }]; ???????$scope.autoplay = 5000;

tabList 是汉字导航栏

imgList 是图片链接数组

autoplay 是切换时间

 效果图

好的,完成了。

angularjs1 制作自定义轮播图(汉字导航)

原文地址:http://www.cnblogs.com/huaji666/p/7503906.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved