2017-01-19 15 views
15

ben bir müşteri için inşa ediyorum bir sitede Divi kullanıyorum ve ana sayfasında sitelerinin kötü göstermeden önce arka planda sayfası ve görüntüleri yüklemek için bir önyükleyici kurulum var. Bununla tek sorun, preloader yapılır, bu nedenle zaman Divi Tam Kısa kaydırıcısında ilk slayt aynı anda sayfa yüklendiğinde başlar ve ikinci slayta ilk slayt değişiklikler çok hızlı ekranın kapalı kaybolur.Divi Wordpress Tema - Değişim Slayt geçiş hızı

Ben ElegantThemes sordunuz ve onlar benim isteği desteği kapsamı dışında olduğunu söylüyorlar. Herhangi bir şeyi ayarlamaya nereden başlayacağımı bile bilmiyorum, böylece sadece İLK slaytın zamanlaması diğer slaytlardan daha uzun.

Yani, benim sorum şu ki, Divi Fullwidth Slider'da yalnızca İLK kaydırması için geçiş zamanlamasını nasıl değiştirebilirim? İşte

ben belirleyen kod buldum bağlantı :: http://mfinangaphoto.wpengine.com

ise/wp-content/themes/Divi/includes/oluşturucu altında slaytlar otomatik animasyon hızı,/Main- modules.php:

$fullwidth = 'et_pb_fullwidth_slider' === $function_name ? 'on' : 'off'; 

    $class = ''; 
    $class .= 'off' === $fullwidth ? ' et_pb_slider_fullwidth_off' : ''; 
    $class .= 'off' === $show_arrows ? ' et_pb_slider_no_arrows' : ''; 
    $class .= 'off' === $show_pagination ? ' et_pb_slider_no_pagination' : ''; 
    $class .= 'on' === $parallax ? ' et_pb_slider_parallax' : ''; 
    $class .= 'on' === $auto ? ' et_slider_auto et_slider_speed_' . esc_attr($auto_speed) : ''; 
    $class .= 'on' === $auto_ignore_hover ? ' et_slider_auto_ignore_hover' : ''; 
    $class .= 'on' === $remove_inner_shadow ? ' et_pb_slider_no_shadow' : ''; 
    $class .= 'on' === $show_image_video_mobile ? ' et_pb_slider_show_image' : ''; 

    $output = sprintf(
     '<div%4$s class="et_pb_module et_pb_slider%1$s%3$s%5$s"> 
      <div class="et_pb_slides"> 
       %2$s 
      </div> <!-- .et_pb_slides --> 
     </div> <!-- .et_pb_slider --> 
     ', 
     $class, 
     $content, 
     ($et_pb_slider_has_video ? ' et_pb_preload' : ''), 
     ('' !== $module_id ? sprintf(' id="%1$s"', esc_attr($module_id)) : ''), 
     ('' !== $module_class ? sprintf(' %1$s', esc_attr($module_class)) : '') 
    ); 

return $output; 

Nasıl slaytların kalanından farklı bir slayt hızına sahip ilk slayt izin verdiğini bu yüzden bu ayarlayabilirsiniz?

+0

Sana JS anlıyorum özellikle bu dolambaçlı eklentisi gibi bir şey kullanmaktan kaçının öneriyoruz. jQuery ile işte slayt 'bir seçicinin eklenmesi ve bunun yenisi ile şimdiki geçiş var geçersiz kılma deneyebilirsiniz – pottedmeat7

+0

Ya https://wordpress.org/plugins/easing-slider/ gibi daha basit bir eklenti seçin; bu slayda özgü, hacky de olsa –

cevap

7

kullandığınız Divi hangi sürümünü emin ama benim sürümünde edilmedi (Divi 1.9.1) slayt gösterisi çalıştıran sorumludur js/custom.js adlı bir dosya vardır. Her slayt görüntüler zamanın

function et_slider_auto_rotate(){ 
    if (settings.slideshow && et_slides_number > 1 && ! $et_slider.hasClass('et_slider_hovered')) { 
     et_slider_timer = setTimeout(function() { 
      $et_slider.et_slider_move_to('next'); 
     }, settings.slideshow_speed); 
    } 
} 

settings.slideshow_speed değişken kontroller miktarını: - hatlar 119 civarında

125, bu işlevi bulabilirsiniz. Bu dosyayı muhtemelen aşağıdaki gibi değiştirebilirsiniz. Aşağıdaki sinek-içi sözde kod olduğunu ve test edilmediğini unutmayın. İzleyebildiğiniz için takip edebilirsiniz. Örneğim sadece karuselinizin ÇOK ilk slaytını kullanacaktır. İlk slayt tekrarlar zaman biraz daha hack yapmak sürece, diğer slaytlar aynı zamanlama kontrolleri w/sıkışmış olacak.

// somewhere inside the same function block closure in js/custom.js 

// first, create some arbitrary variable to manage whether or not we've started 
var hasCarouselStarted 

// create our own custom function to get the interval between slides 
function getMyInterval() { 
    // our carousel has already started, so, return the default interval 
    if (hasCarouselStarted) { 
    return settings.slideshow_speed 
    } 
    // we got here, so this is the first time the carousel is start, 
    // mark the flag as true so we won't get here anymore 
    hasCarouselStarted = true 
    // return time in milliseconds for the first slide. 
    return 1 * 60 * 1000 // 1 min * 60 seconds & 1000 milliseconds 
} 

function et_slider_auto_rotate(){ 
    if (settings.slideshow && et_slides_number > 1 && ! $et_slider.hasClass('et_slider_hovered')) { 
    et_slider_timer = setTimeout(function() { 
     $et_slider.et_slider_move_to('next'); 
    // use our function to determine slide speed instead of the original settings.slideshow_speed 
    }, getMyInterval()); 
    } 
} 

Bu yardımcı olur umarım. senin basit bir solma slayt kullanarak Çünkü