- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 Jquery slideToggle 来显示/隐藏 DIV 元素。当您单击一个 DIV 元素时,它会显示/隐藏下一个 DIV 元素。
当我的代码中有大量 DIV 元素时,slideToggle 非常慢并且在 DOM 树的顶部没有响应。
它在 DOM 树的顶部变慢的原因是什么?怎么可能更快?这是我的示例代码(它包含很少的 DIV 元素,并且运行良好)。
注意:slideToggle 在 DOM 树底部的 DIV 元素上工作得很好。问题出在 DOM 树顶部的 DIV 元素上。
<html>
<head>
<title> Home page </title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
<script>
$(document).ready(function() {
$(".panel-heading").click( function() {
$(this).next().slideToggle();
});
});
</script>
</head>
<body>
<div id="container">
<div class="panel panel-default">
<div class="panel-heading nodeHeading">Panel heading</div>
<div class="panel-body" style="display:none;">Panel body</div>
</div>
<div class="panel panel-default">
<div class="panel-heading nodeHeading">Panel heading</div>
<div class="panel-body" style="display:none;">Panel body</div>
</div>
<div class="panel panel-default">
<div class="panel-heading nodeHeading">Panel heading</div>
<div class="panel-body" style="display:none;">Panel body</div>
</div>
<div class="panel panel-default">
<div class="panel-heading nodeHeading">Panel heading</div>
<div class="panel-body" style="display:none;">Panel body</div>
</div>
</div>
</body>
</html>
最佳答案
slideToggle
函数导致回流(请参阅 reflow and repaint 的定义/差异),浏览器必须计算网页并呈现它。
当您在 dom 树的底部执行 slideToggle
时,浏览器只需要重新计算网页最底部的布局,因为切换不会影响切换元素的上侧。显然网页的最底部很小,因此在开始切换之前需要很短的时间。
而如果您在 dom 树的顶部执行 slideToggle
,浏览器必须重新计算几乎整个网页的布局,因此在开始切换之前需要更多时间。
实际上,如果元素太多,似乎没有很好的解决方案,因为昂贵的操作reflow是不可避免的。
关于javascript - Jquery slideToggle 缓慢且在 DOM 树顶部没有响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31639961/
当我尝试使用 jQuery 在表格行中的另一个 slideToggle 中使用 slideToggle 时出现问题。 它有效,但是当我关闭子 slideToggle 时,它开始出现在父 slideTo
我有一个从右向左滑动的滑动开关。我有一些 div 元素,我希望在单击它们时 slideToggle 仅显示并且不会在再次单击该 div 元素 时关闭。仅在点击 slideToggle 中的按钮时关闭
http://jsfiddle.net/vmKVS/ 我想通过一个小例子来理解 slideToggle 的状态。 当我第一次切换时,选项元素变为绿色。 我希望当我再次单击切换时菜单元素变成红色,现在是
当窗口浏览器小于 600px 时,我的手机菜单有一个 slideToggle 的 jquery 函数。但是,当单击该图标时,它会向下滑动 ul,但会立即向上滑动。 这就是我要说的 https://js
我在 JQuery 中使用 slipToggle() 来显示 div。但这不起作用。 我做了不同的测试,但没有任何效果...... 我有这个: 1. Compétences Scientifique
此时我无法显示实时示例,但我不知道 SlideToggle 是如何被调用两次的。单击链接即可调用它。 这里: // initialize the jquery code $(function(){
我有一个可以使用 .slideToggle() 隐藏的联系表单,但我希望使用选项卡来切换表单以根据表单是否存在来更改文本在 View 中或隐藏。 这是 jQuery: $("#slider").cli
我正在尝试使用 searchDiv 类在 div 上调用 $("div.searchDiv").slideToggle("slow"); ,该类最初使用 隐
我在网站上使用 jQuery SlideToggle 函数来显示有关某些内容的“更多信息”。当我触发幻灯片时,内容逐渐显示出来,但位于右侧约100像素,直到动画结束时突然跳到正确的位置。反之,内容在开
我有一个其中有两个 .第二个是隐藏的,当我单击第一个 时应该显示. 我已经尝试过:$(me).parent().parent().find("ul").slideToggle();$(me) 是这
我有一个简单的菜单/ Accordion slider 。我想将 class="active"添加到单击的链接并向下滑动以显示 UL。当单击另一个单独的菜单项时,应将事件类从前一个元素中删除并添加到刚
我试图切换 ul 但收到错误消息“slideToggle 不是函数”。该菜单用于切换列表。 $(function() { $("li ul").hide();
点击.cart-contents-toggle时,#cartplus-dropdown div应该向下滑动,同时向上滑动,而无需再次点击它。这是实现此功能的 URL:Website Link jQue
我正在尝试让 Slidetoggle 在 div 上正常工作。我有以下格式的 html: $ServiceName
在我的html.css这就是我如何称呼 .js文件 它位于 body 的结束标记之后。我按照步骤操作,但不知道问题出在哪里。我需要先隐藏 ul,然后在用户单击按钮时弹出 ul。 $('.btnrefi
我有这个page当我单击“计算机”或任何其他标题之类的标题时,下面的项目需要上下滑动 我有这个结构 (1) Software
我在使用 JQuery 切换动画时遇到问题。我有一个菜单,其中有子项目,可在主项目悬停时滑动打开。我可以很好地实现这一点,但是,对于一长串项目,我希望能够停止打开并滑动关闭菜单,而不必等待 Slide
我已经弄清楚如何使用 jquery 移动我的 css 顶部位置,但是我希望 #menu id 根据切换更改顶部位置。所以基本上我希望 #menu 在单击 anchor 时下降 50 px,并在再次单击
$(document).ready(function() { $('.cats_showall').click(function() { $('.cats_dropdown li').sl
我根据自己的喜好设计了新的 WP 管理栏,并添加了“隐藏”按钮。我将按钮设置为滑动切换“wpadminbar”div。当我单击隐藏它时,div 和搜索表单(嵌套在“wpadminbar”div 中)两
我是一名优秀的程序员,十分优秀!