1var UEFlipboxItem = function(objFlip){ 2 3 var g_isWasHover = false; 4 var g_objFlipBox; 5 var g_isHoverMode; 6 var g_objTriggerFront, g_objTriggerBack; 7 var g_backEventType; 8 9 /** 10 * turn actually the box 11 */ 12 function turnOverActually(isBack){ 13 14 if(!isBack) 15 var isBack = g_objFlipBox.hasClass("uc-show"); 16 17 flipbox = g_objFlipBox[0]; 18 19 //turn to front 20 if( isBack ) { 21 flipbox.classList.remove('uc-show'); 22 flipbox.classList.add('uc-hide'); 23 24 return(true); 25 } 26 27 //turn to back 28 flipbox.classList.remove('uc-hide'); 29 flipbox.classList.add('uc-show'); 30 31 } 32 33 /** 34 * show the back panel 35 */ 36 function turnOverFlipBox(event){ 37 38 var objClicked = jQuery(event.target); 39 40 var isHoverEvent = event.type != "click"; 41 42 //for mobile mode 43 if(isHoverEvent == true) 44 g_isWasHover = true; 45 46 var isFrontClicked = isHoverEvent == false && objClicked.hasClass("ue-flip-box__panel--front"); 47 48 //don't allow to click on front when trigger button exists 49 if(isFrontClicked == true && g_objTriggerFront.length == true) 50 return(true); 51 52 var flipbox = g_objFlipBox[0]; 53 54 var isBack = flipbox.classList.contains('uc-show'); 55 56 //don't allow clicks on desktop 57 if(g_isHoverMode == true){ 58 59 if(isHoverEvent == false && g_isWasHover == true) 60 return(true); 61 62 }else{ 63 //click only mode - don't allow hover 64 65 if(isHoverEvent == true){ 66 67 //if no trigger button on back - turn by mouse out 68 if(isBack == true && g_backEventType == "hover" && event.type == "mouseleave"){ 69 turnOverActually(isBack); 70 } 71 72 return(true); 73 }else{ 74 75 //don't allow hover on click on trigger mode, on desktop only. on mobile allowed click 76 77 if(isBack == true && g_backEventType == "hover" && g_isWasHover == false) 78 return(true); 79 } 80 81 } 82 83 84 //don't turn back on mouseleave 85 if(isBack == false && event.type == "mouseleave") 86 return(true); 87 88 turnOverActually(isBack); 89 90 } 91 92 /** 93 * init the events 94 */ 95 function initFlipBox(objFlipboxWrapper){ 96 97 if(objFlipboxWrapper.length == 0){ 98 console.log("flipbox not found: "); 99 return(false); 100 } 101 102 g_objFlipBox = objFlipboxWrapper.find(".ue-flip-box__container"); 103 104 g_isHoverMode = g_objFlipBox.hasClass("ue-flip-box__container--hover"); 105 106 g_backEventType = "hover"; 107 if(g_isHoverMode == false) 108 g_backEventType = "click"; 109 110 g_objTriggerFront = g_objFlipBox.find(".ue-flip-box__front-trigger"); 111 g_objTriggerBack = g_objFlipBox.find(".ue-flip-box__back-trigger"); 112 113 if(g_objTriggerBack.length == false) 114 g_backEventType = "hover"; 115 116 if(g_objTriggerFront.length && g_objTriggerBack.length){ 117 g_objTriggerBack.on("click", turnOverFlipBox); 118 g_objTriggerFront.on("click", turnOverFlipBox); 119 }else{ 120 g_objFlipBox.on("click mouseenter mouseleave", turnOverFlipBox); 121 } 122 123 } 124 125 initFlipBox(objFlip); 126 127 // turn back visibility of back panel 128 setTimeout( function() { jQuery('.ue-flip-box__panel--back').css('visibility', 'visible'); },1000); 129}
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.