jquery - 平滑滚动冲突 css3

标签 jquery html css

所以我使用这段代码来实现流畅的滚动。

$(function() {
  $('a[href*=#]:not([href=#])').click(function() {
    if (location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'') && location.hostname == this.hostname) {
      var target = $(this.hash);
      target = target.length ? target : $('[name=' + this.hash.slice(1) +']');
      if (target.length) {
        $('html,body').animate({
          scrollTop: target.offset().top
        }, 6000);
        return false;
      }
    }
  });
});

但是我无法打开我的表单,它是一个带有打开按钮的动画 css 信封

<a id="open" href="#content">Open</a>

我必须单击该按钮才能打开(动画)信封以键入消息。有什么建议吗?

最佳答案

我用这个代码替换了以前的代码并且它有效,谢谢@szef,没问题@szef :)

$(document).ready(function() {
  function filterPath(string) {
  return string
    .replace(/^\//,'')
    .replace(/(index|default).[a-zA-Z]{3,4}$/,'')
    .replace(/\/$/,'');
  }
  var locationPath = filterPath(location.pathname);
  var scrollElem = scrollableElement('html', 'body');

  $('a[href*=#]').each(function() {
    var thisPath = filterPath(this.pathname) || locationPath;
    if (  locationPath == thisPath
    && (location.hostname == this.hostname || !this.hostname)
    && this.hash.replace(/#/,'') ) {
      var $target = $(this.hash), target = this.hash;
      if (target) {
        var targetOffset = $target.offset().top;
        $(this).click(function(event) {
          event.preventDefault();
          $(scrollElem).animate({scrollTop: targetOffset}, 400, function() {
            location.hash = target;
          });
        });
      }
    }
  });

  // use the first element that is "scrollable"
  function scrollableElement(els) {
    for (var i = 0, argLength = arguments.length; i <argLength; i++) {
      var el = arguments[i],
          $scrollElement = $(el);
      if ($scrollElement.scrollTop()> 0) {
        return el;
      } else {
        $scrollElement.scrollTop(1);
        var isScrollable = $scrollElement.scrollTop()> 0;
        $scrollElement.scrollTop(0);
        if (isScrollable) {
          return el;
        }
      }
    }
    return [];
  }

});

关于jquery - 平滑滚动冲突 css3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26010100/

相关文章:

javascript - 如何创建自动完成组合框?

jquery - 想显示父子值?

javascript - 滑动面板在鼠标悬停时振荡

jQueryUI : Sliding two divs at the same time

css - 是否可以注释掉包含 css 注释的代码块?

jquery - 如何在 jQuery 中显示子菜单?

jquery - 单击时如何将div下拉值放入文本框

javascript - JQuery BorderRadius 在 mouseout 中不执行动画

html - 如何将 1 到 5 张图像放在另一张图像之上?

javascript - 如何使模态框出现在整个页面上