- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我在垂直列中构建了一个相当正常的菜单-子菜单排列——嵌套 UL,使用 slideToggle
展开和折叠子菜单。
我要解决的问题是子菜单在最后“跳转”打开的方式。 (我正在最新版本的 Chrome 中进行测试。)它可能在第二个子菜单“优势”中最为引人注目。它不会在菜单折叠时跳转,只有在展开时才会跳转。
我认为问题可能与仅在菜单完全展开时添加的 :after
样式有关。具体来说,一旦菜单完全展开,类 current
就会被添加到 LI 标签中。但是注释掉切换该类的代码似乎没有效果。
$(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>
最佳答案
给你滑动切换的元素设置宽度。
#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-Width-Elements-To-Prevent-Jumping.htm
关于javascript - slideDown 到最后突然跳转,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11194402/
A 使用 jquery 设计了一个两级菜单。当我将鼠标悬停在顶部菜单链接时,submenu 类名的 DIV 会向下滑动。当我将鼠标悬停在该 div 内时,会出现一个链接,类名为 subsubmenu
我正在为 Android 手机构建 PhoneGap 应用程序。我使用这样的机制让用户将数据提交到 Web 服务: $('#backdrop').slideDown('fast',function()
我有一个 div#items,如果单击它,则 div#choices slipDown()。如果再次单击,则 div#choices 应该 slipUp();我如何测试选择是否已经下降或上升?我知道我
我是 jquery 新手,我正在尝试在下拉菜单上使用 .slidedown 函数。我希望菜单在单击时打开,并在再次单击选项或菜单时关闭。然而,当按原样单击菜单时,它只是弹开和关闭,而不是保持打开状态。
如何在 css 设置为 display:none 的页面加载时使用 jquery 向下滑动 div?我看到了很多解决方案,但如果 css 设置为 display:none,则没有一个可以滑动 div。
为什么slideDown()第一次不起作用? $('#lnkInfo').click(function (e) { e.preventDefault(); $(this).blur()
我遇到了同样的问题,尽管我找不到解决方案,但我在网上读到了相关内容。 简单地说,当在我的 DIV 元素上使用 SlideDown() 方法时,我得到了丑陋的回弹效果,其中 jQuery 将 DIV 大
我在我的这个网站上使用 JQuery SlideUp 和 SlideDown。 http://ourrecipes.mdssoftware.com.au/ 在 IE 中这工作得很好。但在 Chrome
我的网站上有一个 SlideDown 功能。但不知怎的,当你第一次点击它时它不起作用。所以我需要点击两次才能使该功能起作用。什么可能是错误的? 我还希望当我再次点击按钮时div向上滑动,不知道我将如何
这应该很容易,但我检查了谷歌并没有找到任何相关信息。 我正在做: $notification.slideDown(1000, function(){ $('#n
为什么这个 jQuery 代码不起作用? $(document).ready(function () { $('currentPage').click(function() {
我们什么时候应该使用 jQuery 中的 slideUp/slideDown 以及什么时候使用 slideToggle 函数?slidetoggle 在 IE 中工作是否有问题? 最佳答案 当您想要向
我正在使用 jquery 制作一个向下滑动的菜单。该代码在页面第一次加载时完美运行。但是,slideDown(单击功能的基本部分)对于每个菜单项只能运行一次。这是一个 js fiddle 示例 htt
大家好。我有一点问题。我有一个有序列表,其中包含一系列预先填充的列表项。 Item 1 Item 2 Item 3 Item 4 当我使用 jQuery 动态添加另
我希望有人能帮助我正确完成这项工作。 我有这个 HTML: 1 view modules
我想知道是否有任何方法可以使 SlideDown() 移动看起来更平滑,而无需使用 jQuery UI,只需使用普通的 jquery。 我有这个功能: function optionz(){
我正在尝试构建一个具有动态高度和数量的元素列表,当用户单击它们时,这些元素会上下滑动。问题是,当时只需要显示其中一个,而其他的则在点击后会自动向上滑动。 我遇到了位于正在滑下的元素下方的元素的问题。它
我在 profile.php 中有一个可用的 slideDown div。当我单击用户名时,个人资料信息会向下滑动。这是结构, profile.php - 这工作正常。 $('.showprofile
我目前正在创建一个简单的菜单,其中有多个服务名称,用户可以单击其中一个,jQuery 将在其下方显示相应的描述段落。我的 jQuery 代码很好,完全符合我的要求,但是,我有一个错误尚未解决。 每当我
因此,当与 jQuery slideDown 函数结合使用时,我的渐变会出现令人讨厌的样式现象。 我怀疑正在发生的事情是我在每个页面上都运行了一个全局渐变。在一页上我使用以下内容: function
我是一名优秀的程序员,十分优秀!