1// if you want stopped slider - write in console ( window.asproStoriesSliderStopped = true ) and then open popup 2 3$(document).on('touchstart', '.front_stories .item', function(e) { 4 window.touchStoriesX = e.originalEvent.changedTouches[0].clientX; 5 window.touchStoriesY = e.originalEvent.changedTouches[0].clientY; 6 setTimeout( 7 function() { 8 window.touchStoriesX = false; 9 window.touchStoriesY = false; 10 } 11 , 300); 12}); 13 14$(document).on('touchend', '.front_stories .item', function(e) { 15 if(window.touchStoriesX == e.originalEvent.changedTouches[0].clientX && window.touchStoriesY == e.originalEvent.changedTouches[0].clientY) { 16 $(this).trigger('click'); 17 } 18}); 19 20document.addEventListener("keydown", function(e){ 21 if (e.keyCode == 27) { 22 $('.stories-popup').click(); 23 } 24}); 25 26$(document).on('click', '.front_stories .item', function() { 27 if(!window.asproStoriesLoading) { 28 window.asproStoriesLoading = true; 29 var _this = $(this); 30 var storiesPopupWrapper = $('body > .stories-popup'); 31 if(!storiesPopupWrapper.length) { 32 storiesPopupWrapper = $('<div class="stories-popup"></div>'); 33 } 34 35 var ajaxData = { 36 sectionData: _this.data(), 37 sortData: _this.closest('.front_stories').data(), 38 } 39 $.ajax({ 40 url: arAsproOptions.SITE_DIR + 'ajax/storiesInfo.php', 41 data: ajaxData, 42 dataType: 'json', 43 type: 'POST', 44 success: function(result) { 45 if(result && result.error) { 46 console.log('Fail get stories! Reason: '+result.error); 47 } else if(!result || typeof result != 'object') { 48 console.log('Fail get stories! Reason: result is '+result); 49 } else { 50 var html = generateSectionsHtml(result, _this.data()); 51 if(html) { 52 storiesPopupWrapper.html(html); 53 storiesPopupWrapper.addClass('stories-popup--visible'); 54 $('body').append(storiesPopupWrapper); 55 56 afterShowActions(result); 57 } 58 } 59 window.asproStoriesLoading = false; 60 }, 61 error: function(jqXHR, error, errorThrown) { 62 console.log('Fail get stories! Reason: '+errorThrown); 63 window.asproStoriesLoading = false; 64 } 65 }); 66 } 67}); 68 69$(document).on('click', '.stories-popup__close', function() { 70 var _this = $(this); 71 var popup = _this.parents('.stories-popup'); 72 popup.remove(); 73}); 74 75$(document).on('click', '.stories-popup', function(e) { 76 var _this = $(this); 77 var _target = $(e.target); 78 if(_target.hasClass('stories-popup')) { 79 var popup = _this.closest('.stories-popup'); 80 popup.remove(); 81 } 82}); 83 84$(document).on('click', '.front_stories .top_block a', function(e) { 85 e.preventDefault(); 86 $('.front_stories .item').eq(0).trigger('click'); 87}); 88 89function getSliderSectionsHTML(elementsHTML) { 90 var html = ''; 91 var sectionSliderClass = 'stories-popup__section-slider'; 92 var sectionSliderInnerClass = 'stories-popup__section-slider-inner'; 93 94 html += '<div class="'+sectionSliderClass+'">'; 95 html += '<div class="'+sectionSliderClass+'-loader"><svg width="48" height="48" viewBox="0 0 300 300" xmlns="http://www.w3.org/2000/svg" version="1.1"><path d="M 150,0 a 150,150 0 0,1 106.066,256.066 l -35.355,-35.355 a -100,-100 0 0,0 -70.711,-170.711 z" fill="#0000001a"><animateTransform attributeName="transform" attributeType="XML" type="rotate" from="0 150 150" to="360 150 150" begin="0s" dur=".8s" fill="freeze" repeatCount="indefinite"></animateTransform></path></svg></div>'; 96 html += '<div class="'+sectionSliderInnerClass+'">'; 97 html += elementsHTML; 98 html += '</div>'; 99 html += '</div>'; 100 101 return html; 102} 103 104function getSliderElementsHTML(elementsHTML, elementsCount, sectionInfo) { 105 var html = ''; 106 var elementSliderClass = 'stories-popup__element-slider' + (sectionInfo.current ? ' stories-popup__element-slider--active' : ' stories-popup__element-slider--paused'); 107 var elementSliderHeaderClass = 'stories-popup__element-slider-header'; 108 var elementSliderHeaderImgClass = 'stories-popup__element-slider-header-img'; 109 var elementSliderHeaderNameClass = 'stories-popup__element-slider-header-name'; 110 var elementSliderElementsWrapperClass = 'stories-popup__element-slider-elements'; 111 112 var animationDefaultTime = 5; 113 114 var topPanelHtml = ''; 115 var topPanelClass = 'stories-popup__element-slider-panel'; 116 var topPanelElementClass = 'stories-popup__element-slider-panel-element'; 117 topPanelHtml += '<div class="'+topPanelClass+'">'; 118 for(var i = 0;i < elementsCount;i++) { 119 topPanelHtml += '<div class="'+topPanelElementClass + (i == 0 ? ' '+topPanelElementClass+'--active' : '')+'"><div class="'+topPanelElementClass+'-line" style="animation-duration: '+animationDefaultTime+'s;"></div></div>'; 120 } 121 topPanelHtml += '</div>'; 122 123 124 html += '<div class="'+elementSliderClass+'" data-section-id="'+sectionInfo.ID+'">'; 125 126 html += '<div class="'+elementSliderElementsWrapperClass+'">'; 127 html += elementsHTML; 128 html += '</div>'; 129 130 html += topPanelHtml; 131 132 html += '<div class="'+elementSliderHeaderClass+'">'; 133 if (sectionInfo.PICTURE) { 134 html += '<div class="'+elementSliderHeaderImgClass+'" style="background: url('+sectionInfo.PICTURE+') no-repeat center;" ></div>'; 135 } 136 html += '<div class="'+elementSliderHeaderNameClass+'">'+sectionInfo.NAME+'</div>'; 137 html += '</div>'; 138 139 html += '</div>'; 140 141 return html; 142} 143
144function generateElementHtml(elementInfo, elementKey) { 145 var html = ''; 146 var elementWrapperClass = 'stories-popup__element' + (elementKey > 0 ? '' : ' stories-popup__element--active'); 147 var elementImgClass = 'stories-popup__element-image'; 148 var elementButtonClass = 'stories-popup__element-btn'; 149 150 var elementSliderElementsNavWrapperClass = 'stories-popup__element-slider-navs', 151 elementSliderElementsNavPrevClass = 'stories-popup__element-slider-navs-prev', 152 elementSliderElementsNavNextClass = 'stories-popup__element-slider-navs-next'; 153 154 html += '<div class="'+elementWrapperClass+'" data-id="'+elementInfo.ID+'">'; 155 html += '<div class="'+elementImgClass+'" style="background: url('+elementInfo.PREVIEW_PICTURE+') no-repeat center;" ></div>'; 156 if(elementInfo.PROPERTY_BTN_TEXT_VALUE) { 157 var elementButtonTag = elementInfo.PROPERTY_BTN_LINK_VALUE ? 'a' : 'div'; 158 var elementButtonHref = elementInfo.PROPERTY_BTN_LINK_VALUE ? ' href="'+elementInfo.PROPERTY_BTN_LINK_VALUE+'"' : ''; 159 html += '<'+elementButtonTag+elementButtonHref+' class="btn '+elementButtonClass+' '+elementInfo.PROPERTY_BTN_CLASS_VALUE+'" >'+elementInfo.PROPERTY_BTN_TEXT_VALUE+'</'+elementButtonTag+'>'; 160 } 161 162 html += '<div class="'+elementSliderElementsNavWrapperClass+'">'+ 163 '<div class="'+elementSliderElementsNavPrevClass+'"></div>'+ 164 '<div class="'+elementSliderElementsNavNextClass+'"></div>'+ 165 '</div>' 166 167 html += '</div>'; 168 169 return html; 170} 171 172function afterShowActions(sectionInfo) { 173 sectionsSliderInit(sectionInfo); 174} 175 176function sectionsSliderInit(sections) { 177 var index = 0; 178 var activeSectionIndex = 0; 179 for (var key in sections) { 180 if (sections[key].current) { 181 activeSectionIndex = index; 182 break; 183 } 184 index++; 185 } 186 var options = { 187 popup: $('.stories-popup'), 188 activeSlideIndex: activeSectionIndex, 189 activeSlideClass: 'stories-popup__element-slider--active', 190 pausedSlideClass: 'stories-popup__element-slider--paused', 191 slidesSelector: '.stories-popup__element-slider', 192 innerSelector: '> .stories-popup__section-slider-inner', 193 activeElementClass: 'stories-popup__element--active', 194 elementsSelector: '.stories-popup__element', 195 elementNavPrevClass: 'stories-popup__element-slider-navs-prev', 196 elementNavNextClass: 'stories-popup__element-slider-navs-next', 197 elementPanelClass: 'stories-popup__element-slider-panel-element', 198 elementPanelActiveClass: 'stories-popup__element-slider-panel-element--active', 199 elementPanelFinishedClass: 'stories-popup__element-slider-panel-element--finishied', 200 changeSlideTime: 5000, 201 transition: 0.25, 202 activeSlideMargin: 8, 203 dragAmount: 150, 204 mobile: false, 205 breakpoints: { 206 '(max-width: 1025px)': { 207 activeSlideMargin: 4, 208 }, 209 '(max-width: 566px)': { 210 mobile: true, 211 }, 212 } 213 }; 214 InitAsproStoriesSectionSlider($('.stories-popup__section-slider'), options); 215} 216 217function generateSectionsHtml(sections, sectionData) { 218 var html = ''; 219 html += getPopupCloseIcon(); 220 221 var elementsHTML = ''; 222 for (var sectionKey in sections) { 223 var section = sections[sectionKey]; 224 if(section.ID == sectionData.sectionId) { 225 section.current = true; 226 } 227 228 elementsHTML += generateElementsHtml(section); 229 } 230 231 html += getSliderSectionsHTML(elementsHTML); 232 233 return html; 234} 235 236function generateElementsHtml(sectionInfo) { 237 var html = ''; 238 var elementsHTML = ''; 239 240 var elements = sectionInfo.CHILDS; 241 242 var elementsHTML = ''; 243 for (var elementKey in elements) { 244 var element = elements[elementKey]; 245 elementsHTML += generateElementHtml(element, elementKey); 246 } 247 248 html += getSliderElementsHTML(elementsHTML, elements.length, sectionInfo); 249 250 return html; 251} 252 253function getPopupCloseIcon() { 254 var iconClass = 'stories-popup__close'; 255 var icon = '<div class="'+iconClass+'"><svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M1 1L13 13M13 1L1 13" stroke="white" stroke-width="2" stroke-linecap="round"/></svg></div>'; 256 257 return icon; 258} 259 260function InitAsproStoriesSectionSlider(el, options) {
261 el.asproStoriesSectionsSlider(options); 262} 263 264$.fn.asproStoriesSectionsSlider = function( options ){ 265 function _storiesSlider(slider, options) { 266 var _slider = $(slider); 267 268 var responsiveOptions = Object.assign({}, options); 269 for(var width in options.breakpoints) { 270 if(window.matchMedia(width).matches) { 271 responsiveOptions = Object.assign(responsiveOptions, options.breakpoints[width]); 272 } 273 } 274 275 responsiveOptions.setStyles = function() { 276 responsiveOptions.sliderInner.css({ 277 'display': 'flex', 278 'align-items': 'center', 279 'transition': 'margin-left '+ responsiveOptions.transition +'s ease-in-out', 280 'margin-left': responsiveOptions.calculateMargin(responsiveOptions.activeSlideIndex), 281 }); 282 responsiveOptions.slider.css({ 283 'overflow': 'hidden', 284 }); 285 } 286 287 responsiveOptions.getCurrentSizes = function() { 288 responsiveOptions.sliderWidth = responsiveOptions.slider.outerWidth(true); 289 responsiveOptions.sliderHeight = responsiveOptions.slider.outerHeight(true); 290 responsiveOptions.updateSlidesHeight(); 291 } 292 293 responsiveOptions.calculateMargin = function(slideIndex) { 294 responsiveOptions.getCurrentSizes(); 295 if(responsiveOptions.mobile) { 296 responsiveOptions.sliderInnerMargin = -responsiveOptions.slideWidth*(slideIndex + 1) + responsiveOptions.sliderWidth/2 + responsiveOptions.slideWidth/2; 297 } else { 298 responsiveOptions.sliderInnerMargin = -responsiveOptions.slideWidth*(slideIndex + 1) + responsiveOptions.sliderWidth/2 + responsiveOptions.slideWidth/2 - responsiveOptions.sliderWidth/100*responsiveOptions.activeSlideMargin; 299 } 300 301 } 302 303 responsiveOptions.setCenter = function(slideIndex) { 304 responsiveOptions.calculateMargin(slideIndex); 305 responsiveOptions.sliderInner.css({ 306 'margin-left': responsiveOptions.sliderInnerMargin, 307 }); 308 } 309 310 responsiveOptions.closePopup = function() { 311 responsiveOptions.popup.remove(); 312 } 313 314 responsiveOptions.setActive = function(slideIndex) { 315 responsiveOptions.activeSlide.removeClass(responsiveOptions.activeSlideClass).addClass(responsiveOptions.pausedSlideClass); 316 $(responsiveOptions.activeSlide.panelElements[ responsiveOptions.activeElements[responsiveOptions.activeSlideIndex] ]).removeClass(responsiveOptions.elementPanelActiveClass); 317 responsiveOptions.activeSlideIndex = slideIndex; 318 319 responsiveOptions.activeSlide = $(responsiveOptions.slides[responsiveOptions.activeSlideIndex]); 320 responsiveOptions.activeSlide.addClass(responsiveOptions.activeSlideClass).removeClass(responsiveOptions.pausedSlideClass); 321 322 responsiveOptions.activeSlide.elements = null; 323 responsiveOptions.activeSlide.panelElements = null; 324 325 responsiveOptions.updateElementsInfo(responsiveOptions.activeSlide); 326 responsiveOptions.setActiveElement(responsiveOptions.activeSlide, 0); 327 328 responsiveOptions.setCenter(slideIndex); 329 } 330 331 responsiveOptions.updateElementsInfo = function(slide) { 332 if(!slide.elements || !slide.panelElements) { 333 slide.elements = slide.find(responsiveOptions.elementsSelector); 334 slide.panelElements = slide.find('.'+responsiveOptions.elementPanelClass); 335 } 336 if(!responsiveOptions.activeElements[slide.index()]) { 337 responsiveOptions.activeElements[slide.index()] = 0; 338 } 339 } 340 341 responsiveOptions.setNext = function() { 342 if(responsiveOptions.activeSlideIndex + 1 < responsiveOptions.slides.length) { 343 responsiveOptions.setActive(responsiveOptions.activeSlideIndex + 1); 344 } else { 345 responsiveOptions.closePopup(); 346 } 347 } 348 349 responsiveOptions.setPrev = function() { 350 if(responsiveOptions.activeSlideIndex > 0) { 351 responsiveOptions.setActive(responsiveOptions.activeSlideIndex - 1); 352 } 353 } 354 355 responsiveOptions.setNextElement = function() { 356 responsiveOptions.updateElementsInfo(responsiveOptions.activeSlide); 357 responsiveOptions.elementTimerContinue = null; 358 359 if(responsiveOptions.activeElements[responsiveOptions.activeSlideIndex] + 1 < responsiveOptions.activeSlide.elements.length) { 360 responsiveOptions.setActiveElement(responsiveOptions.activeSlide, +1); 361 } else { 362 responsiveOptions.clearSlide(responsiveOptions.activeSlide); 363 responsiveOptions.setNext(); 364 } 365 } 366 367 responsiveOptions.setPrevElement = function() { 368 responsiveOptions.updateElementsInfo(responsiveOptions.activeSlide); 369 370 if(responsiveOptions.activeElements[responsiveOptions.activeSlideIndex] > 0) { 371 responsiveOptions.setActiveElement(responsiveOptions.activeSlide, -1); 372 } else { 373 responsiveOptions.clearSlide(responsiveOptions.activeSlide);
374 responsiveOptions.setPrev(); 375 } 376 } 377 378 responsiveOptions.clearSlide = function(slide) { 379 // slide.elements.removeClass(responsiveOptions.activeElementClass); 380 // slide.panelElements.removeClass(responsiveOptions.elementPanelActiveClass); 381 // slide.panelElements.removeClass(responsiveOptions.elementPanelFinishedClass); 382 } 383 384 responsiveOptions.setActiveElement = function(slide, newActiveIndex) { 385 if(responsiveOptions.elementTimer) { 386 clearTimeout(responsiveOptions.elementTimer); 387 } 388 389 var oldActive = slide.elements[ responsiveOptions.activeElements[responsiveOptions.activeSlideIndex] ]; 390 var newActive = slide.elements[ responsiveOptions.activeElements[responsiveOptions.activeSlideIndex] + newActiveIndex]; 391 $(oldActive).removeClass(responsiveOptions.activeElementClass); 392 $(newActive).addClass(responsiveOptions.activeElementClass); 393 responsiveOptions.activeElements[slide.index()] += newActiveIndex; 394 395 slide.panelElements.each(function(index, element) { 396 var _this = $(element); 397 if(index < responsiveOptions.activeElements[slide.index()]) { 398 _this.addClass(responsiveOptions.elementPanelFinishedClass); 399 _this.removeClass(responsiveOptions.elementPanelActiveClass); 400 } else if (index == responsiveOptions.activeElements[slide.index()]) { 401 _this.removeClass(responsiveOptions.elementPanelFinishedClass); 402 _this.addClass(responsiveOptions.elementPanelActiveClass); 403 } else { 404 _this.removeClass(responsiveOptions.elementPanelActiveClass); 405 _this.removeClass(responsiveOptions.elementPanelFinishedClass); 406 } 407 }); 408 409 if(!window.asproStoriesSliderStopped) { 410 responsiveOptions.elementTimerStart = Date.now(); 411 responsiveOptions.elementTimer = setTimeout( 412 function() { 413 responsiveOptions.setNextElement(); 414 } 415 , responsiveOptions.changeSlideTime); 416 } 417 } 418 419 responsiveOptions.pauseSlide = function(slide) { 420 var index = slide.data('index'); 421 index = index ? index : slide.index(); 422 423 slide.addClass(responsiveOptions.pausedSlideClass); 424 responsiveOptions.stoppedSlideIndex = index; 425 if(responsiveOptions.elementTimer) { 426 clearTimeout(responsiveOptions.elementTimer); 427 responsiveOptions.animationTimer = responsiveOptions.elementTimerContinue ? responsiveOptions.elementTimerContinue : responsiveOptions.changeSlideTime; 428 responsiveOptions.elementTimerContinue = responsiveOptions.animationTimer - (Date.now() - responsiveOptions.elementTimerStart); 429 } 430 } 431 432 responsiveOptions.playSlide = function(slide) { 433 var index = slide.data('index'); 434 index = index ? index : slide.index(); 435 436 if( index == responsiveOptions.stoppedSlideIndex ) { 437 slide.removeClass(responsiveOptions.pausedSlideClass); 438 responsiveOptions.stoppedSlideIndex = null; 439 if(!window.asproStoriesSliderStopped) { 440 responsiveOptions.elementTimerStart = Date.now(); 441 responsiveOptions.elementTimer = setTimeout( 442 function() { 443 responsiveOptions.setNextElement(); 444 } 445 , responsiveOptions.elementTimerContinue); 446 } 447 } 448 } 449 450 responsiveOptions.addDragEvents = function() { 451 responsiveOptions.slides.on('touchstart', function(event) { 452 var _this = $(this); 453 var index = _this.data('index'); 454 index = index ? index : _this.index(); 455 456 if(index == responsiveOptions.activeSlideIndex) { 457 if(!responsiveOptions.mobile) { 458 responsiveOptions.touch.posPrev = event.originalEvent.changedTouches[0].pageX; 459 } 460 } 461 }); 462 463 responsiveOptions.slides.on('touchmove', function(event) { 464 var _this = $(this); 465 var index = _this.data('index'); 466 index = index ? index : _this.index(); 467 468 if(index == responsiveOptions.activeSlideIndex) { 469 if(!responsiveOptions.mobile) { 470 responsiveOptions.touch.posCurrent = event.originalEvent.changedTouches[0].pageX - responsiveOptions.touch.posPrev; 471 responsiveOptions.sliderInner.css({ 472 'margin-left': responsiveOptions.sliderInnerMargin + responsiveOptions.touch.posCurrent, 473 }); 474 responsiveOptions.sliderInnerMargin = responsiveOptions.sliderInnerMargin + responsiveOptions.touch.posCurrent; 475 responsiveOptions.touch.posPrev = event.originalEvent.changedTouches[0].pageX; 476 } 477 } 478 }); 479 480 responsiveOptions.slides.on('mousedown', function(event) { 481 var _this = $(this); 482 var index = _this.data('index'); 483 index = index ? index : _this.index(); 484 485 if(index == responsiveOptions.activeSlideIndex) { 486 if(!responsiveOptions.mobile) { 487 var startX = event.pageX; 488 489 490 function moveAt(pageX) { 491 var left = pageX - startX > 0 ? pageX - startX : startX - pageX; 492 var movePercent = left / responsiveOptions.dragAmount; 493 if(pageX - startX > 0 && responsiveOptions.activeSlideIndex > 0 || pageX - startX < 0 && responsiveOptions.activeSlideIndex < responsiveOptions.slides.length) { 494 var dependSlide = pageX - startX > 0 ? _this.prev() : _this.next(); 495 var cssCurrent = { 496 'margin-left': responsiveOptions.activeSlideMargin - responsiveOptions.activeSlideMargin*movePercent + 'vw', 497 'margin-right': responsiveOptions.activeSlideMargin - responsiveOptions.activeSlideMargin*movePercent + 'vw', 498 'transform': 'scale('+ (1 - 0.25*movePercent) +')', 499 }; 500 var cssDepend = { 501 'margin-left': responsiveOptions.activeSlideMargin*movePercent + 'vw', 502 'margin-right': responsiveOptions.activeSlideMargin*movePercent + 'vw', 503 'transform': 'scale('+ (0.75 + 0.25*movePercent) +')', 504 }; 505 506 _this.css(cssCurrent); 507 dependSlide.css(cssDepend); 508 509 console.log(movePercent); 510 } 511 } 512 513 function onMouseMove(event) { 514 moveAt(event.pageX); 515 } 516 517 document.addEventListener('mousemove', onMouseMove); 518 519 $(document).on('mouseup', function() { 520 document.removeEventListener('mousemove', onMouseMove); 521 this.onmouseup = null; 522 }); 523 524 this.ondragstart = function() { 525 return false;
526 }; 527 } 528 } 529 }); 530 } 531 532 responsiveOptions.addEvents = function () { 533 BX.loadScript(arAsproOptions.SITE_TEMPLATE_PATH + '/js/jquery.mobile.custom.touch.min.js', () => { 534 responsiveOptions.slides.on('swiperight', function() { 535 if (responsiveOptions.mobile) { 536 responsiveOptions.setPrev(); 537 } 538 }); 539 540 responsiveOptions.slides.on('swipeleft', function() { 541 if (responsiveOptions.mobile) { 542 responsiveOptions.setNext(); 543 } 544 }); 545 }); 546 547 responsiveOptions.slides.on('click', function() { 548 var _this = $(this); 549 var index = _this.data('index'); 550 index = index ? index : _this.index(); 551 552 if(index != responsiveOptions.activeSlideIndex) { 553 responsiveOptions.setActive(index); 554 } 555 }); 556 557 responsiveOptions.slides.on('taphold', function() { 558 var _this = $(this); 559 responsiveOptions.pauseSlide(_this); 560 }); 561 562 responsiveOptions.slides.on('touchend', function() { 563 var _this = $(this); 564 responsiveOptions.playSlide(_this); 565 }); 566 567 responsiveOptions.slides.on('mousedown', function() { 568 var _this = $(this); 569 var timeout = 1000; 570 responsiveOptions.mousedownTimer = setTimeout( 571 function() { 572 responsiveOptions.mouseHold = true; 573 responsiveOptions.pauseSlide(_this); 574 } 575 , timeout); 576 }); 577 578 responsiveOptions.slides.on('mousemove', function() { 579 if(responsiveOptions.mousedownTimer) { 580 clearTimeout(responsiveOptions.mousedownTimer); 581 responsiveOptions.mouseHold = false; 582 } 583 }); 584 585 responsiveOptions.slides.on('mouseup', function(e) { 586 if(responsiveOptions.mouseHold) { 587 var _this = $(this); 588 responsiveOptions.playSlide(_this); 589 } else { 590 if(responsiveOptions.mousedownTimer) { 591 clearTimeout(responsiveOptions.mousedownTimer); 592 responsiveOptions.mouseHold = false; 593 } 594 } 595 }); 596 597 responsiveOptions.slides.on('click', '.'+responsiveOptions.elementNavPrevClass, function(e) { 598 if(!responsiveOptions.mouseHold) { 599 var _this = $(this); 600 var _thisSlide = _this.closest(responsiveOptions.slidesSelector); 601 var index = _thisSlide.data('index'); 602 index = index ? index : _thisSlide.index(); 603 604 if(index == responsiveOptions.activeSlideIndex) { 605 responsiveOptions.setPrevElement(); 606 e.preventDefault(); 607 e.stopPropagation(); 608 } 609 } else { 610 responsiveOptions.mouseHold = false; 611 } 612 }); 613 614 responsiveOptions.slides.on('click', '.'+responsiveOptions.elementNavNextClass, function(e) { 615 if(!responsiveOptions.mouseHold) { 616 var _this = $(this); 617 var _thisSlide = _this.closest(responsiveOptions.slidesSelector); 618 var index = _thisSlide.data('index'); 619 index = index ? index : _thisSlide.index(); 620 621 if(index == responsiveOptions.activeSlideIndex) { 622 responsiveOptions.setNextElement(); 623 e.preventDefault(); 624 e.stopPropagation(); 625 } 626 } else { 627 responsiveOptions.mouseHold = false;
628 } 629 }); 630 631 // responsiveOptions.addDragEvents(); 632 633 BX.addCustomEvent('onWindowResize', function(eventdata) { 634 try{ 635 responsiveOptions.update(); 636 } 637 catch(e){ 638 console.log(e); 639 } 640 }); 641 } 642 643 responsiveOptions.updateSlidesHeight = function() { 644 if(responsiveOptions.mobile) { 645 responsiveOptions.slideWidth = responsiveOptions.sliderWidth; 646 responsiveOptions.slides.css({ 647 'width': '', 648 }); 649 } else { 650 responsiveOptions.slideWidth = (responsiveOptions.sliderHeight + 80)/1.98; 651 responsiveOptions.slides.css({ 652 'width': responsiveOptions.slideWidth, 653 }); 654 } 655 } 656 657 responsiveOptions.update = function() { 658 var activeSlide = responsiveOptions.activeSlideIndex; 659 responsiveOptions = Object.assign(responsiveOptions, options); 660 for(var width in options.breakpoints) { 661 if(window.matchMedia(width).matches) { 662 responsiveOptions = Object.assign(responsiveOptions, options.breakpoints[width]); 663 } 664 } 665 666 responsiveOptions.activeSlideIndex = activeSlide; 667 responsiveOptions.getCurrentSizes(); 668 responsiveOptions.setCenter(responsiveOptions.activeSlideIndex); 669 } 670 671 responsiveOptions.init = function(_slider) { 672 responsiveOptions.slides = _slider.find(responsiveOptions.slidesSelector); 673 responsiveOptions.activeSlide = $(responsiveOptions.slides[responsiveOptions.activeSlideIndex]); 674 responsiveOptions.sliderInner = _slider.find(responsiveOptions.innerSelector); 675 responsiveOptions.slider = _slider; 676 responsiveOptions.sliderWidth = responsiveOptions.slider.outerWidth(true); 677 responsiveOptions.slides.addClass('swipeignore'); 678 responsiveOptions.touch = {}; 679 responsiveOptions.activeElements = {}; 680 681 responsiveOptions.setStyles(); 682 responsiveOptions.getCurrentSizes(); 683 responsiveOptions.setCenter(responsiveOptions.activeSlideIndex); 684 685 responsiveOptions.updateElementsInfo(responsiveOptions.activeSlide); 686 responsiveOptions.setActiveElement(responsiveOptions.activeSlide, 0); 687 688 responsiveOptions.addEvents(); 689 690 _slider.data('asproStoriesSlider', responsiveOptions); 691 } 692 693 responsiveOptions.init(_slider); 694 setTimeout( 695 function() { 696 responsiveOptions.slider.addClass('aspro_slider_init'); 697 }, 698 responsiveOptions.transition*1000 + 10); 699 700 } 701 702 var el = $(this); 703 704 if(el.hasClass('aspro_slider_init')) 705 return false; 706 707 el.each(function(i, slider){ 708 _storiesSlider(slider, options); 709 }); 710}
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.