El regreso de ‘Cifras y Letras’ ha sido motivo de celebración para los aficionados de los desafíos intelectuales. Esta nueva etapa, que se emite en La 2, ha venido con importantes novedades: un plató renovado, herramientas digitales que sustituyen al clásico lápiz y papel, y la incorporación de un equipo de expertos que promete llevar el formato a nuevas alturas. Entre ellos destaca David Calle, un ingeniero de telecomunicaciones, profesor y divulgador que comparte plató con Linguriosa, como se conoce a Elena Herraiz.
David Calle: su edad y dónde vive
Actualmente es el encargado de las matemáticas del programa. David Calle nació el 15 de diciembre de 1972 en Coslada (Madrid), así que tiene 52 años. Su camino profesional ha sido todo menos convencional.
¿Qué estudió David Calle?
De joven soñaba con trabajar en el sector de las telecomunicaciones, un sueño que comenzó a materializarse cuando ingresó en la Universidad Politécnica de Madrid para estudiar Ingeniería de Telecomunicaciones.
Sin embargo, sus años universitarios no estuvieron exentos de obstáculos. En primer curso, dos suspensos casi lo llevan a abandonar su carrera. Para mantenerse económicamente en varios empleos, desde profesor en academias hasta labores en una lavandería hospitalaria. Estas experiencias, aunque duras, le forjaron un carácter perseverante que sería clave en su futuro.
Tras completar su licenciatura inició su carrera profesional como becario en IBM, una experiencia que le abrió las puertas a otras oportunidades en empresas tecnológicas. Entre 1996 y 1999 trabajó en Siemens como gerente de logística para el despliegue de la red de Amena, uno de los primeros operadores de telefonía móvil en España. Posteriormente se convirtió en ingeniero de radiofrecuencia para el proyecto Xfera, donde lideró el diseño y la implementación de redes 3G en varias regiones del país.
Los proyectos de David Calle
A pesar de su éxito en el sector tecnológico, una crisis en el mercado laboral en los años 2000 lo dejó sin empleo. Fue entonces cuando David tomó una decisión que cambiaría su vida: dedicarse a la enseñanza. Comenzó impartiendo clases en academias, pero pronto se dio cuenta de que las horas de clase no eran suficientes para que sus alumnos comprendieran materias como matemáticas, física y química.
Consciente de las limitaciones del aula tradicional, David Calle decidió explorar nuevas formas de enseñar. En 2011 fundó ‘Unicoos’, una plataforma de aprendizaje online que combina videos educativos, ejercicios y explicaciones claras para estudiantes de Secundaria, Bachillerato y Universidad.
A través de su canal de YouTube, que hoy cuenta con más de 1.4 millones de suscriptores, ha ayudado a miles de jóvenes de todo el mundo a superar sus dificultades en materias técnicas. Su estilo cercano y su habilidad para simplificar conceptos complejos le han convertido en una figura muy querida en el ámbito educativo.
Además, su iniciativa no se limita a la enseñanza virtual. En la página web de ‘Unicoos’, los usuarios pueden acceder a recursos complementarios y participar en foros de discusión, creando una comunidad activa de aprendizaje.
Ha escrito un libro
El impacto de David Calle en el mundo de la educación no ha pasado desapercibido. En 2017 fue finalista del Global Teacher Prize, un prestigioso galardón conocido como el «Nobel de la enseñanza», que premia a los educadores más innovadores y comprometidos del mundo.
Ese mismo año publicó su primer libro, ‘No te rindas nunca’, una obra en la que comparte su filosofía de vida y su enfoque para superar adversidades. Al año siguiente lanzó ‘¿Cuánto pesan las nubes?’, un libro que combina ciencia y curiosidades para despertar la pasión por el conocimiento en los lectores.
En 2024 David Calle se unió al renovado equipo de ‘Cifras y Letras’, ocupando el puesto de experto en matemáticas. Su incorporación ha sido celebrada por los espectadores, muchos de los cuales ya lo conocían por su trabajo en ‘Unicoos’. Su presencia en el programa no solo aporta rigor técnico, sino también una capacidad única para conectar con el público.
‘Cirfas y Letras’ ha cambiado la vida de David Calle
El formato de ‘Cifras y Letras’ ha evolucionado para adaptarse a los tiempos modernos. Ahora los participantes utilizan tablets para realizar sus cálculos y formar palabras, dejando atrás el tradicional lápiz y papel. Este cambio tecnológico refleja la visión de Calle sobre la enseñanza: aprovechar las herramientas digitales para hacer que el aprendizaje sea más accesible y eficiente.
¿Cuánto cobra David Calle en ‘Cifras y Letras’?
RTVE ha revelado el salario de David Calle, ingeniero en telecomunicaciones y colaborador del mítico programa de La 2, «Cifras y Letras». Según el portal de transparencia de la cadena, su sueldo asciende a 57.750 euros.
¿Cómo es en su vida personal?
Aunque David Calle es muy reservado en cuanto a su vida privada, se sabe que está casado y tiene dos hijos. En varias entrevistas ha mencionado cómo su familia ha sido un pilar fundamental en su trayectoria, apoyándolo en cada paso de su carrera.
A pesar de su éxito sigue manteniendo un enfoque práctico. Su objetivo principal no es la fama, sino seguir ayudando a los estudiantes a superar sus retos académicos y demostrar que todos, con esfuerzo y dedicación, pueden alcanzar sus metas.
El protagonista de nuestra noticia es mucho más que un ingeniero o un profesor: es un ejemplo de superación y una inspiración para quienes buscan cambiar sus vidas a través de la educación. Su historia demuestra que los momentos difíciles pueden ser el punto de partida para logros extraordinarios y que la verdadera satisfacción radica en marcar una diferencia en la vida de los demás.
El regreso de ‘Cifras y Letras’ ha sido motivo de celebración para los aficionados de los desafíos intelectuales. Esta nueva etapa, que se emite en La 2, ha venido con importantes novedades: un plató renovado, herramientas digitales que sustituyen al clásico lápiz y papel, y la incorporación de un equipo de expertos que promete llevar … Continuar leyendo «Todo sobre David Calle, el experto en matemáticas de ‘Cifras y Letras’: su edad, su pareja, su carrera…» Todo sobre David Calle, el experto en matemáticas de ‘Cifras y Letras’: su edad, su pareja, su carrera…
Cerrar sesión
`);
let isIExplore = (/MSIE (d+.d+);/.test(navigator.userAgent) || !!navigator.userAgent.match(/Trident.*rv:11./) || navigator.userAgent.indexOf(‘Edge’) !== -1);
if (isIExplore)
$(‘.nav-socios-menu’).css(‘margin-top’, ‘0px’);
function goToChangePasswordModal()
window.location.href=»#changeModal»;
function activeChangePasswordForm()
printChangePasswordForm();
$(‘#okChangePasswordBtn’).on(‘click’, function (event)
event.preventDefault();
$(‘.ok-form-success, .ok-form-email-error, .ok-form-password-error’).addClass(‘hidden’);
let baseUrl = window.location.protocol + ‘//’ + window.location.hostname + ‘/socios/client-password’;
let email = $(‘#okChangePasswordform’).serializeArray()[0].value;
let password = $(‘#okChangePasswordform’).serializeArray()[1].value;
let repeatPassword = $(‘#okChangePasswordform’).serializeArray()[2].value;
if(validateEmail(email))
if(validatePassword(password, repeatPassword))
$.post(baseUrl, $(‘#okChangePasswordform’).serialize()).done(function (data)
$(‘.ok-form-success’).removeClass(‘hidden’);
).fail(function(data)
$(‘.ok-form-success’).removeClass(‘hidden’);
);
else
$(‘.ok-form-password-error’).removeClass(‘hidden’);
else
$(‘.ok-form-email-error’).removeClass(‘hidden’);
);
function printChangePasswordForm()
let changePasswordForm = ‘
‘
‘Xn’ +
‘
Cambiar password en el portal
n’ +
‘ n’ +
‘
‘
Nueva contraseña establecida
n’ +
‘
Formato de correo electrónico incorrecto
n’ +
‘
Las contraseñas deben ser iguales y contener un mínimo de 8 caracteres
n’ +
‘n’ +
‘
n’ +
‘
n’ +
‘
‘;
if($(«#changePasswordModal»).length == 0)
$( «body» ).append(changePasswordForm);
function activeLoginForm()
if ($(«.socios-link»).length)
$(‘.nav-socios-menu, .nav-socios-menu-content’).addClass(‘hidden’);
$(‘.socios-link’).on(‘click’, function (event)
event.preventDefault();
createLoginForm();
createRecoveryForm();
$(‘.ok-form-success’).addClass(‘hidden’);
goToLoginModal();
$(«#email»).focus();
$(‘#closeLoginFormLink’).on(‘click’, function(event)
event.stopPropagation();
var divLoginModal = document.getElementById(‘loginModal’);
divLoginModal.parentNode.removeChild(divLoginModal);
var divRecoveryModal = document.getElementById(‘recoveryModal’);
divRecoveryModal.parentNode.removeChild(divRecoveryModal);
);
$(‘#closeRecoveryFormLink’).on(‘click’, function(event)
event.stopPropagation();
var divLoginModal = document.getElementById(‘loginModal’);
divLoginModal.parentNode.removeChild(divLoginModal);
var divRecoveryModal = document.getElementById(‘recoveryModal’);
divRecoveryModal.parentNode.removeChild(divRecoveryModal);
);
);
function createLoginForm()
printLoginForm();
initRememberMe();
$(‘.ok-form-error ‘).addClass(‘hidden’);
$(‘#okLoginBtn’).on(‘click’, function (event)
event.stopPropagation();
event.preventDefault();
$(‘.ok-form-error ‘).addClass(‘hidden’);
$(‘.loginLoader’).removeClass(‘hidden’);
let baseUrl = window.location.protocol + ‘//’ + window.location.hostname + ‘/socios/client-login’;
$.post(baseUrl, $(‘#okLoginForm’).serialize()).done(function( data ) [];
window.didomiOnReady.push(function (Didomi)
let status = Didomi.getUserStatus();
if (status.vendors.consent.enabled.length === 0) //Rechazar vendors en el cmp. Si no tiene vendors, significa que el login lo fuerza el cmp
Didomi.setUserDisagreeToAll();
);
window.location.replace(window.location.protocol + ‘//’ + window.location.hostname);
).fail(function(data)
$(‘.loginLoader’).addClass(‘hidden’);
$(‘.ok-form-error ‘).removeClass(‘hidden’);
);
);
function createRecoveryForm()
printRecoveryForm();
$(‘#okRecoveryBtn’).on(‘click’, function (event)
event.stopPropagation();
event.preventDefault();
$(‘.ok-form-success, .ok-form-error’).addClass(‘hidden’);
let baseUrl = window.location.protocol + ‘//’ + window.location.hostname + ‘/socios/client-recovery’;
let email = $(‘#okRecoveryForm’).serializeArray()[0].value;
if(validateEmail(email))
$.post(baseUrl, $(‘#okRecoveryForm’).serialize()).done(function (data)
$(‘.ok-form-success’).removeClass(‘hidden’);
).fail(function(data)
$(‘.ok-form-success’).removeClass(‘hidden’);
);
else
$(‘.ok-form-error-recovery’).removeClass(‘hidden’);
);
function validateEmail(email)
const re = /^(([^<>()[]\.,;:s@»]+(.[^<>()[]\.,;:s@»]+)*)
function validatePassword(password, repeatPassword)
if (password === repeatPassword && password.length >= 8)
return true;
else
return false;
function goToLoginModal()
var cookieSocios = (document.cookie.match(/^(?:.*;)?s*f2da8790d54184f6c100d431d8e45430s*=s*([^;]+)(?:.*)?$/)
function printLoginForm()
let loginForm = ‘
‘
‘Xn’ +
‘
Iniciar sesión en el portal
n’ +
‘ n’ +
‘
‘
Usuario o contraseña incorrectos
n’ +
‘n’ +
‘
n’ +
‘
n’ +
‘
‘;
if($(«#loginModal»).length == 0)
$( «body» ).append(loginForm);
function goToRecoveryModal()
window.location.href = ‘#recoveryModal’;
function printRecoveryForm()
let recoveryForm = ‘
‘
‘Xn’ +
‘
Recuperar contraseña
n’ +
‘ n’ +
‘
‘
Correo electrónico de recuperación enviado
n’ +
‘
Formato de correo electrónico incorrecto
n’ +
‘n’ +
‘
n’ +
‘
n’ +
‘
‘;
if($(«#recoveryModal»).length == 0)
$( «body» ).append(recoveryForm);
function setRememberMe()
if ($(‘#rememberme’).is(‘:checked’))
localStorage.okusername = $(‘#email’).val();
localStorage.okpass = $(‘#password’).val();
localStorage.okchkbox = $(‘#rememberme’).val();
else
localStorage.okusername = »;
localStorage.okpass = »;
localStorage.okchkbox = »;
function initRememberMe()
if (localStorage.okchkbox && localStorage.okchkbox != »)
$(‘#rememberme’).attr(‘checked’, ‘checked’);
$(‘#email’).val(localStorage.okusername);
$(‘#password’).val(localStorage.okpass);
else
$(‘#rememberme’).removeAttr(‘checked’);
$(‘#email’).val(»);
$(‘#password’).val(»);
function showSociosButtons()
fixIosSocios();
$(‘.socios-okclub’).removeClass(‘hidden’);
function fixIosSocios()
let isIos = /iPad
function sociosPubliHome()
//Buscamos la etiqueta body y añadimos la clase socios para ajustes de estilos
document.body.classList.add(‘socios’);
if(screen.width > 767)
//Modificamos imagen de publicidad del MPUVideo1 si existe
if($(‘#mpu-video1’).length)
var imgSociosMpuVideo1 = document.createElement(«IMG»);
imgSociosMpuVideo1.setAttribute(«src», «/web/themes/v10/socios/_img/socios_300X250.jpg»);
document.querySelector(«#mpu-video1»).appendChild(imgSociosMpuVideo1);
//Obtenemos los items de publicidad.
var divsPublicidad = document.querySelectorAll(‘.publicidad’);
divsPublicidad.forEach(function(el)
//Crear variables con las imagenes de 300×600 y 300×250.
var imgSocios300x250 = document.createElement(«IMG»);
var imgSocios300x600 = document.createElement(«IMG»);
imgSocios300x250.setAttribute(«src», «/web/themes/v10/socios/_img/socios_300X250.jpg»);
imgSocios300x600.setAttribute(«src», «/web/themes/v10/socios/_img/socios_300x600.jpg»);
imgSocios300x250.setAttribute(«style», «margin: auto; display: flex; justify-content: center; align-items: center;»);
imgSocios300x600.setAttribute(«style», «margin: auto; display: flex; justify-content: center; align-items: center;»);
//Añadimos las imágenes a los huecos publicitarios de la portada.
if(el.className.includes(‘300×250’) != false)
var itemPubli = el.firstElementChild;
itemPubli.innerHTML = »;
itemPubli.appendChild(imgSocios300x250);
else if(el.className.includes(‘300×600’) != false)
var itemPubli = el.firstElementChild;
itemPubli.innerHTML = »;
itemPubli.appendChild(imgSocios300x600);
);
/*Cargar publi de socios en portada, deportes y economía – END*/
function posicionate ()
var article = sessionStorage.getItem(«article»);
if (article)
var coord = $(‘article[data-id=»‘+article+'»]’).offset();
if(typeof coord === «undefined») return;
var total = parseInt(coord.top) – parseInt($(‘.mega’).height());
window.scrollTo(0, total);
function saveArticle (article)
var dataId = $(article).attr(‘data-id’);
sessionStorage.setItem(«article», dataId);
function goLink(link)
window.location.href = link;
return false;
// Navegacion de los blogs
function navigateBlogs(category)
$(‘.category-ul’).addClass(‘category-hidden’);
$(‘#images-‘+category).removeClass(‘category-hidden’);
//Animación de todos los valores
function tickerAnimationEconomicAll()
var tickerContainer = $(‘.prices-data-container.economic-all’)
var tickerList = $(‘.economic-all .prices-data-list’);
var tickerItem = $(‘.economic-all .price-data-wrapper’);
//Si el primer elemento del carrusel, está fuera de la vista
if ((tickerItem.eq(0).offset().left + tickerItem.eq(0).width())
< tickerContainer.offset().left)
//se clona
var tickerElement = tickerItem.eq(0).clone();
//se añade al final de la lista (carrusel)
tickerElement.appendTo(tickerList);
//Se elimina del DOM el objeto original
tickerItem.eq(0).remove();
//Movemos el carrusel hacía la izquierda restandole la anchura el elemento sin el padding
window.tickerLeftEconomicAll -= 1 – (tickerElement != null ? tickerElement.width() + 26: 0 );
tickerList.css(‘left’, window.tickerLeftEconomicAll);
// Coger los valores económicos de nuestro fichero json y mostrar los datos
// en el widget
function updateTickerData()
var jsonPath = ‘/economic-values/economic-values.json’;
$.ajax(
url: jsonPath,
cache: false,
dataType: ‘json’,
success: function(res)
if (res)
var tickerItem = $(‘.price-data-wrapper’);
var percentageChange = $(‘.percentage-change’);
var changeDirection = $(‘.change-direction’);
for (var i = 0; i < tickerItem.length ; i++)
changeHtml(res, i, tickerItem, percentageChange, changeDirection);
);
// Cambiar los datos del ticker por los datos actualizados
function changeHtml(res, i, tickerItem, percentageChange, changeDirection)
for (var j = 0; j < res.tickers.length; j++)
if (tickerItem[i].getAttribute(‘data-pid’) == res.tickers[j].pid)
percentageChange.eq(i).text(res.tickers[j].pcp);
//Negativo
if (res.tickers[j].pcp.substring(0, 1) == ‘-‘)
changeDirection.eq(i).html(»);
percentageChange.eq(i).addClass(«percentage-change-red»);
percentageChange.eq(i).removeClass(«percentage-change-green»);
//Positivo
else if (res.tickers[j].pcp.substring(0, 1) == ‘+’)
changeDirection.eq(i).html(»);
percentageChange.eq(i).addClass(«percentage-change-green»);
percentageChange.eq(i).removeClass(«percentage-change-red»);
function hideFeaturedMenu()
$(‘.okdiario-destacados-dropdown-container’).slideUp(«normal»);
$(«.okdiario-destacados-dropdown-container, .okdiario-destacados-dropdown-top-title»).removeClass(«activa»);
//$(document).click(function ());
function showFeaturedMenu()
$(‘.okdiario-destacados-dropdown-container’).slideDown(«normal»);
$(«.okdiario-destacados-dropdown-container, .okdiario-destacados-dropdown-top-title»).addClass(«activa»);
//al pulsar fuera del menú, ocultarlo
$(document).on(«click touchend touch», function (event)
event.stopPropagation();
// Si se ha pulsado en el boton de desplegar/ocultar el menu, entonces no se oculta
// ya que se encargara el evento de la funcion featuredMenu().
if (!$(event.target).closest(«.okdiario-destacados-dropdown-top-title»).length &&
$(‘.okdiario-destacados-dropdown-container’).hasClass(«activa»))
hideFeaturedMenu();
);
/*Menú de destacados, mostrar más elementos al hacer clic*/
function featuredMenu()
$(«.okdiario-destacados-dropdown-top-title»).on(‘click’, function(event)
event.stopPropagation();
// Si esta escondido el menu.
if(!$(‘.okdiario-destacados-dropdown-container’).hasClass(«activa»))
// Mostrar
showFeaturedMenu()
else
hideFeaturedMenu()
);
//Añado el evento onclik para todo el LI
$(«.okdiario-destacados-dropdown > li»).on(«click», function (event)
event.stopPropagation();
window.location = $(this).find(«a»).first().attr(«href»);
return false;
);
//Elementos del menú destacados
var options = $(«.okdiario-destacados-container li»).get().reverse();
if(options.length > 0)
$(options).each(
function (index, element)
);
//Si no hay destacados, oculto el container de la lista
if ($(‘.okdiario-destacados-container li’).length == 0)
$(‘.okdiario-destacados-container’).hide();
//Si no hay destacados en ningún sitio oculto el título.
if ($(‘.okdiario-destacados-container li’).length == 0 && $(‘.okdiario-destacados-dropdown-container li’).length == 0)
$(‘.okdiario-destacados-title’).hide();
function initMenu()
/* MENU DESPLEGABLE, EN TODAS LAS PAGINAS */
$(«#sectionMenu»).on(‘click’, function(event)
event.stopPropagation();
if($(‘.okdiario-cabecera’).css(‘z-index’) == 100000 &&
!($(‘.okdiario-cabecera’).hasClass(‘okdiario-cabecera-scrolled’)))
$(‘.okdiario-cabecera’).css(‘z-index’, 99998);
else
$(‘.okdiario-cabecera’).css(‘z-index’, 100000);
//$(«.all»).toggleClass(«active»);
$(«.okd-cabecera-inferior-izquierda-nav-menu»).toggleClass(«active»);
$(«.okd-cabecera-inferior-izquierda-nav-search»).removeClass(«active»);
//$(«.okd-cabecera-inferior-izquierda-search-form»).removeClass(«active»);
$(‘.burger-box’).toggleClass(‘open’);
if ($(«.burger-box»).hasClass(«open»))
$(«aside.share»).removeClass(‘share-fixed’);
else
$(«aside.share»).addClass(‘share-fixed’);
if ($(window).width() < 767 && $(«.okd-cabecera-inferior-izquierda-nav-menu»).hasClass(«active») &&
!($(«.menu-auxiliar-scrolled»).hasClass(«active»)))
$(«.navTop»).addClass(«ajusteMobile»);
$(«.ajusteMobile»).css(«position», «fixed»);
$(«.ajusteMobile»).css(«top», 0);
else
$(«.ajusteMobile»).css(«position», «absolute»);
$(«.ajusteMobile»).css(«top», «auto»);
);
itemMenuTransition();
searchButton();
function itemMenuTransition()
$(«.okd-cabecera-inferior-izquierda-nav-menu-auxiliar»).on(‘click’, function(event)
event.stopPropagation();
);
$(‘.okd-cabecera-inferior-izquierda-nav-menu-auxiliar > ul > li:has(ul)’).addClass(‘desplegable’);
$(‘.okd-cabecera-inferior-izquierda-nav-menu-auxiliar > ul > li > ul > li:has(ul)’).addClass(‘desplegable-sub’);
$(‘.okd-cabecera-inferior-izquierda-nav-menu-auxiliar > ul > li.desplegable > a,.okd-cabecera-inferior-izquierda-nav-menu-auxiliar > ul > li.desplegable > span’).after(»);
$(‘.desplegable-sub > a’).after(»);
$(‘.desplegable-sub i’).on(‘click’, function(event)
event.stopPropagation();
if($(this).parent().find(‘ul’).length >0)
var comprobar = $(this).next();
$(‘.menu-item-object-custom li’).removeClass(‘activa’);
$(this).closest(‘li’).addClass(‘activa’);
if((comprobar.is(‘ul’)) && (comprobar.is(‘:visible’)))
$(this).closest(‘li’).removeClass(‘activa’);
comprobar.slideUp(‘normal’);
if((comprobar.is(‘ul’)) && (!comprobar.is(‘:visible’)))
$(‘.menu-item-object-custom ul ul:visible’).slideUp(‘normal’);
comprobar.slideDown(‘normal’);
);
$(‘.okd-cabecera-inferior-izquierda-nav-menu-auxiliar > ul > li.desplegable i’).not(‘.desplegable-sub i’).on(‘click’, function(event)
event.stopPropagation();
if($(this).parent().find(‘ul’).length >0)
var comprobar = $(this).next();
$(‘.okd-cabecera-inferior-izquierda-nav-menu-auxiliar li’).not(‘li.desplegable-sub’).removeClass(‘activa’);
$(this).closest(‘li’).addClass(‘activa’);
if((comprobar.is(‘ul’)) && (comprobar.is(‘:visible’)))
$(this).closest(‘li’).closest(‘li’).removeClass(‘activa’);
comprobar.slideUp(‘normal’);
if((comprobar.is(‘ul’)) && (!comprobar.is(‘:visible’)))
$(‘.okd-cabecera-inferior-izquierda-nav-menu-auxiliar ul ul:visible’).slideUp(‘normal’);
comprobar.slideDown(‘normal’);
);
function searchButton()
/*EN LA CABECERA, TODAS LAS PAGINAS*/
$(«.okd-cabecera-inferior-izquierda-search-icon»).on(‘click’, function(event)
event.stopPropagation();
$(«.okd-cabecera-inferior-izquierda-nav-search»).toggleClass(«active»);
//$(«.okd-cabecera-inferior-izquierda-search-form»).toggleClass(«active»);
if ($(«.okd-cabecera-inferior-izquierda-nav-menu»).hasClass(«active»))
$(«.all»).removeClass(«active»);
$(«.okd-cabecera-inferior-izquierda-nav-menu»).toggleClass(«active»);
$(«.okd-cabecera-inferior-izquierda-nav-menu»).removeClass(«active2»);
$(‘.burger-box’).removeClass(‘open’);
);
/**
* itera las porpiedades css de offsetArray para obtener los estilos computados como enteros.
* @param array offsetArray
* @param HTMLObjectElement element
* @returns Int newOffset
*/
function loopOffsets(offsetArray, element)
// declaramos variable delimitada
let newOffset = 0;
// computed style element
let cse = window.getComputedStyle(element);
// iteramos el array con propiedades css que se pasa como parámetro
offsetArray.forEach((item, index) =>
// comprobamos que haya estilo computado
if («» != cse.getPropertyValue(item) && «undefined» != cse.getPropertyValue(item))
// sacamos el entero y lo sumamos
newOffset += parseInt(cse.getPropertyValue(item));
// comprobamos que haya estilo en el nodo, por si se le ha asignado dirante la carga
if(«» != element.style.getPropertyValue(item) && «undefined» != element.style.getPropertyValue(item))
// sacamos el entero y lo sumamos
newOffset += parseInt(element.style.getPropertyValue(item));
);
return newOffset;
/**
* Itera los hijos del header y obtiene sus alturas, bordes y márgenes para sacar mas limpiamente el sticky-top
* @param HTMLObjectElement element
* @param Integer offset
* @returns Integer offset
*/
function getOffsets(element, offset)
// declaramos un array con las propiedades
// de las que queremos obtener valor entero
let offsetArray = [
«borderTop»,
«borderBottom»,
«marginTop»,
«marginBottom»,
];
// computed style header
let csh = window.getComputedStyle(element);
// Primero sumamos la altura y los offsets del header
offset += parseInt(csh.height);
offset += loopOffsets(offsetArray, element);
// iteramos con for porque es una colección
for (let ele of element.children)
// sacamos offsets a cada elemento y
offset += loopOffsets(offsetArray, ele);
// loopeamos sticky-container para sacar la altura de cabecera-superior
// que es el que se tiene que dejar ver
// nos metemos en sticky-container para manejar las excepciones de desktop y mobile
if (ele.classList.contains(«okd-cabecera-sticky-container»))
for (let e of ele.children)
// le añadimos sus offsets
offset += loopOffsets(offsetArray, e);
// Comprobamos que estamos en cabecera-superior
// para poder dejar a la vista esa franja
if (e.classList.contains(‘okd-cabecera-superior’))
let cssc = window.getComputedStyle(e);
// le quitamos la altura de cabecera-superior
offset -= parseInt(cssc.height) + loopOffsets(offsetArray, e);
else if (window.innerWidth < 767)
// Comprobamos que estamos en móviles
// para poder mostrar una franja del tamaño del logo
if (e.classList.contains(‘okd-cabecera-inferior’) && !e.classList.contains(‘ante’))
let cssc = window.getComputedStyle(e);
// le quitamos la altura de cabecera-inferior
offset -= parseInt(cssc.height) + loopOffsets(offsetArray, e);
return offset;
// Sticky Logo
function headerStickyTop()
var header = document.getElementById(«okd-cabecera»);
let sumOffsets = getOffsets(header, 0);
header.style.top = «-» + sumOffsets + «px»;
function removeCabeceraInferiorAnte()
let menuAnteDesktop = document.querySelector(‘#okd-cabecera .okd-cabecera-inferior.ante.desktop’);
let menuAnteMobile = document.querySelector(‘#okd-cabecera .okd-cabecera-inferior.ante.mobile’);
if (window.matchMedia(‘(max-width: 766px)’).matches)
let menuAnteContent = menuAnteDesktop.innerHTML;
menuAnteDesktop.remove();
menuAnteMobile.innerHTML = menuAnteContent;
else
menuAnteMobile.remove();
function stickyLogo() (bodyClassList.contains(‘okclub’) && bodyClassList.contains(‘okgreen’)))
logoOkdScrolled = (null !== nightMode) ? ‘okgreen/logo-okgreen-night.png’ : ‘okgreen/logo-okgreen.png’;
backgroundSizePositionAndWidth = ‘background-position: center; background-size: contain;’;
else if (bodyClassList.contains(‘okclub’))
logoOkdScrolled = (null !== nightMode) ? ‘logo-okclub-night.svg’ : ‘logo-okclub.svg’;
backgroundSizePositionAndWidth = ‘background-position: center; background-size: contain;’;
else if (logo.classList.contains(‘logo-hispanidad’))
logoOkdScrolled = (null !== nightMode) ? ‘logo-hispanidad-noche.png’ : ‘logo-hispanidad-dia.png’;
backgroundSizePositionAndWidth = ‘background-position: center; background-size: contain;’;
else if (bodyClassList.contains(‘salud’))
logoOkdScrolled = (null !== nightMode) ? ‘logo-salud.png’ : ‘logo-salud-negro.png’;
backgroundSizePositionAndWidth = ‘background-position: center; background-size: 65%;’;
else
logoOkdScrolled = (null !== nightMode) ? ‘logo_okd_azul_night.png’ : ‘logo_okd_azul.png’;
backgroundSizePositionAndWidth = ‘background-size: contain; background-position: center;’;
var tickSvg = («» == tickLogoColor(bodyClassList)) ? «» : » url(‘/web/themes/v10/css/_img/»+tickLogoColor(bodyClassList)+»‘),»;
if (logo.classList.contains(‘logo-hispanidad’))
tickSvg = »;
logoLink.style.cssText = «display: block; height: 40px; width: 150px; background-image:»+tickSvg+» url(‘/web/themes/v10/css/_img/»+logoOkdScrolled+»‘);»+backgroundSizePositionAndWidth+» background-repeat: no-repeat;»;
let lastScroll = window.scrollY;
let isScrollingDown = true;
let isScrollingUp = !isScrollingDown;
const cabeceraScrolledHeight = 40;
document.addEventListener(‘scroll’, function(e)
let cabeceraBottom = document.getElementById(‘okd-cabecera’).getBoundingClientRect().bottom;
if (cabeceraBottom <= cabeceraScrolledHeight)
logoScrolled(superiorCentroInner, logoLink);
superior.style.boxShadow = ‘0 2px 2px 0 rgb(0 0 0 / 25%)’;
else
logoTop(superiorCentroInner);
superior.style.boxShadow = ‘none’;
isScrollingDown = window.scrollY >= lastScroll;
isScrollingUp = !isScrollingDown;
lastScroll = window.scrollY;
);
function logoScrolled(superiorCentroInner, logoLink)
superiorCentroInner.innerHTML = »;
superiorCentroInner.appendChild(logoLink);
function logoTop(superiorCentroInner)
superiorCentroInner.innerHTML = ‘El sitio de los inconformistas’;
if (document.body.classList.contains(‘baleares’))
superiorCentroInner.innerHTML = ‘Las noticias que los demás no le contarán’;
function tickLogoColor(bodyClassList)
var tickFile = ‘tick-okd.svg’;
let clases =
‘con_tick’ :[
‘economia’,
‘deportes’,
‘investigacion’,
‘opinion’,
‘look’,
‘trailer’,
‘sociedad’,
‘category-video’,
‘eurocopa’,
‘andalucia’,
‘okclub’,
‘juegos-olimpicos’,
‘igualdad-deporte’,
‘recetas’,
‘mundial’,
‘loteria-navidad’
],
‘sin_tick’ :[
‘category-corazon’,
‘category-fichajes’,
‘category-tv’,
‘tv’,
‘happyfm’,
‘salud’,
‘okclub’,
‘okgreen’,
‘aragon’
]
;
try
for(classArray in clases)
if (‘con_tick’ === classArray)
let conTick = clases[classArray];
for(clase in conTick)
if(bodyClassList.contains(conTick[clase])) bodyClassList.contains(«single»)))
tickFile = ‘tick-okd-video.svg’;
else if (‘sin_tick’ === classArray)
let sinTick = clases[classArray];
for(clase in sinTick)
if(bodyClassList.contains(sinTick[clase]))
tickFile = »;
catch (error)
console.error(‘Error cargando el logo scrolled ‘, error);
return tickFile;
// Sticky buttons
function stickyButtons()
var superiorDerecha = document.querySelector(‘.okd-cabecera-superior-derecha’);
var sociosOkClub = document.querySelector(‘.socios-okclub’);
var fecha = document.querySelector(‘.okd-cabecera-superior-derecha-fecha’);
var actualizacion = document.querySelector(‘.okd-cabecera-superior-derecha-actualizacion’);
var fechaClone = fecha.cloneNode(true);
var actualizacionClone = actualizacion.cloneNode(true);
var socios = document.querySelector(‘.alta’);
var donacion = document.querySelector(‘.apoyanos’);
if(null != socios && null != donacion)
var sociosClone = socios.cloneNode(true);
var donacionClone = donacion.cloneNode(true);
let nightMode = document.getElementById(‘night-mode’);
document.addEventListener(‘scroll’, function(e)
var buttonsBottom = sociosOkClub.getBoundingClientRect().bottom;
bottomValue = -35;
if(bottomValue == buttonsBottom)
buttonsScrolled(superiorDerecha, sociosOkClub, sociosClone, donacionClone, fecha, actualizacion);
else if (bottomValue < buttonsBottom)
buttonsTop(superiorDerecha, sociosOkClub, sociosClone, donacionClone, fechaClone, actualizacionClone)
);
function buttonsScrolled(superiorDerecha, sociosOkClub, sociosClone, donacionClone, fecha, actualizacion)
for(item of superiorDerecha.childNodes)
if(undefined !== item.classList)
superiorDerecha.prepend(sociosClone);
superiorDerecha.prepend(donacionClone);
function buttonsTop(superiorDerecha, sociosOkClub, sociosClone, donacionClone, fechaClone, actualizacionClone)
var canPrepend = false;
for(item of superiorDerecha.childNodes)
if(undefined !== item.classList)
if(canPrepend)
superiorDerecha.prepend(actualizacionClone);
superiorDerecha.prepend(fechaClone);
// Botones sesión en móvil
function botonesSesionEnMovil(cookieSocios)
var altaOkClub = document.querySelector(‘.socios-okclub a.alta’);
if (null != altaOkClub) » === cookieSocios)
okClubMovilContainer.append(altaOkClub);
okClubMovilContainer.append(inicioSesion);
document.getElementById(‘contentHome’).prepend(okClubMovilContainer)
if(screen.width > 767 && !document.querySelector(‘body’).classList.contains(‘okmotor’) && !document.querySelector(‘body’).classList.contains(‘okgreen’))
stickyLogo();
stickyButtons();
function showImages()
$(‘body:not(.home, .page.economia, .page.deportes) article’).find(‘img’).each(function()
var imageSrc = «data-mobile»;
if ($(window).width() > 767)
imageSrc = «data-desktop»;
if (this.getAttribute(imageSrc))
this.setAttribute(‘src’, this.getAttribute(imageSrc));
);
function scrollToTop ()
var settings =
min: 200,
inDelay: 600,
outDelay: 400,
containerID: ‘toTop’,
scrollSpeed: 500,
;
var isHidden = true;
var toTop = $(‘#’ + settings.containerID);
var scrollPos = 0;
toTop.on(‘click’, function(e)
e.preventDefault();
$(‘html, body’).animate( scrollTop : 0, settings.scrollSpeed );
);
$(window).scroll(function()
var height = $(this).scrollTop();
if($(window).scrollTop() + $(window).height() == $(document).height())
toTop.css(«opacity», «1»);
isHidden = false;
else
if(height > scrollPos) //scroll down
toTop.css(«opacity», «0»);
isHidden = true;
else //scroll up
if (height > settings.min && isHidden)
toTop.css(«opacity», «1»);
isHidden = false;
else if(height <= settings.min && ! isHidden)
toTop.css(«opacity», «0»);
isHidden = true;
scrollPos = height;
);
;
function scrollToComments()
$(‘.button_go_comment’).on(‘click’, function(e)
e.preventDefault();
$(‘html, body’).animate( scrollTop: $(‘#comments’).offset().top-200 , 600);
);
function stickyRightBanner(id)
/**
Provoca el efecto sticky en los Banners
banner_id: id del div del banner
ad_block_index: índice del bloque
*/
function sticky_banners(banner_id, ad_block_index, post_id) «»;
let bottom_id = «#bottom»+post_id+», #scroll-barrier»+post_id;
let last_news = «#last-news»+post_id+», #last-news-eurocopa»+post_id;
let last_news_all = «#last-news-all»+post_id+», #most-viewed-eurocopa»+post_id;
let most_viewed_okgreen = «#most-viewed-okgreen»+post_id;
var windowWidth = window.innerWidth;
$(«.ad-block:eq(«+ad_block_index+»)»).css(«height», «auto»);
// Desktop
if (windowWidth > 1024 && $(‘.aux-col’).length)
$(window).scroll(function()
//let content_coordinates = document.getElementsByClassName(«content»)[0].getBoundingClientRect();
//if ((content_coordinates.bottom – content_coordinates.top) > 2200)
let screenState =
cabecera:
top: $(«#okd-cabecera»).offset().top,
bottom: $(«#okd-cabecera»).offset().top + $(«#okd-cabecera»).height()
,
right:
top: $(«#»+banner_id).offset().top,
bottom: $(«#»+banner_id).offset().top + $(«#»+banner_id).height()
,
rightAnterior:
top: 0,
bottom: 0
,
lastNews:
top: $(last_news).length ? $(last_news).offset().top : 0,
bottom: $(last_news).length ? $(last_news).offset().top + $(last_news).height() : 0,
,
lastNewsAll:
top: $(last_news_all).length ? $(last_news_all).offset().top : 0,
bottom: $(last_news_all).length ? $(last_news_all).offset().top + $(last_news_all).height() : 0,
,
mostViewedOkgreen:
top: $(most_viewed_okgreen).length ? $(most_viewed_okgreen).offset().top : 0,
bottom: $(most_viewed_okgreen).length ? $(most_viewed_okgreen).offset().top + $(most_viewed_okgreen).height() : 0,
,
footerPage:
top: $(«#footerPage»).offset().top
,
adBottom:
exists: ($(bottom_id).length && $(bottom_id).css(«display») != «nome»),
top: ($(bottom_id).length && $(bottom_id).css(«display») != «nome») ? $(bottom_id).offset().top : 0
,
adBlockHeight: $(«.ad-block:eq(«+ad_block_index+»)»).height(),
prevElementBottom: 0,
bottomElementTop: 0,
status: false,
isInBottom: false,
;
//init rightAnterior values
let adBlockIndexAnterior = ad_block_index – 1;
if(adBlockIndexAnterior != null && adBlockIndexAnterior != ‘undefined’ && adBlockIndexAnterior >= 0 && $(«.ad-block:eq(«+adBlockIndexAnterior+»)»).length)
screenState.rightAnterior.top = $(«.ad-block:eq(«+adBlockIndexAnterior+»)»).offset().top;
screenState.rightAnterior.bottom = screenState.rightAnterior.top + $(«.ad-block:eq(«+adBlockIndexAnterior+»)»).height();
//Init espacio disponible entre elemento anterior y bottom
screenState.prevElementBottom = Math.max(screenState.rightAnterior.bottom, screenState.lastNews.bottom, screenState.lastNewsAll.bottom);
screenState.bottomElementTop = screenState.adBottom.exists ? screenState.adBottom.top : screenState.footerPage.top;
//Compruebo que no está en el bottom, para no hacer sticky
screenState.isInBottom = (screenState.adBottom.exists && screenState.right.bottom >= screenState.adBottom.top – 40)
);
// Submenús de cabecerapara elecciones Madrid 2021
// Queda debajo de cabeceras
function cabeceraMadrid2021()
$(«#menu-elecciones-madrid-2021 ul.submenu»).parent(‘li’).on(‘click’, function()
try
// Hecmos el toggle a mano porque los efectos interfieren con el layout
if ($(this).children(«.submenu»).hasClass(«active»))
$(this).children(«.submenu»).removeClass(«active»);
else
$(this).children(«.submenu»).addClass(«active»);
catch(e)
console.error(«Error en el menú de Elecciones Madrid 2021», e);
);
cabeceraMadrid2021();
function checkBodyClass(body_class)
return document.querySelector(‘body’).classList.contains(body_class);
/*Muestra la publicidad en las noticias*/
function showAdSingle() $(«#branded-container > .branded-festinabc»).length;
let intextActive = true;
if (checkBodyClass(‘paged’)) return true;
intext1 = intextActive ? » : »;
var windowWidth = window.innerWidth;
let hasNotNoIntextTag = !document.body.classList.contains(‘tag-no-intext’);
let maxWidth1023 = window.matchMedia(‘(max-width: 1023px)’);
if (($(‘body’).hasClass(‘single’)
/* START DIRECTO Y ÚLTIMA HORA
/* Animación tipo slider para los menús */
function startMenuAnimation(name)
if ($(‘#menu-okd-‘ + name + ‘ li’).length > 1)
var menuItems = $(‘#menu-okd-‘ + name + ‘ li’);
var currentIndex = 0;
/* Animación automática */
var menuInterval = setInterval(intervalAnimation, 10000);
function intervalAnimation()
if (currentIndex != menuItems.length – 1)
currentIndex++;
slideFromRight(menuItems, currentIndex – 1, currentIndex);
else
currentIndex = 0;
slideFromRight(menuItems, menuItems.length – 1, currentIndex);
// Listener flecha izquierda
$(‘.flechas-navegacion.’ + name + ‘ i’).eq(0).on(‘click’, function(event)
event.stopPropagation();
clearInterval(menuInterval);
if (currentIndex > 0)
currentIndex–;
slideFromLeft(menuItems, currentIndex + 1, currentIndex);
menuInterval = setInterval(intervalAnimation, 8000);
else
currentIndex = menuItems.length – 1;
slideFromLeft(menuItems, 0, currentIndex);
menuInterval = setInterval(intervalAnimation, 8000);
);
// Listener flecha derecha
$(‘.flechas-navegacion.’ + name + ‘ i’).eq(1).on(‘click’, function(event)
event.stopPropagation();
clearInterval(menuInterval);
if (currentIndex != menuItems.length – 1)
currentIndex++;
slideFromRight(menuItems, currentIndex – 1, currentIndex);
menuInterval = setInterval(intervalAnimation, 8000);
else
currentIndex = 0;
slideFromRight(menuItems, menuItems.length – 1, currentIndex);
menuInterval = setInterval(intervalAnimation, 8000);
);
// Deslizar nuevo elemento desde la derecha
function slideFromRight(menuItems, prevIndex, currentIndex)
menuItems.eq(prevIndex).animate(
left: ‘-120%’
, 2000, function()
menuItems.css(‘left’, ‘120%’);
menuItems.eq(currentIndex).animate(
left: ‘0’
, 2000);
);
//Comportamiento de CatFish
function navigationCatfish()
var OKD_catfish = document.getElementById(«okd-catfish»);
var OKD_btn_CatFish= document.getElementById(«catfish-btn»);
var scroll = 700;
var code_home = ‘
googletag.cmd.push(function() googletag.display(«portada_sticky»); );
‘;
var code_seccion = ‘
googletag.cmd.push(function() googletag.display(«seccion_sticky»); );
‘;
var code_article = ‘
googletag.cmd.push(function() googletag.display(«articulo_sticky»); );
‘;
var adunit = »;
if ($(‘.home’).length)
var scroll = 4500;
//Aplicamos únicamente a dispositivos mobile.
if (screen.width < 450 && «undefinied» != OKD_catfish && null !=OKD_catfish && «undefined» != OKD_catfish && null != OKD_btn_CatFish)
//Cuando se muestra con scroll superior a 1000
if (window.pageYOffset >= scroll)
//Eliminamos las clases catfish-start y hide-catfish
OKD_catfish.classList.remove(‘catfish-start’);
OKD_catfish.classList.remove(‘hide-catfish’);
//En caso de que sea secciones
if($(‘#seccion_sticky’).length < 1)
else
//Añadimos hide-catfish para ocultar cuando el scroll sea menor
OKD_catfish.classList.add(‘hide-catfish’);
//Boton de cierre de catfish (Al pulsar añadimos clase close-catfish)
OKD_btn_CatFish.onclick = function closeCatFish()
OKD_catfish.classList.add(‘close-catfish’);
if(!$(‘#native-addthis-fixed’).hasClass(‘active’))
$(‘#native-addthis-fixed’).addClass(‘active’);
/*END COMPORTAMIENTO CATFISH*/
/*COMPORTAMIENTO CATFISH HEAVY USERS – START*/
function navigationCatfishHeavy()
var OKD_catfish_heavy = document.getElementById(«okd-catfish-heavy-users»);
var OKD_btn_CatFish_Heavy= document.getElementById(«catfish-heavy-btn»);
var scroll = 700;
var code_home = ‘
googletag.cmd.push(function() googletag.display(«portada_sticky_brand»); );
‘;
var code_seccion = ‘
googletag.cmd.push(function() googletag.display(«seccion_sticky_brand»); );
‘;
if ($(‘.home’).length)
var scroll = 4500;
//Aplicamos únicamente a dispositivos desktop.
if (screen.width > 1023 && «undefinied» != OKD_catfish_heavy && null !=OKD_catfish_heavy && «undefined» != OKD_catfish_heavy && null != OKD_btn_CatFish_Heavy)
//Cuando se muestra con scroll superior a 1000
if (window.pageYOffset >= scroll)
//Eliminamos las clases catfish-heavy-start y hide-catfish-heavy
OKD_catfish_heavy.classList.remove(‘catfish-heavy-start’);
OKD_catfish_heavy.classList.remove(‘hide-catfish-heavy’);
//En caso de que sea secciones
if($(‘#seccion_sticky_brand’).length < 1)
else
//Añadimos hide-catfish-heavy para ocultar cuando el scroll sea menor
OKD_catfish_heavy.classList.add(‘hide-catfish-heavy’);
//Boton de cierre de catfish heavy user (Al pulsar añadimos clase close-catfish-heavy y reseteamos las cookies)
OKD_btn_CatFish_Heavy.onclick = function closeCatFish()
OKD_catfish_heavy.classList.add(‘close-catfish-heavy’);
if(!$(‘#native-addthis-fixed’).hasClass(‘active’))
$(‘#native-addthis-fixed’).addClass(‘active’);
createHeavyUsersCookie(‘cf1b1868cfdb9e0d1c09624581f9660e’, 30, 3);
createHeavyUsersCookie(‘3c784d68f92c2979f750fc027c395ee8’, 0, 0);
/*COMPORTAMIENTO CATFISH HEAVY USERS – END*/
// Deslizar nuevo elemento desde la izquierda
function slideFromLeft(menuItems, prevIndex, currentIndex)
menuItems.eq(prevIndex).animate(
left: ‘100%’
, 2000, function()
menuItems.css(‘left’, ‘-100%’);
menuItems.eq(currentIndex).animate(
left: ‘0’
, 2000);
);
/* END DIRECTO Y ÚLTIMA HORA */
/* FUNCIONALIDAD STICKY-TO-TOP EN VIDEOS DM VERSIÓN MOBILE – START*/
function sticky_to_top()
//Comprobamos que exista video, en caso de que no exista, la función nohace nada
let anchorId = ‘main-video-anchor’;
let wrapperId = ‘video-wrapper-‘ + context.oId;
if($(‘#’ + anchorId).length && screen.width < 450) btnclose === null)
btnclose = document.createElement(«div»);
btnclose.id = ‘video-close-button’;
btnclose.innerHTML=’X’;
btnclose.style.zIndex=’2′;
//En caso de cerrar el video sticky to top, eliminamos clase y añadimos clase featured-video-closed para que no vuelva a hacerse sticky
btnclose.onclick = function(e)
e.preventDefault();
e.stopPropagation();
//var videoDM = document.getElementById(wrapperId);
if(videoDM.classList.contains(‘sticky-to-top’))
videoDM.classList.remove(‘sticky-to-top’);
videoDM.classList.add(‘featured-video-closed’);
;
videoDM.appendChild(btnclose);
var scrollTop = window.pageYOffset;
var videoParentOffset = $(‘#’ + anchorId).offset().top; //container
//Si se hace scroll y llega al top de la pantalla, se hace sticky-to top
if (scrollTop >= videoParentOffset – 60 && !videoDM.classList.contains(‘featured-video-closed’))
//Añadimos clase
videoDM.classList.add(‘sticky-to-top’);
//Añadimos retardo a la aparición del boton close
if ($(‘#’ + anchorId).hasClass(‘btn-close-printed’))
btnclose.classList.add(‘btn-close-shown’);
else
let tm = setTimeout(function ()
btnclose.classList.add(‘btn-close-shown’);
$(‘#’ + anchorId).addClass(‘btn-close-printed’);
clearTimeout(tm);
, 7000);
else
//Comprobamos que exista y eliminamos la clase
if (videoDM.classList.contains(‘sticky-to-top’))
videoDM.classList.remove(‘sticky-to-top’);
/* FUNCIONALIDAD STICKY-TO-TOP EN VIDEOS DM VERSIÓN MOBILE – START */
/*LOAD SKY unicamente cuando la pantalla sea mayor de 1280px que es cuando se muestran*/
function loadSkys()
var code_sky_izquierda = »;
var code_sky_derecha = »;
//Se aplica únicamente a pantallas mayores de 1080 y que sean secciones
if(screen.width > 1280 && $(‘#postContent’).length < 1 && $(‘.home’).length < 1 )
$(‘.sky-left’).append(code_sky_izquierda);
$(‘.sky-right’).append(code_sky_derecha);
if (window.innerWidth > 767)
let sky_dcha = document.getElementById(‘sky-derecha’);
let sky_izda = document.getElementById(‘sky-derecha’);
let top1BoundingTop = document.getElementById(‘okd_top1_original’).getBoundingClientRect().top;
if (null !==sky_dcha && 0 < sky_dcha.length)
document.getElementById(‘sky-derecha’).style.top = top1BoundingTop + ‘px’;
if (null !==sky_izda && 0 < sky_izda.length)
document.getElementById(‘sky-izquierda’).style.top = top1BoundingTop + ‘px’;
/*LOAD SKY – END*/
function sticky_skies()
let sky_izquierda = document.getElementById(‘sky-izquierda’);
let sky_derecha = document.getElementById(‘sky-derecha’);
// let inital_top = Math.abs(document.getElementById(‘okd_top1_original’).getBoundingClientRect().top – document.getElementById(‘page’).getBoundingClientRect().top);
let inital_top = Math.abs(document.getElementById(‘okd_top1_original’).getBoundingClientRect().top);
let inferiorBottom;
let superiorBottom;
if (window.innerWidth > 767 && typeof sky_izquierda !== ‘undefined’
&& sky_izquierda !== null && typeof sky_derecha !== ‘undefined’
&& sky_derecha !== null)
// declaramos su posición fixed de entrada, y le damos el mismo top que ok-top-1
sky_izquierda.style.position = ‘fixed’;
sky_derecha.style.position = ‘fixed’;
sky_izquierda.style.top = inital_top + ‘px’;
sky_derecha.style.top = inital_top + ‘px’;
// podemos dejar de escuchar scroll por intersectionObserver
document.addEventListener(‘scroll’, function()
let header = document.getElementById(«okd-cabecera»);
headerBottom = header.getBoundingClientRect().bottom;
if (headerBottom <= 40)
sky_izquierda.style.top = ( headerBottom + 2) + ‘px’;
sky_derecha.style.top = (headerBottom + 2) + ‘px’;
else
// Seguimos dándole el top de ok-top-1 siempre que no esté la cabecera recogida
sky_izquierda.style.top = document.getElementById(‘top1’).getBoundingClientRect().top + ‘px’;
sky_derecha.style.top = document.getElementById(‘top1’).getBoundingClientRect().top + ‘px’;
);
function removeBottomAdIfIsDesktopAndHasRecetasOrHasHowtoOrHasDeportes()
if (window.innerWidth > 768 && $(‘body’).hasClass(‘single’) && ($(‘body’).hasClass(‘recetas’)
/* CountDown de Javier Cárdenas – BORRAR CUANDO YA NO HAGA FALTA PLZ */
if($(«#cardenas-cuenta-atras»).length)
var diasDiv = document.getElementById(‘dias’);
var horasDiv = document.getElementById(‘horas’);
var minutosDiv = document.getElementById(‘minutos’);
var fechaCardenas = new Date(«Sep 6, 2021 06:59:59»).getTime();
var cardenasCounter = setInterval(function()
var ahora = new Date().getTime();
var cuantoQueda = fechaCardenas – ahora;
var dias = Math.floor(cuantoQueda / (1000 * 60 * 60 * 24));
var horas = Math.floor((cuantoQueda % (1000 * 60 * 60 * 24))/(1000 * 60 * 60));
var minutos = Math.floor((cuantoQueda % (1000 * 60 * 60))/ (1000 * 60));
var segundos = Math.floor((cuantoQueda % (1000 * 60)) / 1000);
horasDiv.innerHTML = «
«+ horas + «horas
«;
minutosDiv.innerHTML = «
«+ minutos + «minutos
«;
diasDiv.innerHTML = «
«+ dias + «dias
«;
if (cuantoQueda < 0)
clearInterval(cardenasCounter);
document.getElementById(«cardenas-cuenta-atras»).innerHTML += «Terminó»;
, 1000);
if ((document.body.classList.contains(‘okshopping’) && typeof document.querySelector(‘.okshopping .double-widget-container’) !== ‘undefined’ && null !== document.querySelector(‘.okshopping .double-widget-container’))
||(document.body.classList.contains(‘loteria-navidad’) && typeof document.querySelector(‘.loteria-navidad .double-widget-container’) !== ‘undefined’ && null !== document.querySelector(‘.loteria-navidad .double-widget-container’))
||(document.body.classList.contains(‘mundial’) && typeof document.querySelector(‘.mundial .double-widget-container’) !== ‘undefined’ && null !== document.querySelector(‘.mundial .double-widget-container’)))
document.querySelectorAll(‘.double-widget-container .double-widget-container-tabs > span’).forEach(function (tab, index)
tab.addEventListener(‘click’, function(event)
let childNumber = index + 1;
if (!tab.classList.contains(‘tab-active’))
document.querySelector(‘.double-widget-container .double-widget-container-tabs > span:nth-child(‘ + ((childNumber % 2) + 1) + ‘)’).classList.remove(‘tab-active’);
tab.classList.add(‘tab-active’);
document.querySelector(‘.double-widget-container .double-widget-container-widgets .widget.most-viewed:nth-child(‘ + ((childNumber % 2) + 1) + ‘)’).style.display = ‘none’;
document.querySelector(‘.double-widget-container .double-widget-container-widgets .widget.most-viewed:nth-child(‘ + childNumber + ‘)’).style.display = ‘block’;
);
);
/*! jQuery & Zepto Lazy v1.7.6 – http://jquery.eisbehr.de/lazy – MIT&GPL-2.0 license – Copyright 2012-2017 Daniel ‘Eisbehr’ Kern */
!function(t,e)»use strict»;function r(r,a,i,u,l)function f()function a(a,o)var u=this,l=n.extend(,u.config,o),f=,c=l.name+»-«+ ++i;return u.config=function(t,r)return r===e?l[t]:(l[t]=r,u),u.addItems=function(t)return f.a&&f.a(«string»===n.type(t)?n(t):t),u,u.getItems=function()return f.g?f.g():,u.update=function(t)return f.e&&f.e(,!t),u,u.force=function(t)return f.f&&f.f(«string»===n.type(t)?n(t):t),u,u.loadAll=function()return f.e&&f.e(all:!0,!0),u,u.destroy=function()return n(l.appendScroll).off(«.»+c,f.e),n(t).off(«.»+c),f=,e,r(u,l,a,f,c),l.chainable?a:uvar n=t.jQuery,key:»_fastCheck»,value:function()this._active&&!this._removed&&(Math.abs(f(this._clone.node)-this._clone.docOffsetTop)>1,key:»_deactivate»,value:function()var a=this;this._active&&!this._removed&&(this._clone.node.parentNode.removeChild(this._clone.node),delete this._clone,d(this._node.style,this._styles),delete this._styles,l.some(function(b)return b!==a&&b._parent&&b._parent.node===a._parent.node),key:»remove»,value:function()var a=this;this._deactivate(),l.some(function(b,c)if(b._node===a._node)return l.splice(c,1),!0),this._removed=!0]),g(),n=stickies:l,Sticky:m,addOne:function(a)if(!(a instanceof HTMLElement))if(!a.lengthfor(var b=0;b
Sociedad – okdiario.com