Почему моя функция анимирования jQuery не работает? - PullRequest
0 голосов
/ 25 марта 2019

Я создаю кнопку прокрутки вниз, а также создаю кнопку прокрутки вверх.

Я создал обе кнопки, но когда я нажимаю на любую из них, они не прокручиваются, и яне знаю почему это.Я перепробовал все и до сих пор не работает.Я даже использовал код, который отлично работает на других сайтах, которые я разработал, но все еще ничего ..

<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width" />
<meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=0" name="viewport" />
<!--<link rel="shortcut icon" href="icons/favicon.ico" type="image/x-icon">
<link rel="icon" href="icons/favicon.ico" type="image/x-icon">-->
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css"
      integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
<link title="main_css" rel="stylesheet" href="css/main.css" />
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.js"></script>
<!--<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js"
        integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous">
</script-->
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"
        integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous">
</script>
<script src="js/main.js" type="text/javascript"></script>
 </head>


<body style="background:#FFF !important;">
<a id="button"></a> <!-- THIS IS THE SCROLL TO TOP BUTTON -->
<!--NAVIGATION AND HEADER SECTION-->
<nav class="navbar about-navbar">
    <a href="index.html" class="navbar-brand">
        <img class="logo-desktop" src="icons/logo-white.svg">
        <img class="logo-small" src="icons/logo-white.svg">
    </a>
    <ul class="nav justify-content-end">
        <li class="nav-item about-nav-item">
            <a class="nav-link" href="index.html">Home</a>
        </li>
        <li class="nav-item about-nav-item">
            <a class="nav-link active" href="about.html">About</a>
        </li>
        <li class="nav-item about-nav-item">
            <a class="nav-link" href="gallery.html">Gallery</a>
        </li>
        <li class="nav-item about-nav-item">
            <a class="nav-link" href="contact.html">Contact</a>
        </li>
        <div class="push-button">
            <div class="top-line"></div>
            <div class="middle-line"></div>
            <div class="middle-line under"></div>
            <div class="bottom-line"></div>
        </div>
    </ul>
</nav>
<div class="container-fluid header-section about-header-section">
    <div class="about-bg"></div>
    <div class="inside-element">
        <div class="col-12 col-lg-8 about-section-text">
            <div class="main-heading-text-box about-main-box">
                <h1 class="font-weight-light">We <span style="color: #16E1F5;">care</span> about people</h1>
                <h5 class="lead">Give a helping hand for poor people</h5>
                <a href="donate.html" class="about-donate-btn donate_button">
                    <p class="first">Donate</p>
                    <p class="second">Donate</p>
                    <img src="icons/right_white.svg" alt="">
                </a>
            </div>
            </div>
      <!-- THIS IS THE SCROLL DOWN BUTTON -->
        <div class="scroll-down">Scroll</div>
        <div class="vertical-divider"></div>
    </div>
     </div>

Ниже приведен код в main.js:

  $(document).ready(function () {

    $(".scroll-down").click(function () {
      return $("html, body").animate({
        scrollTop: $("#about").offset().top - 64
      }, 800);
    });

    var $document = $(document),
        $element1 = $('#button'),
        changed = 'show';

    if ($document.scrollTop() >= 500) {
      $element1.removeClass(changed);
    } else {
      $element1.addClass(changed);
    }

    $(window).scroll(function () {
      var $document = $(document),
          $element1 = $('#button'),
          changed = 'show';
      if ($document.scrollTop() >= 150) {
        $element1.removeClass(changed);
      } else {
        $element1.addClass(changed);
      }
    });
    $('#button').click(function () {
      $("html, body").animate({ scrollTop: 0 }, 100);
      return false;
    });
});

Ответы [ 2 ]

0 голосов
/ 26 марта 2019

Я подозреваю, что вы пытаетесь следовать: Можно ли анимировать scrollTop с помощью jQuery?

Пожалуйста, смотрите: https://jsfiddle.net/Twisty/e3x42Lnm/

Когда вы используете animate, выхочу установить значение Pixel для прокрутки до:

$('#button').click(function(e) {
  e.preventDefault();
  log("Button Click");
  $("html, body").animate({
    scrollTop: "0px"
  }, 500, function() {
    log("Scroll Animation Complete")
  });
});

Было много элементов, которые, по-видимому, отсутствовали.Следовательно, мой Fiddle является скорее примером и должен быть адаптирован к вашему конкретному коду.В будущем, пожалуйста, предоставьте Минимальный, Полный и Проверяемый пример .

Надеюсь, что это поможет.

0 голосов
/ 25 марта 2019

Я не уверен, что вы можете анимировать html и body? Почему бы вам не дать div четкое удостоверение личности и анимировать это, должно работать на вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...