包含MDL css时,jQuery .fadeIn()不起作用

时间:2016-08-14 20:45:10

标签: jquery html fadein hidden

有人可以解释一下为什么(在这个例子中)。当我包含MDL css文件时隐藏div的.fadeIn()函数不起作用吗?

<html>
<head>
    <script src="https://code.jquery.com/jquery-3.1.0.min.js"></script>
    <link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons">
    <link rel="stylesheet" href="https://code.getmdl.io/1.2.0/material.indigo-pink.min.css">
    <script defer src="https://code.getmdl.io/1.2.0/material.min.js"></script>

    <script type="text/javascript">
        $(document).ready(function() {
            var tst = $("#tst");
            tst.fadeIn(250);
        });
    </script>
</head>

<body>
    <div id="tst" hidden>test</div> 
</body>
</html>

https://jsfiddle.net/L5knc1qh/

没有MDL样式,一切正常。

2 个答案:

答案 0 :(得分:0)

因为素材在!important课程中使用hidden。因此,这将始终优先于fadeIn()。您必须在该元素上使用自定义css样式才能使其正常工作。 Example

答案 1 :(得分:0)

fadein在“!important”样式表指令中存在问题(即:隐藏材料指令)。 因此,实现目标的另一种方法是:

$(document).ready(function() {
  $("#test").attr('style', 'display: block !important; opacity: 0;').animate({opacity: 1}, 250);
});
<script src="https://code.jquery.com/jquery-3.1.0.min.js"></script>
<link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons">
<link rel="stylesheet" href="https://code.getmdl.io/1.2.0/material.indigo-pink.min.css">
<script defer src="https://code.getmdl.io/1.2.0/material.min.js"></script>

<div id="test" hidden>
    <p>
        KURRRRRRRRRRRWAAAAAAAAAAAAAAAAAAAAA
    </p>
</div>