【问题标题】:Animate scroll to div inside parallax site动画滚动到视差站点内的 div
【发布时间】:2015-02-12 03:00:17
【问题描述】:

我的视差页面顶部有几个链接,我希望它们在您单击它们时以动画方式滚动到页面中所需的位置。目前链接只是跳转到我页面上的位置,没有动画。

视差滚动正在工作,这是我的 .js 文件中可以在页面底部查看的第一段代码。

这是我的链接 div

<div id="main-nav"> <!-- top locked scroll bar -->
        <p>
        <a class="click" href="#home">Your Links</a> |
        <a href="#me">More Links</a> |
        <a href="#projects">Another Link</a> |
        <a href="#hire">Really</a> 
       <!-- <button onclick="changeColor()">Yin/Yang</button> -->
        </p>
    </div>

它在页面上跳转到的示例(但我希望它动画到)

section class="box slide slide-1">
    <div class="container">
        <div id="home"></div>
      <h1>Main Title</h1>
    </div>
  </section>

这是我在页面上使用的所有 javascript

(function(){

var parallax = document.querySelectorAll(".slide"),
  speed = 0.5;

window.onscroll = function(){
[].slice.call(parallax).forEach(function(p,i){

  var windowYOffset = window.pageYOffset,
      theBackgrounPos = "0 " + (windowYOffset * speed) + "px";

  p.style.backgroundPosition = theBackgrounPos;

 });
 };
 })();

 /************ CODE USED TO MAKE THE ANIMATION SCROLL TO THAT IS NOT WORKING*////
 $(document).ready(function (){
       $(".click").click(function (){
               $('html, body').animate({
                   scrollTop: $("#home").offset().top
               }, 2000);
       });
 });

任何帮助都将不胜感激,即使我最好的路线是重新开始。

【问题讨论】:

  • www.littleroomproductions.com/simple 链接到动画不起作用的代码

标签: java jquery scroll parallax animated


【解决方案1】:

我刚刚在我正在开发的网站上运行了以下内容。

JavaScript:

$(document).ready(function () {
    $("a[href^='#']").click(function(event) {
        var target = $($(this).attr("href"));
        event.preventDefault();
        $("html, body").animate({
            scrollTop: target.offset().top
        }, 500);
    });    
});

HTML:

<nav id="nav-menu">
    <a href="#home"><p>home</p></a>
    <a href="#services"><p>services</p></a>
    <a href="#work"><p>work</p></a>
    <a href="#about"><p>about</p></a>
    <a href="#contact"><p>contact</p></a>
</nav>

然后用“id=home”、“id=services”等向下划分页面

【讨论】:

  • 刚刚尝试了该代码,但它仍然只是跳转。你的 javascript 在里面吗?
  • JavaScript 在外部文件中。我在上面添加了代码包含的内容: $(document.ready(function() { ... });
  • 也可以放在包裹的HTML中
  • 添加了另一个脚本页面 [scroll.js] 并将该脚本放入其中 - 不行:(
  • 嗯...您可以尝试添加“alert("Lemon Curry?");"或“event.preventDefault();”之后的内容查看是否调用了 click 函数。似乎由于 链接(应该由 event.preventDefult() 禁用),跳转仍在发生。
猜你喜欢
  • 1970-01-01
  • 2016-01-23
  • 2018-12-14
  • 2012-07-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多