PDFTron Webviewer - перетаскивание миниатюр

в PDFTron Viewer 2.2.2 мы добавили перетаскивание миниатюр для перемещения страниц.

Но в 3.0.1 и 3.1.0 это невозможно. Вы блокируете события перетаскивания? (затронуты все браузеры)

вот код в нашем config.js

$uidisplay = $("#ui-display");
      $uidisplay.on("dragstart", function(event) {
   try{
      if($.type(event.originalEvent.dataTransfer)!="undefined"){
         event.originalEvent.dataTransfer.setData("text","");
         event.originalEvent.dataTransfer.setDragImage(dragImg, 10, 10);
      }
   }
   catch (e) {
      e.message;
   }
   $dragCanvas = _createCanvas();
   $thumbnailsPane.scroll(_paneOnScroll);
   $(".ui-state-selected",$thumbnailsPane).css({"opacity" : "0.4"});
});
      $uidisplay.on("dragover", function(event) {
   var $context = event.target==$thumbnailsPane.get(0) ? $(event.target) : $(event.target).parents("#thumbnailView");
   var changeClass = false;
   if($context.length){
      changeClass = _setOnDragSelector(event.originalEvent ? event.originalEvent : event);
      if(event.target==$thumbnailsPane.get(0)){
         changeClass  = false;
         _scrollViewPane(event);
      }
   }
   if(!changeClass){
      $(".ui-state-drag-enter-left",$thumbnailsPane).removeClass("ui-state-drag-enter-left");
      $(".ui-state-drag-enter-right",$thumbnailsPane).removeClass("ui-state-drag-enter-right");
   }
   if((ondragCount++)%10==0){
      //console.log("ondragCount");
      $dragCanvas.css({'top' : (event.originalEvent.clientY + 10) + "px", 'left' : (event.originalEvent.clientX + 10) + "px"});
   }
});
      $uidisplay.on("dragend", function(event) {
   //console.log("dragend : " + $(event.target).prop("tagName"));
   onScrollCount = 0;
   ondragCount = 0;
   $dragCanvas.remove();
   $dragCanvas = null;
   var $target = $(".ui-state-drag-enter-left,.ui-state-drag-enter-right");
   if($target.length && $target.hasClass("thumbContainer") && Number($thumbnailsPane.attr("drag-enter-id"))>=0){
      _movePages();
   }else{
      _endOnDragSelector();
   }
});

person user9127257    schedule 21.12.2017    source источник


Ответы (1)


Похоже, это происходит из-за кода, который был добавлен в WebViewer, чтобы предотвратить перемещение страницы при использовании средства просмотра на рабочем столе с сенсорным экраном.

Один из способов обойти это поведение — переключиться на инструмент «Панорамирование» при наведении указателя мыши на миниатюры и переключиться обратно при возвращении к документу. Это работает, потому что инструмент Pan не имеет такого же кода предотвращения событий. Вот код, который вы можете добавить в свой файл конфигурации:

$(document).on('documentLoaded', function() {
  var oldToolMode;

  $('#thumbnailView').on('mouseenter', function() {
    oldToolMode = readerControl.getToolMode();
    readerControl.setToolMode('Pan');
  });

  $('#thumbnailView').on('mouseleave', function() {
    readerControl.setToolMode(oldToolMode);
  });
});
person mparizeau    schedule 02.01.2018