окно материализации не открывает изображение при нажатии - PullRequest
0 голосов
/ 07 октября 2019

Я создаю страницу, используя angular 8 с materialize, в которой мне нужно будет отобразить несколько картинок, и если пользователь нажимает на одну из них, я хочу, чтобы она открывалась в полноэкранном режиме, у materialize есть класс, где вы можете сделатьэто, но когда я использую его, изображение не открывается, я ожидал, что оно откроется, так как оно открывается по этой ссылке https://materializecss.com/media.html, но оно не показывает никакой реакции на мой клик, который я пытался сделать следующим образом:

<img src="assets/img/test.png" class="materialboxed">
that's my html page
<div class="container ">
    <h1>Materialize Image Gallery</h1>
    <div class="row card">
        <div class="col s12 m6 l4">
            <img src="assets/img/test.png" class="materialboxed">
        </div>
        <div class="col s12 m6 l4">
            <img src="assets/img/test1.png" class="materialboxed">
        </div>
        <div class="col s12 m6 l4">
            <img src="assets/img/test2.png" class="materialboxed">
        </div>
    </div>
</div>

и это моя страница указателя

<!doctype html>
<html lang="en">

<head>
    <meta charset="utf-8">
    <title>Test page</title>
    <base href="/">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="icon" type="image/x-icon" href="favicon.ico">
    <link type="text/css" rel="stylesheet"
        href="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/css/materialize.min.css"
        media="screen,projection">
    <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
</head>

<body>
    <app-root></app-root>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/js/materialize.min.js"
        type="text/javascript"></script>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
</body>

</html>

1 Ответ

0 голосов
/ 08 октября 2019

Как и в ваших фрагментах, вы не инициализировали виджет MaterialBox, как описано в документации.

Внутри вашего индексного файла добавьте скрипт с этим JQuery:

  $(document).ready(function(){
$('.materialboxed').materialbox();
});

ИлиВы можете добавить ванильный Javascript:

  document.addEventListener('DOMContentLoaded', function() {
var elems = document.querySelectorAll('.materialboxed');
var instances = M.Materialbox.init(elems, options);
});

Окончательный файл индексной страницы с использованием JQuery должен выглядеть следующим образом:

<!doctype html>
<html lang="en">

<head>
    <meta charset="utf-8">
    <title>Test page</title>
    <base href="/">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="icon" type="image/x-icon" href="favicon.ico">
    <link type="text/css" rel="stylesheet"
        href="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/css/materialize.min.css"
        media="screen,projection">
    <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
</head>

<body>
    <app-root></app-root>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/js/materialize.min.js"
        type="text/javascript"></script>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
    <script>
  //Added Code
  $(document).ready(function(){
    $('.materialboxed').materialbox();
 //End Added Code
 </script>
</body>

</html>

Надеюсь, этот ответ поможет кому-нибудь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...