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, C., Tenneson, K., Dilger, J., Wespestad, C., Bullock, E. Forest Degradation and Deforestation. In: Cardille, J.A., Crowley, M.A., Saah, D., Clinton, N.E. (eds) Cloud-Based Remote Sensing with Google Earth Engine. Springer, Cham. Springer, 2024. DOI: https://doi.org/10.1007/978-3-031-26588-4_49
Abstract
Tropical forests are being disturbed by deforestation and forest degradation at an unprecedented pace (Hansen et al. in Science 342:850–853, 2013; Bullock et al. in Glob Change Biol 26:2956–2969, 2020). Deforestation completely removes the original forest cover and replaces it with another land cover type, such as pasture or agriculture fields. Generally speaking, forest degradation is a temporary or permanent disturbance, often caused by predatory logging, fires, or forest fragmentation, where the tree loss does not entirely change the land cover type. Forest degradation leads to a more complex environment with a mixture of vegetation, soil, tree trunks and branches, and fire ash. Defining a boundary between deforestation and forest degradation is not straightforward; at the time this chapter was written, there was no universally accepted definition for forest degradation (Aryal et al. in Remote Sens 13:2666, 2021). Furthermore, the signal of forest degradation often disappears within one to two years, making degraded forests spectrally similar to undisturbed forests. Due to these factors, detecting and mapping forest degradation with remotely sensed optical data is more challenging than mapping deforestation.