1/* ---- /navHighlightOnScroll/index.js -------------------------------------------------------- */ 2 3!(function(){ 4 window.navHighlightOnScroll_mostInViewport = function(elements) { 5 var els = []; 6 $(elements).each(function(index){ els.push({el:this,size:navHighlightOnScroll_isInViewport(this,index)}); }) 7 els = els.sort(function(a,b){ return b.size - a.size; }) 8 if(els[0] && els[0].size>0) 9 return $(els[0].el).index(); 10 return null 11 } 12 window.navHighlightOnScroll_isInViewport = function(element,index) { 13 var elementHeight = $(element).outerHeight(); 14 var elementTop = $(element).offset().top; 15 var elementBottom = elementTop + elementHeight; 16 var viewportTop = $(window).scrollTop(); 17 var viewportBottom = viewportTop + $(window).height(); 18 var top = elementTop>viewportTop ? elementTop : viewportTop 19 var bottom = elementBottom<viewportBottom ? elementBottom : viewportBottom 20 // console.log(element,bottom-top); 21 return 10000 * ((bottom-top) / elementHeight) - index; 22 } 23 window.navHighlightOnScroll = function(buttons,items,poolingSpeed=100) { 24 setInterval(function(buttons,items) { 25 var current = navHighlightOnScroll_mostInViewport(items) 26 if(current!==null) 27 { 28 $(buttons).not(':eq('+current+')').removeClass('highlight') 29 $(buttons).eq(current).addClass('highlight') 30 } 31 else 32 { 33 $(buttons).removeClass('highlight') 34 } 35 }.bind(null, buttons,items),poolingSpeed) 36 } 37})(); 38 39//navHighlightOnScroll('#mod_chambres--liste-des-chambres .quick-access-menu-wrap > button','#mod_chambres--liste-des-chambres .items > div'); 40 41 42 43/* ---- /quickBxSlider/index.js -------------------------------------------------------- */ 44 45!(function(){ 46 window.quickBxSlider = function(container,param=null) { 47 param = { 48 pager: param.pager ? param.pager : true, 49 controls: param.controls ? param.controls : true, 50 speed: param.speed ? param.speed : 500, 51 auto: param.auto ? param.auto : 0, 52 items: param.items ? param.items : ">div", 53 noBreakAfter: param.noBreakAfter ? param.noBreakAfter : true, 54 } 55 56 setTimeout(function(){ 57 var el = $(container); 58 59 if(param.noBreakAfter) 60 el.find('>div[style*=break-after]').remove() 61 62 var items = el.find(param.items); 63 if(items.length>0) 64 { 65 el.bxSlider({ 66 pager:items > 1 ? param.pager : false, 67 controls:param.controls, 68 speed:param.speed, 69 auto:param.auto, 70 }) 71 } 72 }.bind(null,container,param),500) 73 } 74})();
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.