如何删除 Materialise Floating Action Button 动画?
How to remove Materialize Floating Action Button animation?
我创建了一个 Floating Action Button with Materialize,但是当您将鼠标悬停在按钮上时显示选项的动画时间过长。
我在 Google 上搜索并查看了 FAB 的 Materialise 文档,但我找不到任何方法来删除过渡或减少过渡的持续时间。这些是唯一的选择:
| Name | Type | Default | Description |
|----------------|---------|---------|-------------------------------------------------------------------|
| direction | String | 'top' | Direction FAB menu opens. Can be 'top', 'right', 'buttom', 'left' |
| hoverEnabled | Boolean | true | If true, FAB menu will open on hover instead of click |
| toolbarEnabled | Boolean | false | Enable transit the FAB into a toolbar on click |
通过添加 click-to-toggle
class,还有另一个选项可以在您单击而不是悬停时显示选项,但这仍然有动画。
如何去除动画?
(缩短时长也可以)
这是一个演示动画的 StackSnippet:
document.addEventListener('DOMContentLoaded', function() {
var elems = document.querySelectorAll('.fixed-action-btn');
var instances = M.FloatingActionButton.init(elems);
});
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/css/materialize.min.css">
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
<script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/js/materialize.min.js"></script>
<div class="fixed-action-btn">
<a class="btn-floating btn-large red">
<i class="large material-icons">mode_edit</i>
</a>
<ul>
<li><a class="btn-floating red"><i class="material-icons">insert_chart</i></a></li>
<li><a class="btn-floating yellow darken-1"><i class="material-icons">format_quote</i></a></li>
<li><a class="btn-floating green"><i class="material-icons">publish</i></a></li>
<li><a class="btn-floating blue"><i class="material-icons">attach_file</i></a></li>
</ul>
</div>
(另外,如果你给按钮添加waves-effect
class,动画会更慢。我想保留waves-effect
class,但这是可选的)。
我假设您已下载 css 和 js 文件并在本地加载到您的项目。
您可以取消缩小您的 js 并在您的取消缩小的 js 中查找这些行:
key: "_animateInFAB",
value: function() {
var e = this;
this.$el.addClass("active");
var i = 0;
this.$floatingBtnsReverse.each(function(t) {
s({
targets: t,
opacity: 1,
scale: [.4, 1],
translateY: [e.offsetY, 0],
translateX: [e.offsetX, 0],
duration: 275, //this is duration in ms for opening fab.
delay: i,
easing: "easeInOutQuad"
}), i += 40
})
}
找到这些行后,根据需要更改持续时间,但这只会影响打开持续时间。往下几行,您可以看到类似的关闭代码。我很久以前就与 Materialise 合作过,我对代码进行了这种修改。希望对您有所帮助。
我创建了一个 Floating Action Button with Materialize,但是当您将鼠标悬停在按钮上时显示选项的动画时间过长。
我在 Google 上搜索并查看了 FAB 的 Materialise 文档,但我找不到任何方法来删除过渡或减少过渡的持续时间。这些是唯一的选择:
| Name | Type | Default | Description | |----------------|---------|---------|-------------------------------------------------------------------| | direction | String | 'top' | Direction FAB menu opens. Can be 'top', 'right', 'buttom', 'left' | | hoverEnabled | Boolean | true | If true, FAB menu will open on hover instead of click | | toolbarEnabled | Boolean | false | Enable transit the FAB into a toolbar on click |
通过添加 click-to-toggle
class,还有另一个选项可以在您单击而不是悬停时显示选项,但这仍然有动画。
如何去除动画?
(缩短时长也可以)
这是一个演示动画的 StackSnippet:
document.addEventListener('DOMContentLoaded', function() {
var elems = document.querySelectorAll('.fixed-action-btn');
var instances = M.FloatingActionButton.init(elems);
});
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/css/materialize.min.css">
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
<script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/js/materialize.min.js"></script>
<div class="fixed-action-btn">
<a class="btn-floating btn-large red">
<i class="large material-icons">mode_edit</i>
</a>
<ul>
<li><a class="btn-floating red"><i class="material-icons">insert_chart</i></a></li>
<li><a class="btn-floating yellow darken-1"><i class="material-icons">format_quote</i></a></li>
<li><a class="btn-floating green"><i class="material-icons">publish</i></a></li>
<li><a class="btn-floating blue"><i class="material-icons">attach_file</i></a></li>
</ul>
</div>
(另外,如果你给按钮添加waves-effect
class,动画会更慢。我想保留waves-effect
class,但这是可选的)。
我假设您已下载 css 和 js 文件并在本地加载到您的项目。
您可以取消缩小您的 js 并在您的取消缩小的 js 中查找这些行:
key: "_animateInFAB",
value: function() {
var e = this;
this.$el.addClass("active");
var i = 0;
this.$floatingBtnsReverse.each(function(t) {
s({
targets: t,
opacity: 1,
scale: [.4, 1],
translateY: [e.offsetY, 0],
translateX: [e.offsetX, 0],
duration: 275, //this is duration in ms for opening fab.
delay: i,
easing: "easeInOutQuad"
}), i += 40
})
}
找到这些行后,根据需要更改持续时间,但这只会影响打开持续时间。往下几行,您可以看到类似的关闭代码。我很久以前就与 Materialise 合作过,我对代码进行了这种修改。希望对您有所帮助。