AngularJS driective 封装 自动滚动插件
2024-10-16 02:48:01
1.ui-smooth-scroll.js文件内容
angular.module('app')
.directive('uiSmoothScroll', ['$location', '$anchorScroll', function($location, $anchorScroll) {
return {
restrict: 'AC',
scope: {
data:"="
},
template: '<div class="smooth-scroll-container">'+
'<ul class="smooth-scroll">'+
'<li ng-repeat="item in data">'+
'<a href="{{item.url}}" ><img ng-src="{{item.image}}" alt="" class="img-responsive" /></a>'+
'</li>'+
'</ul>'+
'</div>',
link: function(scope, element, attrs) {
setTimeout(function(){
var c = $(element).find('.smooth-scroll-container')[0];
var ul = $(c).find('.smooth-scroll')[0];
var lis = ul.getElementsByTagName('li');
var itemCount = lis.length,
width = lis[0].offsetWidth,
marquee = function() {
c.scrollLeft += 2;
if (c.scrollLeft > width) {
ul.appendChild(ul.getElementsByTagName('li')[0]);
c.scrollLeft = 0;
};
},
speed = 30;
ul.style.width = (width+13) * itemCount + 40 + 'px' ;
var timer = setInterval(marquee, speed);
c.onmouseover = function() {
clearInterval(timer);
};
c.onmouseout = function() {
timer = setInterval(marquee, speed);
};
},100); }
};
}]);
HTML 使用方法
<div ui-smooth-scroll data="slides">
Controller 中对 数据的绑定
$scope.slides = [{ image: 'img/qy_lunbo_01.png' },{ image: 'img/qy_lunbo_02.png' },{ image: 'img/qy_lunbo_03.png' },{ image: 'img/qy_lunbo_04.png' }];
搞定!
最新文章
- TFS二次开发系列:七、TFS二次开发的数据统计以PBI、Bug、Sprint等为例(一)
- 【HDU1257】最少拦截系统(贪心)
- 检查点(Checkpoint)过程如何处理未提交的事务
- OSIC Performance Bot
- Apache MINA 框架之Handler介绍
- python time模块函数
- Hibernate 多对多映射
- HDU 4125 Moles 段树+KMP
- Linux c 内存高速访问
- zabbix使用mysql数据库 对表分区
- CouchBase数据库-一个较新的、发展迅速的nosql数据库技术
- 《JavaScript高级程序设计》笔记:基本概念(三)
- 5-24 css内容的补充
- Oracle(二)在 Mysql 的基础上学习 Oracle
- NutzWk 开发框架
- partition
- 软件工程-XP方法十二个最佳实践
- FutureTask 源码解析
- 【LOJ】#2292. 「THUSC 2016」成绩单
- [转]【Delphi】 Thread.Queue与Synchronize的区别