【发布时间】:2015-12-19 15:52:28
【问题描述】:
我只想在用户单击关闭按钮时关闭模式。我知道,如何在 Bootstrap 中做到这一点。你能帮助 Materialize 吗?
【问题讨论】:
我只想在用户单击关闭按钮时关闭模式。我知道,如何在 Bootstrap 中做到这一点。你能帮助 Materialize 吗?
【问题讨论】:
您可以使用页面底部Here 的选项自定义Materialize modal 的行为
将选项dismissible 更改为false(在模态插件中默认为true),因此模态只有在单击close 按钮时才会关闭。
$('.modalselector').leanModal({
dismissible: false
);
示例模式
$(document).ready(function(){
$('.modal-trigger').leanModal({
dismissible: false
});
});
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.97.1/css/materialize.min.css" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.97.1/js/materialize.min.js"></script>
<!-- Modal Trigger -->
<a class="waves-effect waves-light btn modal-trigger" href="#modal1">Modal</a>
<!-- Modal Structure -->
<div id="modal1" class="modal">
<div class="modal-content">
<h4>Modal Header</h4>
<p>A bunch of text</p>
</div>
<div class="modal-footer">
<a href="#!" class=" modal-action modal-close waves-effect waves-green btn-flat">Close</a>
</div>
</div>
【讨论】:
$(document).ready(function(){
$('#modal1').openModal({
dismissible:false
});
});
试试这个它对我有用
【讨论】:
您可以使用以下代码关闭模态框:
$('#modalname').closeModal(); or $('#modalname').modal('close');
【讨论】:
以下代码适用于 materialize.css 1.0.0
$(document).ready(function(){
var elems = document.querySelectorAll('.modal');
var instances = M.Modal.init(elems,{
dismissible:false
});
var singleModalElem = document.querySelector('#login-page');
var instance = M.Modal.getInstance(singleModalElem);
instance.open();
})
<link href="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/css/materialize.min.css" rel="stylesheet"/>
<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>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.1/jquery.min.js"></script>
<div id="login-page" class="modal">
<form class="login-form">
<div class="row">
</div>
<div class="row">
<div class="input-field col s12">
<i class="material-icons prefix">account_circle</i>
<input class="validate" id="nick_name" type="text">
<label for="nick_name" data-error="wrong" data-success="right">Nick Name</label>
</div>
</div>
<div class="row">
<div class="input-field col s12">
<a href="#" class="btn waves-effect waves-light col s12">Entra</a>
</div>
</div>
</form>
</div>
【讨论】:
这些方法都不适合我。但是,确实如此,
$('#modal1').closeModal({ dismissible: true});
【讨论】:
$('#modal1').openModal({ dismissible: false}); 做到了!
只需将 data-backdrop 属性设置为静态即可。
【讨论】:
leanModal()、openModal() 和 closeModal() 对我来说都失败了。从那时起,事情一定发生了变化。而是:
$("#modal1").modal({
dismissible: false
});
甚至只是第二次调用模态:
$("#modal1").modal();
【讨论】:
如果您只想插入按钮以关闭模式(有时 CSS 冲突不允许模式关闭),请使用:
<span
class="modal-action modal-close"
style="float:right; font-size:30px;"
onclick="$('#myModal2').closeModal();"
>
X
</span>
【讨论】:
遇到需要做类似的事情,并认为我会与其他正在寻找它的人分享。我正在使用 Materialize 1.0.0,上面的建议都不适合我。基本上,我们希望能够控制模态框的“可关闭”属性,并在我们想要的任何时候,从我们想要的任何地方更改它,无论它是在模态框打开之前还是之后都无关紧要。我发现最优雅的方式就是这样做。这将控制当用户在其区域之外单击时模态的行为消失。
var m = M.Modal.getInstance(modal);
m.options.dismissible = true|false;
modal 参数是你的模态 div。
希望对您有所帮助。
【讨论】:
纯 JavaScript,就是这样。
将关闭模式的 span 元素。
var span = document.getElementsByClassName("close")[0];
当你想点击 X 关闭模态框时,你可以使用它。
span.onclick = function() {
modal.style.display = "none";
}
如果您在模态之外单击,这将关闭模态。
window.onclick = function(event) {
if(event.target == modal) {
modal.style.display = "none";
}
}
【讨论】:
$(".modal4").addClass('modal-close');
其中 modal4 是您要关闭的模态类
【讨论】:
在 Vue Js 中,使用 materialize-css package
npm i materialize-css
import M from 'materialize-css';
methods: {
closeMaterializeModal(){
var elem = document.getElementById("modal4");
var instance = M.Modal.getInstance(elem);
instance.close();
}
}
【讨论】:
【讨论】: