2015-05-21 4 views
3

Я создал игру, в которой пользователи выбирают 4 изображения из 4 отдельных слайд-шоу, чтобы создать составное изображение, которое затем я хочу, чтобы иметь возможность экспортировать в функцию «галерея» на моем сайт. Я пытаюсь использовать html2canvas, но я сталкиваюсь с некоторыми проблемамиhtml2canvas not rendering image

это мой JQuery:

var shotit = function() { 
$('.bodyWrap').html2canvas({ 
onrendered : function(canvas) { 
var img = canvas.toDataURL(); 
    $('<img>',{src:img}).appendTo($('body')); 
     } 
    }); } 

обертывание является очень длинный HTML элемент с большим количеством дочерних элементов в ней, но она в основном идет как это

<div class="bodyWrap"> 

     <div class="header"> 
      <h1>TITLE</h1> 
     </div> 

      <div class="slideshowWrapper"> 
       <div class="slideshow"> 
        <div class="slideshowWrapper"> 
       <div class="slideshow"> 
        <div class="slide"> 
         <img class="img2" src="https://i.imgur.com/mnJDmlS.jpg" alt="head1"> 
<div class="emailButton"> 
<a class="emailLink" href="mailto:[email protected]?Subject=Let's mail"target="_blank"><br>Name of Artist</a> 
</div> 
        </div> 
        <div class="slide"> 
         <img https://picture.jpg> 
        </div> 
         <div class="prevControl"></div> 
         <div class="nextControl"></div> 
       <div class="slideshow"> 
        <div class="slide"> 
         <img https://picture.jpg> 
        </div> 
        <div class="slide"> 
         <img https://picture.jpg> 
        </div> 
         <div class="prevControl"></div> 
         <div class="nextControl"></div> 
       <div class="slideshow"> 
        <div class="slide"> 
         <img https://picture.jpg> 
        </div> 
        <div class="slide"> 
         <img https://picture.jpg> 
        </div> 
         <div class="prevControl"></div> 
         <div class="nextControl"></div> 
       <div class="slideshow"> 
        <div class="slide"> 
         <img https://picture.jpg> 
        </div> 
        <div class="slide"> 
         <img https://picture.jpg> 
        </div> 
         <div class="prevControl"></div> 
         <div class="nextControl"></div> 
        </div> 
       </div> 
      </div> 
</div> 

изображения размещены на внешнем imgur а не на моем сайте.

, а затем кнопку, которая выглядит следующим образом (для приема ПОС)

<a href="#" onClick="shotit()">take picture</a> 

жаль то будет, вероятно, немного больше кода, но я просто не знаю, где эта проблема стоит !!

в любом случае, любая помощь или указатели с благодарностью получили! спасибо

+0

см это [ссылка] (http://html2canvas.hertzen.com/examples.html) – Rayon

ответ

1

Попробуйте это:

<div class="bodyWrap"> 
    <div class="header"> 
    <h1>TITLE</h1> 
    </div> 
    <div class="slideshowWrapper"> 
    <div class="slideshow"> 
     <div class="slide"> 
     <img src="https://picture.jpg"> 
     </div> 
     <div class="slide"> 
     <img src="https://picture.jpg"> 
     </div> 
     <div class="prevControl"></div> 
     <div class="nextControl"></div> 
     <div class="slideshow"> 
     <div class="slide"> 
      <img src="https://picture.jpg"> 
     </div> 
     <div class="slide"> 
      <img src="https://picture.jpg"> 
     </div> 
     <div class="prevControl"></div> 
     <div class="nextControl"></div> 
     <div class="slideshow"> 
      <div class="slide"> 
      <img src="https://picture.jpg"> 
      </div> 
      <div class="slide"> 
      <img src="https://picture.jpg"> 
      </div> 
      <div class="prevControl"></div> 
      <div class="nextControl"></div> 
      <div class="slideshow"> 
      <div class="slide"> 
       <img src="https://picture.jpg"> 
      </div> 
      <div class="slide"> 
       <img src="https://picture.jpg"> 
      </div> 
      <div class="prevControl"></div> 
      <div class="nextControl"></div> 
      </div> 
     </div> 
     </div> 
    </div> 
    <a href="#" onClick="shotit(event)">take picture</a> 
    <script src="jquery-2.1.1.min.js"></script> 
    <script src="html2canvas.js"></script> 
    <script> 
     var shotit = function(e) 
     { 
     e.preventDefault(); 
     html2canvas($('.bodyWrap'), { 
      onrendered: function(canvas) 
      { 
      document.body.appendChild(canvas); 
      }, 
      logging:true 
     }); 
     }; 
    </script> 
+0

эй! ах, спасибо, это почти все, но не включая элементы .slideshow или .slide ... любые идеи, почему? мне нужно добавить их в jquery? – Phoebe19

+0

также я забыл упомянуть, что слайд-шоу использует jquery для работы, является ли это его результатом? (Жаль, что я не знаю, как сделать код здесь) $ (документ) .ready (функция() { $() цикл ({ \t тайм-аут 'слайд-шоу'.:. 0, \t слайды: «> DIV. слайд», \t скорость: 500, \t FX: "scrollHorz" \t}); \t $ ('. nextControl ') на (' нажмите', функция (е) { \t $ (это). ближайший ('. slideshow'). цикл ('next'); \t}) \t $ ('. prevControl'). on ('click', functi on (e) { \t $ (это) .closest ('. slideshow'). cycle ('prev'); \t}); \t $ ('. AboutToggle'). On ('click', function (e) { $ (". Sidebarright"). ToggleClass ("sidebarrightactive"); }); }); – Phoebe19

+0

Pls помещает относительный путь в теги img ... Это будет делать ... Просьба принять ответ, если он выполнил ваш запрос ... – Rayon