Mam małą przeglądarkę "pdf", którą można wykorzystać na iPadzie. Ponieważ okazało się, że renderowanie PDF w HTML jest boleśnie powolne, próbowałem przejść z rozwiązaniem PNG. Ponieważ jest to aplikacja internetowa i wszystko jest w pikselach, zoom jest wyłączony.Młotek do fałszywego zoomu nie działa
Mój pomysł polegał na stworzeniu pewnego rodzaju "okna", które w rzeczywistości jest elementem div, który otacza obraz, bez względu na to, jak duży jest. Jak na razie dobrze.
Postanowiłem jednak wypróbować Hammera, aby naśladować szczyptę pinchinów i wydarzyło się coś dziwnego. Kiedy szczypiesz lub wychodzisz, strona zdaje się trzęsać, a potem nie jesteś w stanie zrobić nic innego ... Jednak jeśli dodasz alert do programu obsługi zdarzeń (tak, alert), działa on zgodnie z oczekiwaniami.
Jest to kod:
(function($){
var pdfViewer = {
pdf: {},
currentPage : 1,
currentZoom : 200,
defaultZoom : 200,
intervalZoom : 30,
el : {
pdfWindow : $('.pdf-window'),
image : $('.pdf-window').find('img')
},
init : function(){
this.bindEvents();
},
bindEvents : function(){
var self = this;
this.el.pdfWindow.hammer().on('pinchin',function(e){
self.currentZoom = self.currentZoom - self.intervalZoom;
self.updateZoom.apply(self);
});
this.el.pdfWindow.hammer().on('pinchout',function(e){
self.currentZoom = self.currentZoom + self.intervalZoom;
self.updateZoom.apply(self);
});
},
updateZoom : function(){
this.el.image.attr('width',this.currentZoom + '%');
}
};
pdfViewer.init();
})(jQuery);
I to jest czysty demo. Powinieneś spróbować na urządzeniu z iOS ... Jakieś pomysły na to, co może być nie tak?
Bug demo: http://jsbin.com/ivixov/1/quiet
Gdzie jesteś umieszczając alarm? Wygląda na to, że możesz mieć problem z dwoma kodami próbującymi robić sprzeczne rzeczy w tym samym czasie, a alert jest obecnie środkiem, dzięki któremu temu zapobiegasz. – pandavenger
@pandavenger Umieszczę alert wewnątrz procedur obsługi zdarzeń. Nie ma sensu, a kod jest naprawdę prosty, jak widać. –
Powiedz, czy dodanie któregokolwiek z tych wydarzeń pomoże. Może być konieczne uniknięcie zachowań domyślnych na iPadzie, takich jak samo powiększanie. https://github.com/EightMedia/hammer.js/wiki/Event-delegation-and-how-to-stopPropagation---preventDefaults – pandavenger