/* *************************************************************************** */ /* Proyecto: FCC */ /* Título: slider.js */ /* Desripción: Javascript para el slider de noticias. */ /* *************************************************************************** */ var is_ie7 = $.browser.msie && (parseInt($.browser.version) <= 7); var slider = { item_sel: 0, item_count: 0, item_width: 0, item_offset: 0, item_bk_property: '', left: -1, actualizarContador: function() { $('.mod_slider').find('.mod_slider_items_sel').html(parseInt(this.item_sel + 1) + ' - ' + parseInt(this.item_sel + 2)); $('.mod_slider').find('.mod_slider_items_count').html(this.item_count); }, recalcularValores: function() { this.calcularLeftOffset(); this.item_count = $('.mod_slider').find('.mod_slider_item').length; this.item_width = $('.mod_slider').width() / 2 + 1; $('.mod_slider_wrapper').animate({ left: -slider.item_sel * slider.item_width + slider.item_offset }, 0); }, establecerBkItems: function() { $('.mod_slider').find('.mod_slider_item').each(function() { $(this).css('background', 'none'); }); $('.mod_slider .mod_slider_item:nth-child(' + parseInt(slider.item_sel + 2) + ')').css('background', 'url(' + contexto + ' "wcm/img/modulos/mod_slider_item_bk.png") no-repeat center left'); }, calcularLeftOffset: function() { if ($.browser.mozilla) { this.item_offset = this.item_sel; } if ($.browser.webkit) { this.item_offset = this.item_sel * 1.5; } if ($.browser.opera) { this.item_offset = this.item_sel; } if ($.browser.msie) { this.item_offset = this.item_sel; } if ($.browser.msie && (parseInt($.browser.version) <= 7)) { this.item_offset = this.item_sel * 1.5; }; }, initializeAcciones: function() { // Controlamos si se modifica el font-size del body, en cuyo caso recalculamos variables y reposicionamos el slider. if (!$.browser.msie) { $('body').watch('font-size', function() { slider.recalcularValores()}); } // Evento onClick para visualizar la noticia anterior del slider. $('#mod_slider_prev').click(function(){ if (slider.item_sel > 0) { slider.item_sel--; slider.calcularLeftOffset(); $('.mod_slider .mod_slider_item:nth-child(' + parseInt(slider.item_sel + 2) + ')').css('background', 'url(' + contexto + '"wcm/img/modulos/mod_slider_item_bk.png") no-repeat center left'); $('.mod_slider_wrapper').animate({ left: -slider.item_sel * slider.item_width + slider.item_offset }, 700, function(){ slider.actualizarContador(); slider.establecerBkItems(); }); if ($('#mod_slider_next').attr('class').indexOf('activo') == -1) {$('#mod_slider_next').toggleClass('activo') }; if (slider.item_sel == 0) {$('#mod_slider_prev').toggleClass('activo') }; } }); // Evento onClick para visualizar la noticia siguiente del slider. $('#mod_slider_next').click(function(){ if (slider.item_sel < slider.item_count - 2) { slider.item_sel++; slider.calcularLeftOffset(); $('.mod_slider .mod_slider_item:nth-child(' + parseInt(slider.item_sel + 2) + ')').css('background', 'url(' + contexto + '"wcm/img/modulos/mod_slider_item_bk.png") no-repeat center left'); $('.mod_slider_wrapper').animate({ left: -slider.item_sel * slider.item_width + slider.item_offset }, 700, function(){ slider.actualizarContador(); slider.establecerBkItems(); }); if ($('#mod_slider_prev').attr('class').indexOf('activo') == -1) {$('#mod_slider_prev').toggleClass('activo') }; if (slider.item_sel >= slider.item_count - 2) {$('#mod_slider_next').toggleClass('activo') }; } }); // Evento onMouseOver para seleccionar diferentes elementos al mismo tiempo. $('.mod_slider_item a').mouseover(function(){ if ($(this).parents('ul.lista').length == 0) { $(this).parents('li.mod_slider_item').find('h4').toggleClass('activo'); if ($(this).attr('class').indexOf('lnk_mas_info') == -1) { $(this).parents('li.mod_slider_item').find('.lnk_mas_info').toggleClass('activo'); } } }); // Evento onMouseOut para deseleccionar diferentes elementos al mismo tiempo. $('.mod_slider_item a').mouseout(function(){ if ($(this).parents('ul.lista').length == 0) { $(this).parents('li.mod_slider_item').find('h4').toggleClass('activo'); if ($(this).attr('class').indexOf('lnk_mas_info') == -1) { $(this).parents('li.mod_slider_item').find('.lnk_mas_info').toggleClass('activo'); } } }); }, initializeVariables: function() { this.item_count = $('.mod_slider').find('.mod_slider_item').length; this.item_width = $('.mod_slider').width() / 2 + 1; this.establecerBkItems(); if (this.item_count > 2) { $('#mod_slider_next').toggleClass('activo'); } }, initialize: function() { this.initializeVariables(); this.initializeAcciones(); this.actualizarContador(); } }; $(document).ready(function () { // Inicializamos el slider si está presente en la página. if ($('.mod_slider').length > 0) { slider.initialize(); } });