JavaScript файл не загружается после перехода страницы (barba. js) - PullRequest
0 голосов
/ 26 мая 2020

С моим индексом все работает нормально. html. На первой странице .onload все изображения перетаскиваются и перемещаются по всей странице

ЗДЕСЬ ПРОБЛЕМА:

Однако, когда Я перешел на страницу, посвященную . html И GO НАЗАД К ИНДЕКСУ. html похоже, что мой скрипт больше не работает, и я вижу только одно изображение, которое больше нельзя перетащить.

Есть Посмотрите подробнее на мой проект здесь: https://codepen.io/cat999/project/editor/AEeEdg

everything work fine on first onload page and images are draggable but when i go to the about page and come back on the index page the draggable is not working

** КАК ИСПРАВИТЬ ПРОБЛЕМУ? МОЖЕТ ЛИ КТО-ТО ПОМОЧЬ МНЕ ИСПРАВИТЬ КОД? **

var winWidth = window.innerWidth,
    winHeight = window.innerHeight,
    threeWinHeight = winHeight*3;

$(window).on('resize', function(){
  winHeight = window.innerHeight,
  twiceWinHeight = winHeight*2;
});


$('.shape').each(function(){
  var topPos = Math.floor(Math.random()*1300),

      //BE CAREFUL 7000px is less then total body height or  CAUSING OVERFLOW
      leftPos = Math.floor(Math.random() * winWidth);
  $(this).css('top', topPos + 'px');
  $(this).css('left', leftPos + 'px');
});




Draggable.create('.shape', {
  //type:"rotation",
  bounds: '.section-2',
  edgeResistance:0.65,
  throwProps:true,
});



var number = Math.floor((Math.random() *15) + 2);
var number2 = Math.floor((Math.random() * 0) + -15);
var number3 = Math.floor((Math.random() * 0) + 15);
var number4 = Math.floor((Math.random() * 0) + 6);
$(".shape--circle").css("transform", "rotate(" + number2 + "deg)");
$(".shape--square").css("transform", "rotate(" + number3 + "deg)");
$(".shape--circle-2").css("transform", "rotate(" + number4 + "deg)");

Кроме того, в указателе и в разделе «Информация» используется barba. js. Вот список моих скриптов:

<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/gsap/1.20.4/TweenMax.min.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/gsap/1.20.4/utils/Draggable.min.js"></script>
<script type="text/javascript" src="https://s3-us-west-2.amazonaws.com/s.cdpn.io/16327/ThrowPropsPlugin.min.js"></script>
<script src="https://code.jquery.com/jquery-3.4.1.min.js"></script>
<script src="https://unpkg.com/@barba/core"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.2.4/gsap.min.js"></script>
<script src="main.js"></script>

Ответы [ 2 ]

1 голос
/ 27 мая 2020

Марлен, попробуйте добавить следующий код JS в свой файл main. js внутри функции barba.init:

    views: [{
        namespace: 'home-section',
        beforeEnter({ next }) {

        // load your script
        let script = document.createElement('script');
        script.src = 'draggable.js'; // location of your draggable js file that is responsible for that image loading and dragging functionality
        next.container.appendChild(script);
        }, 
    }],
0 голосов
/ 29 мая 2020

Марлен, вам нужно поместить этот JS код ниже в отдельный файл JS и назвать его перетаскиваемым. js, например, а затем вставить путь к этому JS файлу только в script.sr c параметр, указанный в приведенном выше примере кода внутри функции barba.init.


var winWidth = window.innerWidth,
    winHeight = window.innerHeight,
    threeWinHeight = winHeight*3;

$(window).on('resize', function(){
  winHeight = window.innerHeight,
  twiceWinHeight = winHeight*2;
});


$('.shape').each(function(){
  var topPos = Math.floor(Math.random()*1300),

      //BE CAREFUL 7000px is less then total body height or  CAUSING OVERFLOW
      leftPos = Math.floor(Math.random() * winWidth);
  $(this).css('top', topPos + 'px');
  $(this).css('left', leftPos + 'px');
});

Draggable.create('.shape', {
  //type:"rotation",
  bounds: '.section-2',
  edgeResistance:0.65,
  throwProps:true,
});


var number = Math.floor((Math.random() *15) + 2);
var number2 = Math.floor((Math.random() * 0) + -15);
var number3 = Math.floor((Math.random() * 0) + 15);
var number4 = Math.floor((Math.random() * 0) + 6);
$(".shape--circle").css("transform", "rotate(" + number2 + "deg)");
$(".shape--square").css("transform", "rotate(" + number3 + "deg)");
$(".shape--circle-2").css("transform", "rotate(" + number4 + "deg)");


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