/* bxcarousel v1.0 plugin developed by: steven wanderski */ (function($) { $.fn.bxcarousel = function(options) { var defaults = { move: 4, display_num: 4, speed: 500, margin: 10, auto: false, auto_interval: 2000, auto_dir: 'next', auto_hover: false, next_text: 'next', next_image: '', prev_text: 'prev', prev_image: '', controls: true }; var options = $.extend(defaults, options); return this.each(function() { var $this = $(this); var li = $this.find('li'); var first = 0; var fe = 0; var last = options.display_num - 1; var le = options.display_num - 1; var is_working = false; var j = ''; var clicked = false; li.css({ 'float': 'left', 'liststyle': 'none', 'marginright': options.margin }); var ow = li.outerwidth(true); var wrap_width = (ow * options.display_num) - options.margin; var seg = ow * options.move; $this.wrap('
').width(999999999999); if (options.controls) { if (options.next_image != '' || options.prev_image != '') { var controls = ''; } else { var controls = ''; } } $this.parent('.bx_container').wrap('
').css({ 'position': 'relative', 'width': wrap_width, 'overflow': 'hidden' }).before(controls); var w = li.slice(0, options.display_num).clone(); var last_appended = (options.display_num + options.move) - 1; $this.empty().append(w); get_p(); get_a(); $this.css({ 'position': 'relative', 'left': -(seg) }); $this.parent().siblings('.next').click(function() { slide_next(); clearinterval(j); clicked = true; return false; }); $this.parent().siblings('.prev').click(function() { slide_prev(); clearinterval(j); clicked = true; return false; }); if (options.auto) { start_slide(); if (options.auto_hover && clicked != true) { $this.find('li').on('mouseenter', function() { if (!clicked) { clearinterval(j); } }); $this.find('li').on('mouseleave', function() { if (!clicked) { start_slide(); } }); } } function start_slide() { if (options.auto_dir == 'next') { j = setinterval(function() { slide_next() }, options.auto_interval); } else { j = setinterval(function() { slide_prev() }, options.auto_interval); } } function slide_next() { if (!is_working) { is_working = true; set_pos('next'); $this.animate({ left: '-=' + seg }, options.speed, function() { $this.find('li').slice(0, options.move).remove(); $this.css('left', -(seg)); get_a(); is_working = false; }); } countdowntime(); } function slide_prev() { if (!is_working) { is_working = true; set_pos('prev'); $this.animate({ left: '+=' + seg }, options.speed, function() { $this.find('li').slice( - options.move).remove(); $this.css('left', -(seg)); get_p(); is_working = false; }); } countdowntime(); } function countdowntime(){ $('.the_last li').each(function(index,value){ var nowdate=new date(); //开始时间 var plandate=new date($(value).find('.the_last span').html()); //结束时间 var differ=plandate.gettime()-nowdate.gettime(); //时间差的毫秒数 //计算出相差天数 var days=math.floor(differ/(24*3600*1000)); if(days<0){ $(value).find('.the_last').html('课程进行中'); }else{ $(value).find('.the_last span').html(days); } }); } function get_a() { var str = new array(); var lix = li.clone(); le = last; for (i = 0; i < options.move; i++) { le++ if (lix[le] != undefined) { str[i] = $(lix[le]); } else { le = 0; str[i] = $(lix[le]); } } $.each(str, function(index) { $this.append(str[index][0]); }); } function get_p() { var str = new array(); var lix = li.clone(); fe = first; for (i = 0; i < options.move; i++) { fe-- if (lix[fe] != undefined) { str[i] = $(lix[fe]); } else { fe = li.length - 1; str[i] = $(lix[fe]); } } $.each(str, function(index) { $this.prepend(str[index][0]); }); } function set_pos(dir) { if (dir == 'next') { first += options.move; if (first >= li.length) { first = first % li.length; } last += options.move; if (last >= li.length) { last = last % li.length; } } else if (dir == 'prev') { first -= options.move; if (first < 0) { first = li.length + first; } last -= options.move; if (last < 0) { last = li.length + last; } } } }); } })(jquery);