1jQuery(document).ready(function($) { 2 3 /** 4 * Logo scroll pienennys 5 */ 6 7 var navimg = $('.nav-branding'); 8 9 $(window).scroll(function() { 10 if ($(document).scrollTop() > 150) { 11 $(navimg).css('transform', 'translate3d(0px, -20px, 0px) scale3d(0.8, 0.8, 1) rotateX(0deg) rotateY(0deg) rotateZ(0deg) skew(0deg, 0deg)'); 12 } 13 else { 14 $(navimg).css('transform', 'translate3d(0px, 0px, 0px) scale3d(1, 1, 1) rotateX(0deg) rotateY(0deg) rotateZ(0deg) skew(0deg, 0deg)'); 15 } 16 }); 17 18 19 /** 20 * Slider 21 */ 22 23 // Poistetaan jqmobilesta layoutin rikkovat, näille ei tarvetta. jq mobilea käytetään slider swipeleft ja swiperight -eventeille 24 $.mobile.ajaxEnabled = false; 25 $.mobile.autoInitializePage = false; 26 27 var slideNumber = 1; 28 29 $(document).on('keypress',function(e) { 30 if(e.which == 13){ //Enter painettu 31 $(':focus').click(); //Triggeröi button click -event 32 } 33 }); 34 35 $(document).on('click', '[class*="w-slider-arrow"]',function(){ 36 37 if($(this).data('enabled')){ 38 39 //var parent = '#' + $(this).siblings('.w-slider-mask').attr('id'); 40 var parent = $(this).parent(), 41 sliderMask = parent.find('.w-slider-mask'); 42 43 var arrow = $(this); 44 var slideAmount = parent.find('.w-slide').length; 45 46 47 //var offset = $(parent).width(); 48 var offset = parent.find('.w-slide').width(); 49 50 //var matrix = $(parent+' > .w-slide').css('transform').replace(/[^0-9\-.,]/g, '').split(','); 51 var matrix = parent.find('.w-slide').css('transform').replace(/[^0-9\-.,]/g, '').split(','); 52 53 var x = parseInt(matrix[12] || matrix[4]); 54 55 // Oikea transform 56 if($(this).hasClass('w-slider-arrow-right')){ 57 translateX = parseInt(x - offset); 58 slideNumber++; 59 60 // Vasen transform 61 } else { 62 translateX = parseInt(x + offset); 63 slideNumber = slideNumber - 1; 64 } 65 66 // Asetetaan sliden numero parentille 67 $(parent).attr('data-activeslide', slideNumber); 68 69 // Slaidaus ylläolevien laskujen mukaan 70 $('.w-slide').each(function() { 71 if( $(this).parent().attr('id') == $(sliderMask).attr('id')){ 72 $(this).css('transform', 'translateX('+translateX+'px)'); 73 } 74 75 }); 76 77 // Disabloi nuolet CSS transformin ajaksi 78 $(arrow).data('enabled', false); 79 $(arrow).css('opacity', 0.5); 80 setTimeout(function() { 81 $(arrow).data('enabled', true); 82 $(arrow).css('opacity', 1); 83 }, 500); 84 85 86 // Viimeinen slaidi 87 if(slideNumber === slideAmount){ 88 parent.find('.w-slider-arrow-right').hide(); 89 } else { 90 parent.find('.w-slider-arrow-right').show(); 91 } 92 93 // Ensimmäinen slaidi 94 if(slideNumber === 1){ 95 parent.find('.w-slider-arrow-left').hide(); 96 } else { 97 parent.find('.w-slider-arrow-left').show(); 98 } 99 100 } else { 101 console.log('Transform not done, waiting...'); 102 } 103 104 }); 105 106 /** 107 * Slider Swipe 108 */ 109 110 $('.overflow-slider-element').on('swipeleft swiperight', function(e) { 111 e.stopPropagation(); 112 e.preventDefault(); 113 console.log('swipe'); 114 115 var parent = $(this), 116 sliderMask = parent.find('.w-slider-mask'), 117 offset = parent.find('.w-slide').width(), 118 matrix = parent.find('.w-slide').css('transform').replace(/[^0-9\-.,]/g, '').split(','), 119 x = parseInt(matrix[12] || matrix[4]), 120 slideAmount = parent.find('.w-slide').length; 121 122 123 if(e.type == 'swiperight'){ 124 if(slideNumber === 1){ 125 return; 126 } 127 translateX = parseInt(x + offset), 128 slideNumber = slideNumber - 1; 129 } else { 130 if(slideNumber === slideAmount){ 131 return; 132 } 133 134 translateX = parseInt(x - offset), 135 slideNumber++; 136 } 137 138 // Viimeinen slaidi 139 if(slideNumber === slideAmount){ 140 parent.find('.w-slider-arrow-right').hide(); 141 } else { 142 parent.find('.w-slider-arrow-right').show(); 143 } 144 145 // Ensimmäinen slaidi 146 if(slideNumber === 1){ 147 parent.find('.w-slider-arrow-left').hide(); 148 } else { 149 parent.find('.w-slider-arrow-left').show(); 150 } 151 152 // Asetetaan sliden numero parentille 153 $(parent).attr('data-activeslide', slideNumber); 154 155 // Slaidaus ylläolevien laskujen mukaan 156 $('.w-slide').each(function() { 157 if( $(this).parent().attr('id') == $(sliderMask).attr('id')){ 158 $(this).css('transform', 'translateX('+translateX+'px)'); 159 } 160 161 }); 162 }); 163 164 /** 165 * Ihminen modaali / slidaava profiili 166 */ 167 168 $(document).on('click', '.people-card-label-showprofile, .people-open-profile-link',function(e){ 169 //$('.people-card-label-showprofile, .people-open-profile-link').on('click', function(e){ 170 171 e.preventDefault(); 172 173 174 // Avaa modaali 175 $('.people-modal-element').css('transform', 'translateX(0vw)'); 176 $('.people-modal-bg').css('opacity', '0.8'); 177 178 var target_id = $(this).data('ihminen-id'); 179 var target_modal = $('.people-modal-element').find('.people-modal-content#'+target_id); 180 181 target_modal.delay(50).queue(function (next) { 182 target_modal.css('transform', 'translate3d(0vw, 0px, 0px)'); 183 next(); 184 }); 185 186 187 188 // Sulje modaali 189 $('.people-modal-item-close-trigger').on('click', function(e){ 190 191 $('.people-modal-bg').css('opacity', '0'); 192 target_modal.css('transform', 'translate3d(100vw, 0px, 0px)'); 193 target_modal.delay(300).queue(function (next) { 194 195 $('.people-modal-element').css('transform', 'translateX(100vw)'); 196 197 //target_modal.css('display', 'none'); 198 next(); 199 }); 200 //target_modal.delay(500).css('transform', 'translate3d(0vw, 0px, 0px) scale3d(1, 1, 1) rotateX(0deg) rotateY(0deg) rotateZ(0deg) skew(0deg, 0deg)'); 201 }); 202 203 }); 204 205 /** 206 * Menu 207 */ 208 209 // Avaa valikko 210 $(document).on('click', '.nav-item-dropdown-toggle',function(){ 211 //$('.nav-item-dropdown-toggle').on('click', function(e){ 212 213 var dropdown = $(this).parent().find('.nav-dropdown-list'); 214 215 216 217 // Avaa klikattu (jos ei jo auki) 218 if(dropdown.hasClass('w--open')){ 219 220 $(dropdown).removeClass('w--open'); 221 222 } else { 223 224 // Sulje muut avoinna olevat 225 $('.nav-dropdown-list.w--open').removeClass('w--open'); 226 227 // Avaa klikatun elementin dropdown 228 $(dropdown).addClass('w--open'); 229 230 } 231 232 233 234 235 }); 236 237 // Jos klikataan muualle kuin headeriin, sulje dropdown 238 $(document).click(function (e) { 239 var $tgt = $(e.target); 240 241 if ($tgt.closest('.site-header').length == 0) { 242 $('.nav-dropdown-list.w--open').removeClass('w--open'); 243 } 244 245 }); 246 247 // Avaa Ihmiset suodatus 248 249 $(document).ready(function() { 250 $('.people-filter-open-trigger').click(function() { 251 $('.people-filters-wrapper').slideToggle("fast"); 252 }); 253 }); 254 255 // Avaa Asiantuntijat 256 257 /*$(document).ready(function() { 258 $('.single-service-aside-mobile-trigger').click(function() { 259 $('.single-service-aside-holder').animate({ 260 width: 'toggle', direction: "left" 261 }, "slow") 262 }); 263 }); 264 265 $(document).ready(function() { 266 $('.single-service-aside-mobile-trigger').click(function() { 267 $('.single-service-aside-holder').toggle("slide", {direction: "right" }, 1000); 268 $('.single-service-aside-trigger-label-open').css('display', 'none'); 269 }); 270 }); 271 272 */ 273 274 /** 275 * Asiantuntija-osion dynaaminen fixed-toiminnallisuus. 276 * Aloita fixed vasta tietyssä kohtaa scrollausta 277 */ 278 279 if($('.palvelu-template-default').length || $('.page-template-aloita').length || $('.page-template-aloita-extra').length ){ 280 281 // Osion ylä- ja alarajat joissa fixed, muuten absolute. Lasketaan sisällön yllä olevien (hero, menut jne) korkeuden mukaan 282 var sidesectionTopLimit = $('.section-hero').outerHeight() + $('.site-header').outerHeight(), 283 sidesectionBottomLimit = 0; 284 285 if( $('#ratkaisut').length) { 286 sidesectionBottomLimit = $('#ratkaisut').offset().top - ($('#ratkaisut').height() / 2) - $('.single-service-aside-col').height(); 287 } else { 288 sidesectionBottomLimit = $('.section.cta-main').offset().top - ($('.section.cta-main').height() / 2) - $('.single-service-aside-col').height(); 289 } 290 291 if($('.service-secondary-nav').length){ 292 sidesectionTopLimit = sidesectionTopLimit + $('.service-secondary-nav').outerHeight(); 293 } 294 } 295 296 $(window).scroll(function() { 297 298 if ($(window).width() > 990) { 299 300 if ( sidesectionTopLimit <= $(window).scrollTop() && $(window).scrollTop() <= sidesectionBottomLimit ) { 301 302 $('.single-service-aside-holder').css({ 303 'position' : 'fixed', 304 'top' : '0%' 305 }); 306 307 // Yli toplimitin ja yli bottomlimitin (absolute mutta top height bottomlimittiin) 308 } else if (sidesectionTopLimit <= $(window).scrollTop() && $(window).scrollTop() >= sidesectionBottomLimit ) { 309 310 $('.single-service-aside-holder').css({ 311 'position' : 'absolute', 312 'top' : (sidesectionBottomLimit)+'px' 313 }); 314 315 // Alle toplimitin 316 } else { 317 318 $('.single-service-aside-holder').css({ 319 'position' : 'absolute', 320 'top' : (sidesectionTopLimit)+'px' 321 }); 322 323 } 324 325 } 326 }); 327 328 329 330 /**
331 * Asiantuntija-osion näyttäminen mobiilissa, toggle on off 332 */ 333 $(document).on('click', '.single-service-aside-trigger-label-open',function(e){ 334 335 e.preventDefault(); 336 337 // Avaa modaali 338 $('.single-service-aside-holder').addClass('open'); 339 $('.single-service-aside-holder').css('z-index', '9999'); 340 $('.single-service-aside-col').css('transform', 'translateX(0vw)'); 341 $('.single-service-aside-trigger-label-open').css('display', 'none'); 342 $('.single-service-aside-trigger-label-hide').css('display', 'block'); 343 344 345 346 // Sulje modaali 347 $('.single-service-aside-trigger-label-hide').on('click', function(e){ 348 349 e.preventDefault(); 350 351 $('.single-service-aside-holder').removeClass('open'); 352 $('.single-service-aside-holder').css('z-index', '1'); 353 $('.single-service-aside-col').css('transform', 'translateX(100vw)'); 354 $('.single-service-aside-trigger-label-open').css('display', 'block'); 355 $('.single-service-aside-trigger-label-hide').css('display', 'none'); 356 357 //target_modal.delay(500).css('transform', 'translate3d(0vw, 0px, 0px) scale3d(1, 1, 1) rotateX(0deg) rotateY(0deg) rotateZ(0deg) skew(0deg, 0deg)'); 358 }); 359 360 }); 361 362 /** 363 * Mobiilimenu 364 */ 365 366 // Avaa valikko 367 $(document).on('click', '.nav-mobile-trigger',function(){ 368 369 var dropdown = $('.nav-mobile-menu'); 370 371 // Avaa klikattu (jos ei jo auki) 372 if(dropdown.hasClass('w--open')){ 373 374 $(dropdown).removeClass('w--open'); 375 $(dropdown).css('opacity', '0'); 376 $(dropdown).css('transform', 'translateY(-100vh)'); 377 378 } else { 379 380 // Avaa klikatun elementin dropdown 381 $(dropdown).addClass('w--open'); 382 $(dropdown).css('opacity', '1'); 383 $(dropdown).css('transform', 'translateY(0vh)'); 384 } 385 386 }); 387 388 // Mobiilimenu accordionit 389 $(document).on('click', '.mobile-menu-item, .mobile-menu-sub-item', function(){ 390 391 var dropdown = $(this).next(), 392 curHeight = dropdown.height(), 393 autoHeight = dropdown.css('height', 'auto').height(); 394 395 dropdown.height(curHeight); // Reset to Default Height 396 397 // Avaa klikattu (jos ei jo auki) 398 if(dropdown.hasClass('w--open')){ 399 400 dropdown.removeClass('w--open'); 401 dropdown.stop().animate({ height: 0}, 300); 402 $(this).find('.nav-item-icon').removeClass('flipped'); 403 404 } else { 405 406 407 408 // Avaa klikatun elementin dropdown 409 dropdown.addClass('w--open'); 410 dropdown.stop().animate({ height: autoHeight}, 300); 411 412 $(this).find('.nav-item-icon').addClass('flipped'); 413 414 // Parentin korkeus auto, koska korkeus kasvaa 415 if($(this).hasClass('mobile-menu-sub-item')){ 416 $(this).parent().parent().css('height', 'auto'); 417 } 418 } 419 420 }); 421 422 // Footer accordionit 423 $(document).on('click', '.footer-accordion-item', function(){ 424 425 var dropdown = $(this).find('.footer-accordion-content'), 426 curHeight = dropdown.height(), 427 autoHeight = dropdown.css('height', 'auto').height(); 428 429 dropdown.height(curHeight); // Reset to Default Height 430 431 // Avaa klikattu (jos ei jo auki) 432 if(dropdown.hasClass('w--open')){ 433 434 dropdown.removeClass('w--open'); 435 dropdown.stop().animate({ height: 0}, 300); 436 $(this).find('.nav-item-icon').removeClass('flipped'); 437 438 } else { 439 440 // Avaa klikatun elementin dropdown 441 dropdown.addClass('w--open'); 442 dropdown.stop().animate({ height: autoHeight}, 300); 443 444 $(this).find('.nav-item-icon').addClass('flipped'); 445 } 446 447 }); 448 449 /** 450 * Historia 451 */ 452 453 // Jos historia-template 454 if($('body.page-template-historia').length > 0){ 455 456 $.fn.isInViewport = function() { 457 var elementTop = $(this).offset().top; 458 var elementBottom = elementTop + $(this).outerHeight(); 459 460 var viewportTop = $(window).scrollTop(); 461 // Puolessa välissä viewporttia 462 var viewportBottom = viewportTop + $(window).height() / 2; 463 464 return elementBottom > viewportTop && elementTop < viewportBottom; 465 }; 466 467 // Poistu - smooth scroll 468 $('.history-back-to-top-trigger').click(function(e){ 469 470 e.preventDefault(); 471 472 $('html, body').animate({scrollTop: $('#sisalto-alku').offset().top - 300 }, 900); 473 474 }); 475 476 /* 477 ** Parallax scroll 478 */ 479 480 $(window).on('load scroll', function() { 481 482 var parallaxElement = $('.history-item'), 483 parallaxQuantity = parallaxElement.length; 484 485 window.requestAnimationFrame(function() { 486 for (var i = 0; i < parallaxQuantity; i++) { 487 var currentElement = parallaxElement.eq(i), 488 windowTop = $(window).scrollTop(), 489 elementTop = currentElement.offset().top, 490 elementHeight = currentElement.height(), 491 viewPortHeight = window.innerHeight * 0.5 - elementHeight * 0.5, 492 scrolled = windowTop - elementTop + viewPortHeight; 493 if(currentElement.isInViewport()){ 494 currentElement.css({ 495 transform: 'translate3d(0,' + (scrolled * -0.04) + 'px, 0)' 496 }); 497 } else { 498 currentElement.css({ 499 transform: 'translate3d(0,' + (scrolled * -0.01) + 'px, 0)' 500 }); 501 } 502 503 } 504 }); 505 506 }); 507 508 // Osion seuraaminen ja aktiivisen / inaktiivisten opacity 509 let services = document.querySelectorAll('.history-item'); 510 511 const options = { 512 rootMargin: '-10%', 513 threshold: 0.5 // Observer should be fired when 50% of an observed element intersects the "capturing frame"; 514 } 515 516 let Observer = new IntersectionObserver( 517 function (entries, Observer) {
518 entries.forEach(entry => { 519 if (entry.isIntersecting) { 520 521 visible = $(entry.target); 522 //console.log(visible.find('.history-year > div').text() + ' intersecting'); 523 524 visible.css('opacity', '1'); 525 526 } else { 527 $(entry.target).css('opacity', '0.2'); 528 } 529 530 }); 531 }, options); 532 533 services.forEach(section => Observer.observe(section)); 534 535 } 536 537 /** 538 * Ratkaisumme-tabit 539 */ 540 541 $(document).on('click', '.w-tab-link', function(e){ 542 543 e.preventDefault(); 544 var tab = $(this), 545 target = $(this).attr('href'), 546 content = $('.tabs-content-element').find(target); 547 548 // Sulje kaikki 549 $('.tab-content-pane').removeClass('w--tab-active'); 550 $('.tabs-item-link').removeClass('w--current'); 551 552 // Avaa target 553 $(content).addClass('w--tab-active'); 554 $(tab).addClass('w--current'); 555 556 }); 557 558 559});
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.