【问题标题】:JQuery .animate() not working on IEJQuery .animate() 在 IE 上不起作用
【发布时间】:2017-10-03 19:01:35
【问题描述】:

我的 JQuery .animate() 函数似乎无法在 IE 上运行。能否请您帮我将其转换为纯 JS 解决方案?

var brandLink = $('#brand');
var pageTop = $('#page-top');
var navLinks = $('.nav-link');
var offerSection = $('#offer');
var techSection = $('#tech');
var portfolioSection = $('#portfolio');
var contactSection = $('#contact');
var moreBtn = $('.more-button');

navLinks.eq(0).click(() => {
    $('html, body').animate({
        scrollTop: pageTop.offset().top
    }, 500);
});

如您所见,这用于将页面滚动到单页网站中的部分/页面顶部。

谁能解释为什么 animate() 不能在 IE 上运行?

【问题讨论】:

  • 哪个版本?任何控制台错误?它是什么都不做,还是像普通的#标签一样跳跃?
  • 您需要具体了解 IE 的版本。它们都对各种功能提供不同级别的支持。如果您知道该功能,通常可以在线查找支持级别。
  • @noa-dev 版本 11。没有控制台错误,不仅停止像 # 标签一样跳转,而且导致修复导航栏出现问题。
  • 不,我认为 noa-dev 会询问 IE 的版本,而不是 jQuery(虽然这也是有用的信息,但只要它是相当新的,就没有那么重要了)。查看文档的 DOCTYPE 也很有用,因为它可能与标准/怪癖问题有关
  • @ADyson 你的意思是我的html?几百行

标签: javascript jquery


【解决方案1】:

快拍,试试:

var brandLink = $('#brand');
var pageTop = $('#page-top');
var navLinks = $('.nav-link');
var offerSection = $('#offer');
var techSection = $('#tech');
var portfolioSection = $('#portfolio');
var contactSection = $('#contact');
var moreBtn = $('.more-button');

navLinks.eq(0).click(function(e) {
    e.preventDefault(); // to prevent native behaviour of the thing you press
    $('html, body').animate({
        scrollTop: pageTop.offset().top
    }, 500);
});

【讨论】:

    【解决方案2】:

    根据您需要支持的 IE 版本,查看this site。你会发现一些通用的转变可能会有所帮助。

    还可以查看this(添加 preventDefault(); 以确保脚本正常工作)。

    【讨论】:

      猜你喜欢
      • 2012-10-07
      • 1970-01-01
      • 2011-11-30
      • 1970-01-01
      • 1970-01-01
      • 2013-02-22
      • 1970-01-01
      • 2021-10-26
      • 1970-01-01
      相关资源
      最近更新 更多