【问题标题】:Float div out of window top on click with automatic page scroll使用自动页面滚动单击时将 div 浮动到窗口顶部
【发布时间】:2012-11-11 18:50:21
【问题描述】:

我正在尝试为 div 元素设置动画,以便在用户单击链接后在浏览器窗口顶部滑出屏幕。当用户向下滚动页面超过某个点时,会出现此链接。当单击 div 时,浏览器窗口会动画并滚动到页面顶部,因为“Back to top” div 会淡出。我需要让这个“回到顶部”的 div 不仅淡出,而且在淡出时滑到屏幕外的浏览器窗口顶部。到目前为止,这是我所拥有的:

Javascript:

$(function(){
    $("#back-to-top").hide();

    $(function() {
        $(window).scroll(function() {
            if($(this).scrollTop() > 100) {
                $('#back-to-top').fadeIn('slow');
            } else {
                $('#back-to-top').fadeOut('slow');
            }
        });

        $('a#back-to-top').click(function() {
            $('body,html').animate({
                scrollTop: 0
            }, 800);
            return false;

            $('#back-to-top').animate({  // The part that doesn't work
                margin: '-800px 0 0 0'
                // top: '-800px' 
            });
        });
    });
});

【问题讨论】:

  • 如果能在 jsfiddle.net 上构建就太好了?
  • 顺便说一句,为什么你会在你的动画代码之前返回 false ?我敢打赌代码$('#back-to-top').animate() 已经死了。
  • @PulkitMittal 你应该把它放在一个答案中,因为return false; 肯定会阻止这段代码的代码工作。

标签: jquery html css scroll jquery-animate


【解决方案1】:

我认为问题可能出在return false

 $('a#back-to-top').click(function() {
            $(this).animate({ bottom: '1000px', opacity: 0 }, 2000, function(){
                $('a#back-to-top').hide(function(){
                    $(this).css({ bottom: '40px', opacity: 1 });
                });
            });
            $('body,html').animate({
                scrollTop: 0
            }, 1500);
            return false;
        });

我更新了代码。它可以完美地满足您的要求。动画完成后,您需要恢复链接的位置和不透明度。

【讨论】:

  • 是的,部分问题在于在我的第二个动画实例之前声明了 return false。在链接动画并滑出屏幕后,我仍然遇到重置问题。第一次单击该元素时一切正常,但是如果您再次向下滚动页面,则链接不会重新出现。这是一个小提琴:jsfiddle.net/vWLuu 谢谢大家的帮助!
  • @kaffolder 需要重置 margin:auto 或替换链接时的任何 CSS 默认值
  • @kaffolder 查看我所做的更改。
  • 啊!这就是问题所在。非常感谢普吉!我还尝试进行另一项修改。我希望链接在您向下滚动时缓入并在您向上滚动时缓出。我是否只需要在#back-to-top 链接中添加margin: '0 0 20px 0' 并在我的第一个$(window).scroll(function()... 语句中对其进行动画处理?
  • 这是我正在尝试的,但它不起作用,并且链接需要很长时间才能淡入:jsfiddle.net/HFkLR
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-10-25
  • 2023-02-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-19
  • 2013-07-05
相关资源
最近更新 更多