PageSourceSearch

https://www.condat.fr/wp-content/themes/condatv2/js/scripts_condat.js?ver=5.5.15

js condat.fr collected 2026-10-04 22:46:36 UTC 9,013 bytes, 269 lines download raw bytes

1$ = jQuery;
2
3// Navigation persistante
4$(document).scroll(function(){
5    if ($(this).scrollTop() > $('.smallnav').outerHeight()+$('#main-menu-nav').outerHeight()){  
6        $('body').addClass('sticky');
7    }
8    else{
9        $('body').removeClass('sticky');
10    }
11});
12
13//Fonction nécéssitant la fin de chargement de la page pour s'activer
14$(window).load(function(){
15    
16    //Perfect scrollbar des contenu avec scrollbar customisé (domaines d'application)
17    $('.list .slider').perfectScrollbar();
18    
19    /***HOME PAGE SLICK***/
20    $('.main-sliders').slick({
21        accessibility: false,
22        adaptiveHeight: false,
23        autoplay: true,
24        autoplaySpeed: 5000,
25        arrows: false,
26        dots: true,
27        draggable: true,
28        infinite: true,
29        pauseOnHover: true,
30        pauseOnDotsHover: true,
31        responsive: [
32            {
33                breakpoint: 670,
34                settings: {
35                    slidesToShow: 1,
36                    slidesToScroll: 1,
37                    dots: false,
38                    autoplay: true
39                }
40            }
41        ]
42    });
43    
44    //testMarkerPosition();
45});
46
47//Fonction pouvant être activé de façon ponctuel dès la disponibilité des éléments du document
48$(document).ready(function () {
49    
50    // Cookies 
51    $.cookiesDirective({
52        explicitConsent: false,
53        privacyPolicyUri: BASE_URL+'/mentions-legales/',
54        position: 'bottom',
55        fontSize: '12px'
56    });
57    
58    //Search Box
59    $('.search-form button').click(function () {
60        
61        //Si une valeur saisie
62        if($('#search-words').val())
63        {
64            $('.search-form .search-error').hide();
65            $('.search-form form').submit();
66        }else{
67            $('.search-form .search-error').fadeIn(function(){
68                $('body').click(function(){
69                    if($('.search-form .search-error').is(':visible'))
70                    {
71                        $('body').unbind('click');
72                        $('.search-form .search-error').fadeOut();
73                    }
74                });
75            }).click(function(){
76                $(this).fadeOut();
77            });
78        }
79    });
80    
81    //Page produits : menu permanent contenu
82    var $productsMenuTabs = $('ul.tabs');
83    
84    //Actif que si l'objet est trouvé
85    if($productsMenuTabs.length)
86    {
87        var $baseElementWidth = $productsMenuTabs.width();
88        var $element_top_position = $productsMenuTabs.offset().top;
89
90        //Si la page est chargé et que le scroll est déjà dépassé
91        setMenuPosition();
92
93        //On scroll de la page
94        $(window).bind('scroll', function() {
95             setMenuPosition();
96        });
97    }
98    
99    //Function qui fixe ou non le menu
100    function setMenuPosition()
101    {
102        if ($(window).scrollTop() > $element_top_position) {
103            
104            //N'agis que si le menu n'as pas encore subit la class FIXED (pour l'animation)
105            if(!$productsMenuTabs.hasClass('fixed-menu-tabs'))
106            {
107                $productsMenuTabs.addClass('fixed-menu-tabs');
108                
109                
110                $productsMenuTabs.css({
111                    top: -$productsMenuTabs.outerHeight()+'px'
112                });
113
114                //Fix l'element width
115                $productsMenuTabs.css({
116                    maxWidth: $baseElementWidth+'px',
117                    left: $('.custom-zones').offset().left+'px'
118                });
119                
120                $productsMenuTabs.animate({
121                    top: $('.sticky-nav').outerHeight()+'px'
122                });
123            }
124        } else {
125            //On remet le top du menu à sa position initiale
126            $element_top_position = $productsMenuTabs.offset().top;
127            //On retire le fixed class
128            $productsMenuTabs.removeClass('fixed-menu-tabs');
129            $productsMenuTabs.css({
130                left: 0
131            });
132        }
133    }
134    
135    //Page produits : Action de click sur les boutons du menu permanent
136    var $productsMenuTabs = $('ul.tabs');
137    //Li actif
138    var $currentActiveLi = $productsMenuTabs.find('li.active');
139    
140    var markersTable = new Array();
141    var markersTableName = new Array();
142    var markerFunctionActive = true;
143    
144    //Pour chaque LI du menu
145    $productsMenuTabs.children('li').each(function(){
146        
147        //Récupère l'URL hash du lien
148        var full_url = $(this).children('a').attr('href');
149
150        //Explode
151        var parts = full_url.split('#');
152        //Ne récupère que le nom qui a subit un sanitize_title()
153        var trgt = parts[1];
154
155        // Créer un tableau associatif pour les markers class="content-marker"
156        markersTable.push($(this));
157        markersTableName.push(trgt);
158        
159        //Lorsque l'on clic dessus
160        $(this).click(function(e){
161            //On interdit l'action native du lien
162            e.preventDefault();
163            markerFunctionActive = false;
164            
165            //Si il n'as pas encore la class active
166            if(!$(this).hasClass('active')){
167                $(this).addClass('active');
168                
169                //Si un currentLI était déjà spécifié autre que lui même
170                $currentActiveLi.removeClass('active');
171                $currentActiveLi = $(this);
172            }
173            
174            //Récupère la position du target par rapport à la position 0 de la fenêtre
175            var target_offset = $('#' + trgt).offset();
176            //Calcul la position finale du scroll
177            
178            // Plus la hauteur du menu tabs car il est en position fixed hauteur non déductible du scroll 
179            // Moins la hauteur de la petite fleche de 10px
180            // moins la hauteur du margin top de 10px
181            var target_top = target_offset.top+($('ul.tabs').outerHeight()-10-10);
182            
183            if(!$productsMenuTabs.hasClass('fixed-menu-tabs'))
184            {
185                target_top = target_offset.top-20;
186            }
187            
188            // Retire la hauteur du menu principal de la distance a scroll ainsi que la hauteur du menu tabs Plus la hauteur de la fleche
189            target_top = target_top-($('.sticky-nav').outerHeight()*2)-$('ul.tabs').outerHeight();
190            
191            //Animation du scroll vers la position finale
192            $('html, body').animate({scrollTop: target_top}, 1000, function(){
193                markerFunctionActive = true;
194            });
195            
196        });
197    });
198    
199    //Lorsque l'ont resize la fenetre
200    $(window).resize(function(){
201        if($productsMenuTabs.hasClass('fixed-menu-tabs'))
202        {
203            $productsMenuTabs.css({
204                left: $('.custom-zones').offset().left+'px'
205            });
206        }
207    });
208    
209    // Lorsque l'ont scroll la page, change la classe des onglets TABS lorsque la barre de tabs touche un marker class="content-marker"
210    
211//    console.log(markersTable);
212//    console.log(markersTable.length);
213    
214    $(window).scroll(function(){
215        if($('ul.tabs').length)
216        {
217            testMarkerPosition();
218        }
219    });
220    
221    function testMarkerPosition()
222    {
223        if(markerFunctionActive)
224        {
225            var currentTabTopOffset = $('ul.tabs').offset().top + $('ul.tabs').outerHeight() + $('.main-menu-nav-cont .subcont').outerHeight();
226            //console.log(currentTabTopOffset);
227
228            // Pour chaque marker, est-ce que l'offset de la tab est supérieur au marker
229            $(markersTable).each(function(i){
230                var markerTop = $('#' + markersTableName[i]).offset().top;
231
232//                console.log('currentTabTopOffset ' + currentTabTopOffset);
233//                console.log('Marker ' + i + ' : ' + markerTop);
234                if(currentTabTopOffset >= markerTop)
235                {
236                    // Reset tous les autres onglet
237                    $('ul.tabs li').each(function(){
238                        $(this).removeClass('active');
239                    });
240                    // Puis ajoute la class à l'onget actif
241                    $(this).addClass('active');
242                }
243            });
244        }
245    }
246    
247    //MENU ARBORESCENCE DE GAUCHE (PRODUITS / DOMAINES)
248    $('.products-tree ul li').each(function(){
249        var currentLi = $(this);
250        var currentAfter = $(this).find('div.expand-arr');
251        
252        $(currentAfter).click(function(e){
253            e.preventDefault();
254            
255            var nextUL = $(currentLi).children('ul');
256            
257            if($(nextUL).is(':visible')){
258                $(nextUL).slideUp();
259                $(currentAfter).addClass('inactive');
260                $(currentAfter).removeClass('active');
261            }else{
262                $(nextUL).slideDown();
263                $(currentAfter).addClass('active');
264                $(currentAfter).removeClass('inactive');
265            }
266        });
267    });
268});
269

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.