Contenido
Raúl Flores Canelo, a 25 años
// ------------------------------------------------------------------------------------------------------------------------------- // PHOTOSWIPE
var initPhotoSwipeFromDOM = function(gallerySelector) {
// parse slide data (url, title, size ...) from DOM elements // (children of gallerySelector) var parseThumbnailElements = function(el) { var thumbElements = el.childNodes, numNodes = thumbElements.length, items = [], figureEl, linkEl, size, item;
for(var i = 0; i < numNodes; i++) {
figureEl = thumbElements[i]; //
// include only element nodes if(figureEl.nodeType !== 1) { continue; }
linkEl = figureEl.children[0]; // element
size = linkEl.getAttribute('data-size').split('x');
// create slide object item = { src: linkEl.getAttribute('href'), w: parseInt(size[0], 10), h: parseInt(size[1], 10) };
if(figureEl.children.length > 1) {
//
if(linkEl.children.length > 0) {
// thumbnail element, retrieving thumbnail url
item.msrc = linkEl.children[0].getAttribute('src');
}
item.el = figureEl; // save link to element for getThumbBoundsFn items.push(item); }
return items; };
// find nearest parent element var closest = function closest(el, fn) { return el && ( fn(el) ? el : closest(el.parentNode, fn) ); };
// triggers when user clicks on thumbnail var onThumbnailsClick = function(e) { e = e || window.event; e.preventDefault ? e.preventDefault() : e.returnValue = false;
var eTarget = e.target || e.srcElement;
// find root element of slide var clickedListItem = closest(eTarget, function(el) { return (el.tagName && el.tagName.toUpperCase() === 'FIGURE'); });
if(!clickedListItem) { return; }
// find index of clicked item by looping through all child nodes // alternatively, you may define index via data- attribute var clickedGallery = clickedListItem.parentNode, childNodes = clickedListItem.parentNode.childNodes, numChildNodes = childNodes.length, nodeIndex = 0, index;
for (var i = 0; i < numChildNodes; i++) { if(childNodes[i].nodeType !== 1) { continue; } if(childNodes[i] === clickedListItem) { index = nodeIndex; break; } nodeIndex++; } if(index >= 0) { // open PhotoSwipe if valid index found openPhotoSwipe( index, clickedGallery ); } return false; };
// parse picture index and gallery index from URL (#&pid=1&gid=2) var photoswipeParseHash = function() { var hash = window.location.hash.substring(1), params = {};
if(hash.length < 5) { return params; } var vars = hash.split('&'); for (var i = 0; i < vars.length; i++) { if(!vars[i]) { continue; } var pair = vars[i].split('='); if(pair.length < 2) { continue; } params[pair[0]] = pair[1]; } if(params.gid) { params.gid = parseInt(params.gid, 10); } return params; }; var openPhotoSwipe = function(index, galleryElement, disableAnimation, fromURL) { var pswpElement = document.querySelectorAll('.pswp')[0], gallery, options, items; items = parseThumbnailElements(galleryElement); // define options (if needed) options = { // define gallery index (for URL) galleryUID: galleryElement.getAttribute('data-pswp-uid'), getThumbBoundsFn: function(index) { // See Options -> getThumbBoundsFn section of documentation for more info var thumbnail = items[index].el.getElementsByTagName('img')[0], // find thumbnail pageYScroll = window.pageYOffset || document.documentElement.scrollTop, rect = thumbnail.getBoundingClientRect();
return {x:rect.left, y:rect.top + pageYScroll, w:rect.width}; }
};
// PhotoSwipe opened from URL if(fromURL) { if(options.galleryPIDs) { // parse real index when custom PIDs are used // http://photoswipe.com/documentation/faq.html#custom-pid-in-url for(var j = 0; j < items.length; j++) { if(items[j].pid == index) { options.index = j; break; } } } else { // in URL indexes start from 1 options.index = parseInt(index, 10) - 1; } } else { options.index = parseInt(index, 10); } // exit if index not found if( isNaN(options.index) ) { return; } if(disableAnimation) { options.showAnimationDuration = 0; } // Pass data to PhotoSwipe and initialize it gallery = new PhotoSwipe( pswpElement, PhotoSwipeUI_Default, items, options); gallery.init(); }; // loop through all gallery elements and bind events var galleryElements = document.querySelectorAll( gallerySelector ); for(var i = 0, l = galleryElements.length; i < l; i++) { galleryElements[i].setAttribute('data-pswp-uid', i+1); galleryElements[i].onclick = onThumbnailsClick; } // Parse URL and open gallery if it contains #&pid=3&gid=1 var hashData = photoswipeParseHash(); if(hashData.pid && hashData.gid) { openPhotoSwipe( hashData.pid , galleryElements[ hashData.gid - 1 ], true, true ); } }; // execute above function initPhotoSwipeFromDOM('.my-gallery'); // ====================================== // FIN SCRIPTS PHOTOSWIPE // ======================================
Obviamente se refiere al legado de Raúl Flores, El canelo, que a fuerza de serlo y ser llamado así, dejó de ser “el” y convirtió su apodo (los pelirrojos en Sinaloa son denominados de esa manera) en apellido, por lo que es conocido con su “nombre completo”, Raúl Flores Canelo. Testimonio de este legado lo tuvimos hace unos días en Bellas Artes.
Creador singular y bailarín estupendo, Flores Canelo fundó Ballet Independiente no sólo para tener su propio cuerpo colectivo de expresión coreográfica y poder desahogar sus fuegos internos de danzante, sino para proporcionar un espacio a los jóvenes bailarines, ellos y ellas, que tenían muy pocos foros de expresión, así como también desacralizar la danza, desolemnizarla y ponerla mucho más al alcance de la gente. Esto ocurrió en 1966, lo que implica que este su primer legado orgánico alcanza ya la friolera de 51 años, cosa que en este país de sistémicas negaciones culturales es toda una hazaña.
Así, cargado de tiempos, danzas y distancias, de la mano de su codirectora de siempre y pilar fundamental Magnolia Flores, Ballet Independiente arriba a este cuarto de siglo de ausencia de su principal coreógrafo y, como el propio Raúl lo haría, lo hace lúdicamente, biofilamente, a través de dos de sus muy divertidas y siempre irreverentes coreografías, Tres fantasías sexuales y un prólogo (1981) y La familia (fragmento de Terpsícore en México) de 1988. A ellas se agregó otra obra cuyo solo título es ya un enorme atractivo, Carmen, que basada en la ópera homónima de Bizet ha provocado mil variantes, una de ellas la muy buena coreografía del maestro Gregorio Trejo, quien la hizo especialmente para BI hace poco menos de una década.
Vale agregar que la Dirección Artística del ballet y, claro, de estas funciones, está actualmente encomendada al joven bailarín y también coreógrafo Emmanuel Torres, quien está cumpliendo muy bien la tarea.
El legado continúa, entonces, no sólo en la preservación del acervo coreográfico y la memoria sino, y más importante, en el espíritu, la actitud y el espacio abierto a los jóvenes, a esas nuevas generaciones que abrevando en lo tenido danzan hoy, pero viendo hacia el mañana, cuando a su vez tengan que ceder los bártulos. Mientras tanto, hoy, tenemos una compañía joven, plena de vigor y ganas y, lo mejor, el tono lúdico de “el canelo”, su irreverencia y su simpatía a la sencilla gente del pueblo, a la que retrata y plasma en escena como esos “albañilotes” lujuriosos y la coqueta criadita que provocativa pasea sus deliciosos atributos, en contraposición a la mojigata pueblerina.
Flores Canelo –lo he pensado siempre-- es a la danza urbana lo que Chava Flores a la canción.
Comentarios
// Obtener todos los elementos con clase .col-md-12 var colElements = document.querySelectorAll('.col-md-12');
// Iterar sobre cada elemento colElements.forEach(function(element) { // Verificar si tiene un hijo inmediato con clase .titulo-region var tituloRegion = element.querySelector('.titulo-region');
if (tituloRegion) { // Agregar la clase .is-sticky al elemento padre element.classList.add('is-sticky'); } });
// Obtener el elemento article dentro de .fila-especial-v2 .p50 var articleElement = document.querySelector('.home .fila-especial-v2 .p50 article');
// Obtener el texto del elemento .z-foto .bajada p var bajadaText = articleElement.querySelector('.z-foto .bajada p').textContent;
// Crear un nuevo elemento para mostrar el texto obtenido var textoElement = document.createElement('p'); textoElement.textContent = bajadaText;
// Obtener el elemento .z-txt .titulo dentro del article var tituloElement = articleElement.querySelector('.z-txt .titulo');
// Insertar el nuevo elemento al final del article articleElement.appendChild(textoElement);
Cortesía de Proceso.
Dejanos un comentario: