Dojo切换器不能与显示一起工作:无

Dojo toggler not working with display: none

本文关键字:工作 一起 显示 切换器 不能 Dojo      更新时间:2023-09-26

这是一个有效的示例:

<html>
<head>
<script type="text/javascript" src="dojo/dojo.js">
</script>
<script language="javascript" type="text/javascript">
require(["dojo/dom","dojo/fx/Toggler","dojo/topic","dojo/domReady!"],
    function(dom,Toggler,topic){
var toggler = new Toggler ({
    node: "test"
});
alert("something");     
toggler.hide();
});
</script>
</head>
<body>
<div id="test">This is just a test.</div>
</body>
</html>

当我添加display: none到我的div(并使用toggler.show()),它停止工作。下面是一个不能正常工作的示例:

<html>
<head>
<script type="text/javascript" src="dojo/dojo.js">
</script>
<script language="javascript" type="text/javascript">
require(["dojo/dom","dojo/fx/Toggler","dojo/topic","dojo/domReady!"],
    function(dom,Toggler,topic){
var toggler = new Toggler ({
    node: "test"
});
alert("something");     
toggler.show();
});
</script>
</head>
<body>
<div id="test" style="display:none">This is just a test.</div>
</body>
</html>

问题:

    为什么会发生这种情况?
  • 我使用dojo或其toggler模块的方式是否存在根本错误?
  • 我可以使用display: none的切换器(如果有的话)的替代方案是什么?

注意:

我已经检查了各种可能重复的链接,但它们都提供了解决方法,如下所述:-

  • 使用dojo.style("test","display","")工作,但在复杂的项目中,它与对齐等混乱。
  • 移除display:none或用visibility: hidden替换它不是我的选择。它工作,但我想避免变通,如果一个实际的解决方案存在。

Toggler Animation使用fadeIn和fadeOut函数来改变Node的可见性。这反过来又更新节点的不透明度。也就是说,节点还在,只是不可见。

当您使用Toggler显示时,将显示设置为none不会更新。另外,设置display属性允许其他节点占用当前节点占用的位置。

所以,你需要决定你想要什么。是使用Toggler还是dojo.style。如果您希望继续使用Toggler,那么您需要将不透明度设置为0,而不是显示