当前位置: 首页 > 知识库问答 >
问题:

滑向下在结尾处突然跳跃

姜永贞
2023-03-14

我在垂直列中构建了一个相当正常的菜单-子菜单排列--嵌套的ULs,使用slidetoggle展开和折叠子菜单。

我想要解决的问题是子菜单在最后“跳”开的方式。(我正在Chrome的最新版本中进行测试。)它可能在第二个子菜单“福利”中最引人注目。它不会在菜单折叠时跳转,只有在菜单展开时才跳转。

我认为问题可能与:after样式有关,只有在菜单完全展开时才添加。具体地说,一旦菜单完全展开,类current就会添加到LI标记中。但注释掉切换该类的代码似乎没有效果。

null

$(document).ready(function() {
  $('#group-subnav > ul > li > a').on('click', function(e) {
    e.preventDefault();
    var $li = $(this).closest('li');
    $li.find('ul').slideToggle('', function() {
      $li.toggleClass('current')
    }).end().siblings().find('ul').slideUp('', function() {
      $li.siblings().removeClass('current')
    }).end();
  });
});
/* Normalize */

body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,input,textarea,p,blockquote,th,td {
  margin:0;
  padding:0;
}
ol,ul {
  list-style:none;
}


#group-subnav {
  display: table-cell;
  vertical-align: top;
  background: #f6ca00;
  width: 159px;
  height: 100%;
}

#group-subnav a {
  display: block;
  color: inherit;
  text-decoration: none;
}

#group-subnav a:hover {
  /*    text-decoration: underline;*/
}

#group-subnav>ul {}

#group-subnav>ul>li {
  border-top: 2px solid #fff;
  font-size: 80%;
  text-shadow: 1px 1px 2px #eee;
  color: #333;
  letter-spacing: 1px;
  line-height: 1.2em;
  background: #bebebe;
  /* Old browsers */
}

#group-subnav>ul>li>a {
  padding: 6px 8px 12px;
  background: #bebebe;
  /* Old browsers */
  background: -moz-linear-gradient(top, #bebebe 0%, #b3b3b3 50%, #808080 100%);
  /* FF3.6+ */
  background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #bebebe), color-stop(50%, #b3b3b3), color-stop(100%, #808080));
  /* Chrome,Safari4+ */
  background: -webkit-linear-gradient(top, #bebebe 0%, #b3b3b3 50%, #808080 100%);
  /* Chrome10+,Safari5.1+ */
  background: -o-linear-gradient(top, #bebebe 0%, #b3b3b3 50%, #808080 100%);
  /* Opera 11.10+ */
  background: -ms-linear-gradient(top, #bebebe 0%, #b3b3b3 50%, #808080 100%);
  /* IE10+ */
  background: linear-gradient(top, #bebebe 0%, #b3b3b3 50%, #808080 100%);
  /* W3C */
  filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#bebebe', endColorstr='#808080', GradientType=0);
  /* IE6-9 */
}

#group-subnav>ul>li>a:after {
  content: ' +';
  float: right;
}

#group-subnav>ul>li.current>a:after,
#group-subnav>ul>li:hover>a:after {
  font-size: 75%;
  content: ' \25bc';
}

#group-subnav>ul>li>ul {
  display: none;
  background: #f4e693;
  padding: 2em 0;
}

#group-subnav>ul>li.current>ul
/*,
            #group-subnav > ul > li:hover > ul*/

{
  display: block;
}

#group-subnav>ul>li>ul>li {
  text-shadow: none;
  padding: 5px 8px;
  border-bottom: 1px solid #e5b502;
  color: #666;
  font-size: 90%;
  letter-spacing: 0;
}

#group-subnav>ul>li>ul>li:first-child {
  border-top: 1px solid #e5b502;
}

#group-subnav>ul>li>ul>li>a {
  color: inherit;
  text-decoration: none;
}

#group-subnav>ul>li>ul>li>a:after {
  content: "\00a0>";
}

