javascript - materializecss轮播滑块模式
问题描述
我在将我的物化轮播滑块集成到模式中时遇到了一些问题。我找不到问题,也无法通过谷歌或 materializecss 网站找到可能的解决方案。所以这是我的问题:
我创建了一个画廊,您可以在其中单击图像,然后使用集成的 fullWidth 滑块打开一个模态。打开模式可以正常工作,但我根本无法在模式中看到我的图像。只有当我调整浏览器的大小时,图像才会出现。
我正在使用 angular5,并使用 materializecss 进行页面设计。
(我知道有一个 @angular/material 和 ng2-materialize npm 包,它们是更好的方法,但我刚开始使用 angular5 进行开发,所以我想只学习一个新框架(angular5)并将框架用于所有其他东西你已经知道了(materializecss))
首先,我认为这是我的 angular5 应用程序的问题,所以我尝试以原生方式创建一个带有 carouse-slider 的模式(意味着没有 angular5)。正如您在我的 JSFiddel ( https://jsfiddle.net/davetwog/vfkbzu5m/ ) 中看到的那样,我面临同样的问题。
<button data-target="img-modal" class="btn modal-trigger" onClick="$('.carousel').carousel('set', 2);">Modal</button>
<div id="img-modal" class="modal">
<div class="modal-content">
<div class="carousel carousel-slider center">
<a class="carousel-item responsive-img"><img src="http://www.freeimageslive.com/galleries/objects/general/pics/objects00290.jpg"></a>
<a class="carousel-item responsive-img"><img src="http://www.freeimageslive.com/galleries/objects/general/pics/objects00383.jpg"></a>
<a class="carousel-item responsive-img"><img src="http://www.freeimageslive.com/galleries/objects/general/pics/objects00445.jpg"></a>
<a class="carousel-item responsive-img"><img src="http://www.freeimageslive.com/galleries/objects/general/pics/objects00448.jpg"></a>
<a class="carousel-item responsive-img"><img src="http://www.freeimageslive.com/galleries/objects/general/pics/objects00453.jpg"></a>
</div>
</div>
</div>
<script>
$(document).ready(function() {
$('.modal').modal();
$('.carousel').carousel({
fullWidth: true
});
});
</script>
任何人都知道我做错了什么?或者这是materializecss框架中的一个已知问题?
解决方案
由于模态框被隐藏,轮播的高度被计算为 0px。因此,旋转木马的高度为零。
我分叉了您的示例并更新了 JS 以使用 Materialize init 函数。初始化模态时,我使用该onOpenEnd
选项指定一个函数,该函数将在打开模态后初始化轮播,从而生成具有高度的轮播。
$(document).ready(function() {
var elems = document.querySelectorAll('.modal');
var instances = M.Modal.init(elems, {
'onOpenEnd': initCarouselModal
});
function initCarouselModal() {
var elems = document.querySelectorAll('.carousel');
var instances = M.Carousel.init(elems, {'fullWidth': true});
instances[0].set(2);
}
});
希望这会有所帮助。
推荐阅读
- c - 如何将下划线指向 char 数组的指针转换为 camelCasing?
- ssis - 如何在 SSIS 包中的日期派生列中允许“0”值
- sql - 为什么表类型参数没有在 sp 中声明?
- mysql - 有没有办法将数据从 mysql 表分派到 JSP 页面的下拉列表中?
- c# - RestSharp 请求中止 - 无法创建 SSL/TLS 安全通道
- node.js - React Native navigation.navigate 在 headerRight 按钮上不起作用
- c# - 位于 ListBox.ItemTemplate 中的 TextBlock 的绑定前景
- css - Vuetify.js:如何在 v-stepper 组件中更改步骤文本的颜色?
- python - 如何根据 python 中的 rgb 值合并图像内的像素?
- excel - 用空字符串替换换行符