tag on yout theme's header.php
Read the detailed step-by-step at https://humbertosilva.com/visual-composer-infinite-image-carousel/
*/
// auxiliary code to create triggers for the add and remove class for later use
(function($){
$.each(["addClass","removeClass"],function(i,methodname){
var oldmethod = $.fn[methodname];
$.fn[methodname] = function(){
oldmethod.apply( this, arguments );
this.trigger(methodname+"change");
return this;
}
});
})(jQuery);
// main function for the infinite loop
function vc_custominfiniteloop_init(vc_cil_element_id){
var vc_element = '#' + vc_cil_element_id; // because we're using this more than once let's create a variable for it
window.maxItens = jQuery(vc_element).data('per-view'); // max visible items defined
window.addedItens = 0; // auxiliary counter for added itens to the end
// go to slides and duplicate them to the end to fill space
jQuery(vc_element).find('.vc_carousel-slideline-inner').find('.vc_item').each(function(){
// we only need to duplicate the first visible images
if (window.addedItens < window.maxItens) {
if (window.addedItens == 0 ) {
// the fisrt added slide will need a trigger so we know it ended and make it "restart" without animation
jQuery(this).clone().addClass('vc_custominfiniteloop_restart').removeClass('vc_active').appendTo(jQuery(this).parent());
} else {
jQuery(this).clone().removeClass('vc_active').appendTo(jQuery(this).parent());
}
window.addedItens++;
}
});
// add the trigger so we know when to "restart" the animation without the knowing about it
jQuery('.vc_custominfiniteloop_restart').bind('addClasschange', null, function(){
// navigate to the carousel element , I know, its ugly ...
var vc_carousel = jQuery(this).parent().parent().parent().parent();
// first we temporarily change the animation speed to zero
jQuery(vc_carousel).data('vc.carousel').transition_speed = 0;
// make the slider go to the first slide without animation and because the fist set of images shown
// are the same that are being shown now the slider is now "restarted" without that being visible
jQuery(vc_carousel).data('vc.carousel').to(0);
// allow the carousel to go to the first image and restore the original speed
setTimeout("vc_cil_restore_transition_speed('"+jQuery(vc_carousel).prop('id')+"')",100);
});
}
// restore original speed setting of vc_carousel
function vc_cil_restore_transition_speed(element_id){
// after inspecting the original source code the value of 600 is defined there so we put back the original here
jQuery('#' + element_id).data('vc.carousel').transition_speed = 600;
}
// init
jQuery(document).ready(function(){
// find all vc_carousel with the defined class and turn them into infine loop
jQuery('.vc_custominfiniteloop').find('div[data-ride="vc_carousel"]').each(function(){
// allow time for the slider to be built on the page
// because the slider is "long" we can wait a bit before adding images and events needed
var vc_cil_element = jQuery(this).prop("id");
if (window.innerWidth <= 480) {
// jQuery(vc_element).attr('data-per-view',1);
jQuery('.vc_item').each(function(){
this.style.width = '25%'
this.style.height = 'auto'
})
} else {
setTimeout("vc_custominfiniteloop_init('"+vc_cil_element+"')",2000);
}
});
});
(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-TZHJ474');
var interval1 = setInterval(function(){
//console.log('ou no interval');
jQuery('.box-news .vc_gitem-zone-a').each(function() {
if((!jQuery(this).css('background-image').includes('vc_gitem_image'))) {
jQuery(this).css('background-image','none')
}
})
jQuery('.box-news .vc_gitem-zone-a a').each(function() {
jQuery(this).attr('data-hover','Leia mais')
})
}, 1000);
setTimeout(function() {
clearInterval(interval1);
},5000);
@font-face {
font-family: "FontAwesome";
src: url("/local/fonts/fa-brands-400.eot"),
url("/local/fonts/fa-brands-400.eot?#iefix") format("embedded-opentype"),
url("/local/fonts/fa-brands-400.woff2") format("woff2"),
url("/local/fonts/fa-brands-400.woff") format("woff"),
url("/local/fonts/fa-brands-400.ttf") format("truetype"),
url("/local/fonts/fa-brands-400.svg#fontawesome") format("svg");
}
@font-face {
font-family: "FontAwesome";
src: url("/local/fonts/fa-solid-900.eot"),
url("/local/fonts/fa-solid-900.eot?#iefix") format("embedded-opentype"),
url("/local/fonts/fa-solid-900.woff2") format("woff2"),
url("/local/fonts/fa-solid-900.woff") format("woff"),
url("/local/fonts/fa-solid-900.ttf") format("truetype"),
url("/local/fonts/fa-solid-900.svg#fontawesome") format("svg");
}
@font-face {
font-family: "FontAwesome";
src: url("/local/fonts/fa-regular-400.eot"),
url("/local/fonts/fa-regular-400.eot?#iefix") format("embedded-opentype"),
url("/local/fonts/fa-regular-400.woff2") format("woff2"),
url("/local/fonts/fa-regular-400.woff") format("woff"),
url("/local/fonts/fa-regular-400.ttf") format("truetype"),
url("/local/fonts/fa-regular-400.svg#fontawesome") format("svg");
unicode-range: U+F004-F005,U+F007,U+F017,U+F022,U+F024,U+F02E,U+F03E,U+F044,U+F057-F059,U+F06E,U+F070,U+F075,U+F07B-F07C,U+F080,U+F086,U+F089,U+F094,U+F09D,U+F0A0,U+F0A4-F0A7,U+F0C5,U+F0C7-F0C8,U+F0E0,U+F0EB,U+F0F3,U+F0F8,U+F0FE,U+F111,U+F118-F11A,U+F11C,U+F133,U+F144,U+F146,U+F14A,U+F14D-F14E,U+F150-F152,U+F15B-F15C,U+F164-F165,U+F185-F186,U+F191-F192,U+F1AD,U+F1C1-F1C9,U+F1CD,U+F1D8,U+F1E3,U+F1EA,U+F1F6,U+F1F9,U+F20A,U+F247-F249,U+F24D,U+F254-F25B,U+F25D,U+F267,U+F271-F274,U+F279,U+F28B,U+F28D,U+F2B5-F2B6,U+F2B9,U+F2BB,U+F2BD,U+F2C1-F2C2,U+F2D0,U+F2D2,U+F2DC,U+F2ED,U+F328,U+F358-F35B,U+F3A5,U+F3D1,U+F410,U+F4AD;
}
jQuery(document).ready(function(){
jQuery('.single-item').slick({
centerMode: true,
centerPadding: '60px',
slidesToShow: 5,
variableWidth: true,
autoplay: true,
autoplaySpeed: 2000,
responsive: [
{
breakpoint: 768,
settings: {
arrows: false,
centerMode: true,
centerPadding: '40px',
slidesToShow: 3
}
},
{
breakpoint: 520,
settings: {
arrows: false,
centerMode: true,
centerPadding: '40px',
slidesToShow: 1
}
}
]
});
});
.single-item img {
-webkit-filter: grayscale(100%);
filter: grayscale(100%);
}
.single-item img:hover {
-webkit-filter: grayscale(0);
filter: grayscale(0);
}
422n14
Souza Jr., Carlos M.; Roberts, Dar A.; Cochrane, Mark A. Combining spectral and spatial information to map canopy damage from selective logging and forest fires. Remote Sensing of Environment Volume 98, Issues 2–3, 15 October 2005, Pages 329-343.
Abstract 3l6c6k
We propose a new spectral index, the Normalized Difference Fraction Index (NDFI), for enhanced detection of forest canopy damage caused by selective logging activities and associated forest fires. The NDFI synthesizes information from several component fraction images derived from spectral mixture models. Interpretation of the NDFI data is facilitated by a contextual classification algorithm (CCA) that enables accurate mapping of logging and fire-derived canopy damages. The CCA utilizes detected log landings, which are the spatial signature of selective logging, as starting locations for searching the NDFI image for canopy damage. This process separates canopy changes due to logging and associated forest fires from those caused by other natural disturbances. These methods were tested in the Sinop region, in the Southern Brazilian Amazon. Forest transect inventories, conducted along a gradient of degraded forests, were used to evaluated the performance of the NDFI. The NDFI was more sensitive to canopy damage than any individual fraction and is shown to have the potential for further sub-classification of degradation levels in forest environments. Map accuracy of forest canopy damage using the CCA classifier, assessed with aerial videography images, was 94%. The proposed NDFI-CCA classifier approach can be fully automated and, therefore, holds great promise as a forest monitoring tool in tropical forests.