#group-subnav>ul>li>ul>li>a:hover {
  text-decoration: underline;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<nav id="group-subnav">
  <!-- one column wide -->
  <ul>
    <li class="current"><a href="#">Services</a>
      <ul>
        <li><a href="#">Workflow Analysis</a></li>
        <li><a href="#">Technology Assessment</a></li>
        <li><a href="#">Precision Conversion</a></li>
        <li><a href="#">Intelligent Indexing</a></li>
        <li><a href="#">Simple Search and Retrieval</a></li>
        <li><a href="#">Better Forms Management</a></li>
        <li><a href="#">Effortless Distribution</a></li>
        <li><a href="#">Total Security</a></li>
        <li><a href="#">Easier Regulatory Compliance</a></li>
        <li><a href="#">Scanning</a></li>
      </ul>
    </li>
    <li><a href="#">Benefits</a>
      <ul>
        <li>Faster Storage and Retrieval</li>
        <li>Meticulous Records Management</li>
        <li>Disaster Prevention and Recovery</li>
        <li>Heightened Security</li>
        <li>Freed-up Physical Space</li>
        <li>Responsive Customer Service</li>
      </ul>
    </li>
    <li><a href="#">Get Started</a>
      <ul>
        <li>Call our Strategic Services Manager to get started.<br>
          <li><a href="mailto:">Email</a></li>
      </ul>

      </li>
  </ul>
</nav>

null

查看jsFiddle

共有2个答案

司马璞
2023-03-14

我也有同样的问题,但什么也没解决。原来将“transition”属性设置为某个东西引起了我的问题:p我只是在滑动对象上将其设置为none,而slideDown现在起到了魅力作用:-)

邢勇
2023-03-14

为正在滑动切换的元素设置一个宽度。

http://jsfidle.net/5ggum/6/

    #group-subnav > ul > li > ul {
        display: none;
        background: #f4e693;
        padding: 2em 0;
        width: 159px;
    }

这允许jQuery精确计算结束高度。

作为参考,我从这里了解了这个小技巧:http://www.bennadel.com/blog/2263-use-jquery-s-slidedown-with-fixed-widte-elements-to-prevent-jumping.htm

 类似资料:
  • CommandInvokationFailure:无法生成APK。有关详细信息,请参阅控制台。C:\Program Files\Java\jdk1.8.0_77\bin\Java.exe-xmx2048m- dcom.android.sdkmanager.toolsdir=“C:/users/fluentp/appdata/local/android/sdk\tools”-dfile.encodi

  • 问题内容: 当我使用vim和其他编辑器编辑源文件时,有时在该行的末尾,我在每行的末尾获得了这些^ M字符。我认为这与在Windows中然后在Linux中编辑文件有关。如何自动删除所有这些? 问题答案: 作为命令,键入 (要获取^ M,请按^ V ^ M,其中^是大多数键盘上的CTRL)

  • 感谢你阅读本书。通过本书,我们通过来实现一个Android App的例子来学习Kotlin。这个天气预报的App是一个不错的例子,它实现了大部分App需要的一些基本特性:一个主/从UI,通过API通信,数据库存储,shared preferences…… 用这个方式不错的地方是你使用它们的使用学习到了大部分的Kotlin中重要的概念。我觉得新的语言在真正实践的时候更加容易被掌握。这是我主要的目标,

  • 我移动整个卡片,到末尾的时候,我直接瞬移到第一个,再次循环。我想使用无限循环走马灯的那种效果? html元素

  • 我想在ios上设置wifi状态,为此,我需要从控制中心底部向上滑动。 在我将java客户端升级到4.0.0和appium升级到1.5.2之前,它工作正常。 我得到一个错误:error:VerboseError:point不在屏幕范围内 记录如下: 知道是怎么回事吗? 谢谢

  • 问题内容: 每次(第一次除外),我在JEditorPane中设置的文本滚动条都会跳到JEditorPane的底部。有什么办法可以避免这种情况?我尝试的一种方法是在setText()之后使用setCaretPosition(0)。它可以工作,但这并不是我真正需要的。滚动条向下跳然后向上跳。有没有一种方法可以避免settext()上滚动条的任何移动? 我的代码: 问题答案: 有不同的方法可以做到这一点