Я совсем не силён в js, поэтому пользуюсь готовыми решениями.
У меня сборщик gulp, верстаю с помощью bootstrap 4. js из "коробки" используется только для навигации (гамбургера). Я хотел воспользоваться плагином fancybox для организации галереи на будущем сайте, однако ничего не получается.
Что я имею:
Что я делаю:
<a id="single_image" href="image_big.jpg"><img src="image_small.jpg" alt=""/></a>
$(document).ready(function() {
/* This is basic - uses default settings */
$("a#single_image").fancybox();
});
Файл head.html выглядит следующим образом:
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<link rel="stylesheet" href="css/main.min.css">
<title>Стартовая страница</title>
<script src="https://kit.fontawesome.com/5504bc3ed9.js"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
<script type="text/javascript" src="/js/main.min.js"></script>
<script type="text/javascript" src="/js/jquery.fancybox-1.3.4.pack.js"></script>
<script type="text/javascript">
$(document).ready(function() {
/* This is basic - uses default settings */
$("a#single_image").fancybox();
});
</script>
На выходе - галерея не работает. Изображения открываются отдельными страницами. В console вылезает следующие ошибки:
Uncaught TypeError: Cannot read property 'msie' of undefined
Uncaught TypeError: $(...).fancybox is not a function
Судя по всему у вас несколько ошибок:
<script>
, второй раз из main.min.js. соответственно, из них двоих работать без костылей будет только одна, скорее всего та, что позже подгрузилась, но для уверенности можно в консоли DevTools выполнить код $().jquery;
или $.fn.jquery
, который покажет используемую версию jQuery.Судяпо ошибке, которую вы получаете, предположу, что используется jQuery >= 1.9, т.к. свойство $.browser
в котором и лежал флаг msie
было удалено начиная с версии 1.9.
fancybox 1.3
. В своем текущем проекте я использую magnific-popup
, но есть множество других.$.noConflict()
, как то так:<!-- грузим js 1.4 -->
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
<script type="text/javascript">
var jq_1_4 = $.noConflict(true);
</script>
<!-- грузим main.min.js, в котором старшая верися jQuery -->
<script type="text/javascript" src="/js/main.min.js"></script>
<!-- fancybox -->
<script type="text/javascript" src="/js/jquery.fancybox-1.3.4.pack.js"></script>
<script type="text/javascript">
$(document).ready(function() {
/* This is basic - uses default settings */
jq_1_4("a#single_image").fancybox();
});
</script>
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Вопрос глупый, однако не могу понять почему не выходит создать круглый маркер нужного цвета Мой код:
Есть страница, при заходе на которую у пользователя страница должна грузиться с сервера, а не из кэшаМожно ли очистить кэш через javascript? Или...
Как добиться такого эффекта для блока? Пробовал через св-ва filter: blur(); и opacity, но не получается