【问题标题】:Issue with smooth scroll, fixed navigation and iPad 2平滑滚动、固定导航和 iPad 2 的问题
【发布时间】:2012-11-15 10:44:19
【问题描述】:

我正在为一位朋友开发一个单页婚礼网站。它使用下面的 jQuery 在点击导航点时向页面添加“平滑滚动”效果。

我将为 iPad 和 iPhone 添加一个自适应布局 - 但他们渴望尽快推出它,我需要继续邀请!

无论如何,我在 iPad 上遇到了奇怪的行为 - 因为平滑滚动仅适用于您单击的第一个链接 - 然后没有任何 nab 链接触发该行为/似乎可点击。

我假设这是固定导航的问题 - 但是它可以在我测试过的所有其他 (mac) 浏览器和我的 iPhone 上运行。

网站在这里

http://www.elandsebswedding.co.uk/main-page/

jQuery 在这里:

$("nav ul li a, #logo a").click(function(event){
    //prevent the default action for the click event
    event.preventDefault();
    var full_url = this.href;

    var parts = full_url.split("#");
    var trgt = parts[1];

    var target_offset = $("#"+trgt).offset();
    var target_top = target_offset.top;

    $('html, body').animate({scrollTop:target_top -130}, 500);

});

任何建议/解决方法将不胜感激!

【问题讨论】:

    标签: jquery css css-position smooth-scrolling


    【解决方案1】:

    这是移动 Safari 的问题。

    解决这个问题的一个好方法是使用 animate 回调向 DOM 附加一些东西。

    $('html, body').animate({scrollTop:target_top -130}, 500, function(){
        $('body').append('<div id="device-dummy" style="height: 1px;"></div>');
    });
    

    你可能会发现这个 jQuery 插件很有用 https://github.com/jamesmusgrave/jQuery-One-Page-Nav

    【讨论】:

    • 嗨-谢谢。很高兴这不是我的 CSS。我所做的是使用媒体查询定位 iPad,并将标头从固定更改为绝对。然后我添加了一个单独的导航——同样只在 iPad 上——所以用户仍然可以使用平滑滚动来导航页面。这是一个黑客,但它会做。谢谢你的链接 - 我会检查一下:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多