2016-10-16 1 views
1

Вот мой HTML:Изменение прокрутки скорость DIV

<div id="intro-image"> 
    <div id="intro-text"> 
     <p class="intro-head">COLIN STEWART</p> 
     <p class="intro-body">logos - branding - web</p> 
     <a href="#work-anchor" class="smoothScroll"><div id="portfolio-button">PORTFOLIO</div></a> 
    </div> 
    <a href="#about-anchor" class="smoothScroll"><img src="images/arrow.png" id="arrow" class="animated bounce"></a> 
</div> 

CSS:

#intro-image { 
    position: relative; 
    top: 0; 
    left: 0; 
    width: 100%; 
    height: 100%; 
    background-image: url(../images/desk.jpg); 
    background-size: cover; 
    background-attachment: fixed; 
    background-repeat: repeat; 
} 

#intro-text { 
    width: 1200px; 
    max-width: 85%; 
    margin: 0 auto; 
    position: relative; 
    top: 55%; 
    transform: translateY(-50%); 
} 

.intro-head { 
    font-family: 'Montserrat', sans-serif; 
    font-size: 65px; 
    color: #fff; 
    font-weight: 700; 
    text-align: center; 
    margin: 0; 
    letter-spacing: 3px; 
} 

.intro-body { 
    font-family: 'Open Sans', sans-serif; 
    font-size: 24px; 
    color: #fff; 
    font-weight: 300; 
    text-align: center; 
    margin: 0; 
    letter-spacing: 0.5; 
} 

#portfolio-button { 
    margin: 50px auto 0 auto; 
    padding-top: 18px; 
    width: 185px; 
    height: 38px; 
    background-color: #ef3c5f; 
    font-family: 'Open Sans', sans-serif; 
    font-size: 15px; 
    color: #fff; 
    font-weight: 400; 
    text-align: center; 
    letter-spacing: 2px; 
    transition: 0.6s; 
    transform-style: preserve-3d; 
} 

#portfolio-button:hover { 
    /*box-sizing: border-box; 
    border-bottom: 5px solid #c42c50;*/ 
    transform: rotateX(360deg); 
    cursor: pointer; 
} 

Javascript:

/* Smooth Scroll */ 

$(function() { 
    $('a[href*="#"]:not([href="#"])').click(function() { 
    if (location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'') && location.hostname == this.hostname) { 
     var target = $(this.hash); 
     target = target.length ? target : $('[name=' + this.hash.slice(1) +']'); 
     if (target.length) { 
     $('html, body').animate({ 
      scrollTop: target.offset().top 
     }, 1000); 
     return false; 
     } 
    } 
    }); 
}); 

/* Background Image Scroll Speed */ 

$(document).ready(function(){ 
    var $win = $(window); 

    $('#intro-image').each(function(){ 
     var scroll_speed = 2; 
     var $this = $(this); 
     $(window).scroll(function() { 
      var bgScroll = -(($win.scrollTop() - $this.offset().top)/ scroll_speed); 
      var bgPosition = 'center '+ bgScroll + 'px'; 
      $this.css({ backgroundPosition: bgPosition }); 
     }); 
    }); 
}); 

Теперь я просто хочу, чтобы текст (# интро-текст div) для более медленной прокрутки. Как я могу достичь этого (как можно проще)?

Для записи, я знаю, что почти не javascript/jQuery, я достигаю того, что я до сих пор помогал добрым людям.

Заранее спасибо.

+0

Я не могу проверить свой код, ни времени, но от того, что я вижу сейчас, я бы сказал дать 'вар scroll_speed' значение как' 0.2' или что-то ниже ' 1' – Thielicious

+0

Спасибо за ответ. Извините, если я был неясен, см. Мой ответ Бенджамину. –

ответ

0

Как и ожидалось, изменение значения scroll_speed отлично работает.

Смотрите выше: https://jsfiddle.net/ojsrfy1r/2/

/* Background Image Scroll Speed */ 

$(document).ready(function(){ 
    var $win = $(window); 

    $('#intro-image').each(function(){ 
     var scroll_speed = 0.2; // modified value 
     var $this = $(this); 
     $(window).scroll(function() { 
      var bgScroll = -(($win.scrollTop() - $this.offset().top)/ scroll_speed); 
      var bgPosition = 'center '+ bgScroll + 'px'; 
      $this.css({ backgroundPosition: bgPosition }); 
     }); 
    }); 
}); 
+0

Спасибо за ответ, Бенджамин. Фоновое изображение было прекрасным, это было уже прокрутка медленнее (хотя, как ни странно, я не пробовал под 1 для значения, и теперь он работает лучше). Это текст (# intro-text), который я сейчас хочу изменить для скорости прокрутки. Я попытался просто дублировать один и тот же код и изменить # intro-image для # intro-text, но он, похоже, не работает одинаково. –

+0

Любые идеи? Благодарю. –

+0

Да. Вы можете использовать Lib как skrollr для jquery (https://github.com/Prinzhorn/skrollr) или директиву/компоненту SparkScroll для Angular/React (https://github.com/gilbox/spark-scroll). Я работал над ними, и все хорошо. Но сегодня вечером я могу отправить вам пример кода, чтобы сделать это вручную, без lib. Чтобы сделать это самостоятельно, вы можете начать с модификации вашей функции # intro-image, чтобы изменить параметр стиля «верхний» вашего # встроенного текста, основанный на позиции прокрутки. Вы также должны установить абсолютную позицию в # intro-text width css. – Benjamin

 Смежные вопросы

  • Нет связанных вопросов^_^