var ScrollBar = function(opts) { this.defaults = { 'step': 0, 'speed': 4, // 滚动的速度 'initData': [], 'oldData':[], 'newData': [], 'lng': 10, // 数据存储长度 'times': 1000*60*30, // 最新告警时间段 }; this.timer = null; this.opts = $.extend({}, this.defaults, opts); this.checkWidth(); this.createScrollBar(); } ScrollBar.prototype.startTimer = function () { var that = this; clearInterval(this.timer); this.timer = setInterval(function() { that.changeScrollBar(); }, 100); }; ScrollBar.prototype.stopTimer = function() { clearInterval(this.timer); }; ScrollBar.prototype.changeScrollBar = function() { //console.info(this); var tab = $('.scroll-bar .scroll-content'); var tab1 = $('.scroll-bar .scroll-content .list-one'); var firstWidth = tab1.find('a').eq(0).width() - this.opts.speed + 26; if(tab.scrollLeft() >= firstWidth) { tab.scrollLeft(0); this.opts.step = 0; this.createScrollBar(); }else { this.opts.step += this.opts.speed; tab.scrollLeft(this.opts.step); } }; // 生成滚动块内容 ScrollBar.prototype.createScrollBar = function () { var tab = $('.scroll-bar .scroll-content') var tab1 = $('.scroll-bar .scroll-content .list-one'); var aList = tab1.find('a'); var aRemove = tab1.find('a').eq(0).next(); tab1.find('a').eq(0).remove(); var shiftWidth = tab1.width() - tab.width()-20; if(aRemove.width() < shiftWidth) { // 容器内部内容达到规定值就不会添加数据 return; } var $a = ""; if(this.opts.newData.length> 0) { var newHData = this.opts.newData.splice(0, 1); $a = this.checkTime(newHData[0]); // 监测时间返回指定的字符串 if(this.opts.oldData.length tab1.width()) { var $a = $(''); tab1.append($a); this.checkWidth(); } }; // 根据规定的时间返回特定的字符串 ScrollBar.prototype.checkTime = function(warnData) { var rs = ""; var _nowDate = new Date(); _nowDate = _nowDate.getTime(); var warnDate = new Date(warnData.alm_start_time); var shiftTime = _nowDate - warnDate; if(shiftTime < this.opts.times) { // 小于设置的时间段就是最新的告警 if(warnData.num == 0) { rs = $(''+warnData.note+''); addAttrToEleWarn(rs, warnData); }else { rs = $(''+warnData.note+''); addAttrToEquipWarn(rs, warnData); } }else { if(warnData.num == 0) { rs = $(''+warnData.note+''); addAttrToEleWarn(rs, warnData); }else { rs = $(''+warnData.note+''); addAttrToEquipWarn(rs, warnData); } } return rs; } // 给电池告警添加属性 function addAttrToEleWarn(eleWarn, data) { eleWarn.attr('data-batt-group-id', data.BattGroupId); // 电池组ID eleWarn.attr('data-alm-id', data.alm_id); // 告警ID eleWarn.attr('data-alm-start-time', data.alm_start_time); // 告警时间 eleWarn.attr('data-mon-num', data.MonNum); // 单体编号 } // 给设备告警添加属性 function addAttrToEquipWarn(equipWarn, data) { equipWarn.attr('data-alm-id', data.alm_id); equipWarn.attr('data-alm-signal-id', data.alm_signal_id); equipWarn.attr('data-alm-start-time', data.alm_start_time); }