link: function($scope, element, attrs) { var hm = new Hammer(element[0]); hm.on('tap', function(ev) { ev.srcEvent.stopPropagation(); ev.cancelBubble = true; }) }
onShow: function () { App.hideLoading() self.setHeader() self.$el.html(test_pie); // self.showPie(); // self.showAddress(); var hit = document.querySelector("#tradeAmount"); var mc = new hammer(hit); var cycle=window.document.getElementById("cycle") mc.get('pinch').set({ enable: true }); // var debug = document.querySelector("#debug"); mc.on("hammer.input", function(ev) { // console.log([ev.srcEvent.type, ev.pointers.length, ev.isFinal, ev.deltaX, ev.deltaY].join("<br>")) if(ev.deltaX!=0){ // var deg=cycle.style.webkitTransform; // deg=deg.substring(7,deg.length-4) // console.log(cycle.style.webkitTransform+" "+deg) // var mathDeg=parseInt(deg) // cycle.style.transition="-webkit-transform 1500ms ease-out"; // cycle.style.webkitTransform="rotate(" + (mathDeg+parseInt(500)) + "deg)"; } self.cycleTime(ev.deltaX) if(ev.srcEvent.type=="touchend"){ turnNum=0 } }); return },
componentDidMount() { window.addEventListener('DOMMouseScroll', this.handleWheel); window.addEventListener('mousewheel', this.handleWheel); window.addEventListener('keydown', this.handleKeydown); const hammer = new Hammer(document); hammer.get('swipe').set({ direction: Hammer.DIRECTION_VERTICAL }); hammer.on('swipe', this.handleSwipe); }
exports.init = function(){ var $carousel, hammertime; if ($('#showcase-carousel').length){ $carousel = $('#showcase-carousel').carousel(opts.carousel); $carousel.carousel('pause'); hammertime = new Hammer($carousel.get(0), opts.hammer); hammertime.on('swipeleft', function(){ log.info('handled swipeleft'); $carousel.carousel('next'); }); hammertime.on('swiperight', function(){ log.info('handled swiperight'); $carousel.carousel('prev'); }); video.init(); } log.info('carousel.js initialized'); };
return function($scope, element, attrs, ctrl) { var hm = new Hammer(element[0]); hm.on('tap', function() { $scope.$apply(attrs.tap); if (element.attr('href') && element.attr('href') != 'javascript:;') { location.href = attrs.href; } }) }
link: function($scope, element, attrs) { var hm = new Hammer(element[0]); hm.on('tap', function() { if (history.length > 1) { history.back(); } else { $state.go(attrs.backPage, $stateParams); } }); }
function addListeners (self) { self.holder.addEventListener('touchstart', createTouchListener('onTouchStart', self), false); self.holder.addEventListener('touchmove', createTouchListener('onTouchMove', self), false); self.holder.addEventListener('touchend', createTouchListener('onTouchEnd', self), false); self.holder.addEventListener('mousemove', function (evt) { var x = evt.offsetX + 0.5; var y = evt.offsetY + 0.5; var pts = [new Point(x, y)]; dispatchInteractEvent(self, 'onMove', [pts, evt]); }, false); window.addEventListener('resize', function (evt) { dispatchInteractEvent(self, 'onResize', [evt]); }, false); var hammertime = new Hammer(self.holder); hammertime.on('tap', function (evt) { dispatchInteractEvent(self, 'onTap'); }); }
link: function($scope, element, attrs, formCtrl) { var hm = new Hammer(element[0]); hm.on('tap', function() { var isApply = false; $scope.isDisabled = false; var name = attrs.doValidate; if (name && formCtrl[name]) { if (formCtrl[name].$invalid) { isApply = true; formCtrl[name].$pristine = false; element.attr('is-disabled', 'true'); } else { element.attr('is-disabled', 'false'); } } if (isApply) { $scope.$apply(); return false; } }) }
link: function($scope, element, attrs, formControl) { var text = element.html(); var timer = cache.get('timer'); if (timer !== num) { fn(); } var hm = new Hammer(element[0]); function fn() { element.html(timer + '秒'); var clock = setInterval(function() { timer--; if (timer < 0) { timer = num; cache.set('timer', timer); element.html(text); clearInterval(clock); clock = null; return; } element.html(timer + '秒'); cache.set('timer', timer); }, 1000) } hm.on('tap', function() { if (timer !== num) return; var name = attrs.doValidate; if (name && formControl[name]) { if (!formControl[name].$invalid) { $scope.$apply(attrs.checkVerifyCode); fn(); } } else { $scope.$apply(attrs.checkVerifyCode); fn(); } }) }
initPages: function () { // 解决微信老版本浏览器不支持zepto swipeUp事件的问题 document.addEventListener('touchmove', function (event) { event.preventDefault(); }, false); var self = this; var $window = $(window); var windowHeight = $window.height(); var windowWidth = $window.width(); var $nyx = $(".nyx-wrapper"); $nyx.height(windowHeight); var eNyx = document.querySelector('.nyx-wrapper'); var hNyx = new Hammer(eNyx); hNyx.on("panup", function () { self.nextPage(); }).on("pandown", function () { self.prevPage(); }); var pages = this.config.pages; this.$pages = $(".nyx-page").each(function (index) { var $page = $(this); if (self.currentPage != index) { $page.hide(); } $page.addClass("nyx-animated-page"); self.widgets[index] = $page.children(".animated"); var page = pages[index]; if (page.type === "welcome") { self.hasWelcomePage = true; self.startPage = 1; } var widgets = page.widgets; for (var widget, i = 0; widget = widgets[i]; i++) { if (widget.linkTo) { (function (link) { $("#" + widget.id).click(function () { window.open(link); }); })(widget.linkTo); } if (widget.moveTo) { (function (id) { $("#" + widget.id).click(function () { console.log("234324"); self.moveTo($("#" + id).index()); }); })(widget.moveTo); } if (widget.type === "slideShow") { new SlideShow("#" + widget.id, widget); } else if (widget.type === "scrawl") { widget.width = windowWidth; widget.height = windowHeight; var scrawl = new Scrawl("#" + widget.id, widget); // 这部分代码写的有点恶心,主要是这个组件的有这么个特殊性,后面想想有什么办法解决。 if (page.type === "welcome") { self.loadedPromise = self.loadedPromise.then(function () { return new $.Deferred(function (deferred) { scrawl.onOver(function () { deferred.resolve(); }); }); }) } else { scrawl.onOver(function () { self.nextPage(); }) } } } }); },
function(uitouch, dict, frame, options, book, stuff, sound, sharedf, sharedc, require, advanced, fontwork){ var ws = null; var dreq = null; var timer = null; var sxG = 0; var syG = 0; var reb = /k\>/g; var retr = /\<\/?tr\>/g; var ren = /[\f\n\r\v]{3}/g; var moveflag = 0; var dtext = null; var txarea = document.getElementById('txtarea'); var mtext = document.getElementById('maintext'); var mtextfrm = document.getElementById('mainframe'); var fl_text = document.getElementById('fl_text'); var ta_rectObject = txarea.getBoundingClientRect(); var hammer = require('hammer'); console.log(hammer); var style = mtextfrm.ownerDocument.createElement('style'); document.getElementsByTagName('head')[0].appendChild(style); var sndcnt = document.getElementById('sndcnt'); var sndbt = document.getElementById('sndbt'); var nosnd = document.getElementById('nosnd'); var pts = document.getElementById("pts"); var pop = document.getElementById("pop"); var helper = document.getElementById("helper"); var percentage = document.getElementById("percentage"); var popups = Array.prototype.slice.call(document.querySelectorAll(".muchopts")); function set_sizes(){ frame.set_sizes(); txarea.style.height = window.innerHeight+"px"; txarea.style.width = window.innerWidth+"px"; helper.style.height = window.innerHeight+"px"; helper.style.width = window.innerWidth+"px"; pop.style.width = '100%';//window.innerWidth+"px"; pop.style.height = 'auto'; //pop.style.minWidth = '100%';//window.innerWidth+"px"; pts.style.width = '100%';//window.innerWidth-4+"px"; pts.style.minWidth = '100%';//window.innerWidth-4+"px"; fl_text.style.width = "auto"; mtext.style.top = "0px"; txarea.style.backgroundSize = '100%'; } window.onresize = function(){ set_sizes(); fill_page([], options.getpercent(), true); }; set_sizes(); var drvhds = parseInt(Math.min(Math.floor(window.innerHeight), Math.floor(window.innerWidth))/3); var distance = 32; function eventifymtext(ifrm){ if(ifrm){ ifrm.addEventListener("select", function(e){uitouch.handleSelect(e);}, false); ifrm.addEventListener("keydown", function(e){uitouch.handleKey(e);}, false); var frm = ifrm; } else { var frm = txarea; } var element = new hammer.Manager(frm, { recognizers: [ [hammer.Tap], [hammer.Press, { time: 300, threshold: 3 }], [hammer.Swipe, { direction: hammer.DIRECTION_ALL, threshold: distance } ], [hammer.Pan, { direction: hammer.DIRECTION_ALL, threshold: distance } ] ]}); element.add( new hammer.Tap({ event: 'doubletap', taps: 2 }) ); element.add( new hammer.Pinch({ direction: hammer.DIRECTION_ALL }) ); element.add( new hammer.Swipe({ direction: hammer.DIRECTION_ALL, threshold: distance } ) ); element.add( new hammer.Pan({ direction: hammer.DIRECTION_AL, threshold: distance }) ); element.on("doubletap doubleclick", function(evt){ options.set_opt('scale', 1.0); uitouch.init_scale(1.0); }); element.on("panleft swipeleft", function(evt){if(evt.distance>=distance){element.stop(); uitouch.liftcol(mtext, -1); pop.style.display='none';}}); element.on("panright swiperight", function(evt){if(evt.distance>=distance){element.stop(); uitouch.liftcol(mtext, 1); pop.style.display='none';}}); element.on("panup swipeup", function(evt){ if(evt.distance>=distance){ options.display('hide'); pop.style.display='none'; element.stop(); popups.map(function(el){el.style.display="none";}); }}); element.on("pandown swipedown", function(evt){if(evt.distance>=distance){ element.stop(); options.display('show'); pop.style.display='none';}}); element.on("pinchstart", function(evt){ var uisc = uitouch.doscale(1.0, false); percentage.textContent = Math.round(uisc*100)+"%"; percentage.style.display='block';}); element.on("pinchend", function(evt){ var uisc = uitouch.doscale(Math.sqrt(evt.scale), true); percentage.style.display='none'; //percentage.textContent = Math.round(uisc*100)+"%"; //window.setTimeout(function(){percentage.style.display='none';}, 512); }); element.on("pinchin pinchout", function(evt){ //hmctxarea.stop(); var uisc = uitouch.doscale(Math.sqrt(evt.scale), false); if(!evt.isFinal) percentage.textContent = Math.round(uisc*100)+"%"; }); function taptap(evt){ uitouch.handleClick(evt); popups.map(function(el){el.style.display="none";}); } function onOnLine(){ element.on("tap click press", taptap); } function onOffLine(){ element.off("tap click press", taptap); } if(window.navigator.onLine){ onOnLine(); } document.addEventListener("online", onOnLine, false); document.addEventListener("offline", onOffLine, false); } mtextfrm.contentWindow.document.body.innerHTML = stuff.empty; eventifymtext(mtextfrm.contentWindow.document.body.parentNode); var hammerpop = new hammer.Manager(pop, { recognizers: [ // RecognizerClass, [options], [recognizeWith, ...], [requireFailure, ...] [hammer.Pan, { direction: hammer.DIRECTION_ALL, threshold: distance } ], [hammer.Tap] ]}); var hammermtext = new hammer.Manager(mtext, { recognizers: [ [hammer.Tap], [hammer.Press, { time: 300, threshold: 3 }] ]}); var hmcfltext = new hammer.Manager(fl_text, { recognizers: [ [hammer.Swipe, { direction: hammer.DIRECTION_ALL, threshold: distance } ], [hammer.Pan, { direction: hammer.DIRECTION_ALL, threshold: distance } ] ]}); hmcfltext.add( new hammer.Swipe({ direction: hammer.DIRECTION_ALL, threshold: distance }) ); hmcfltext.add( new hammer.Pan({ direction: hammer.DIRECTION_ALL, threshold: distance }) ); hmcfltext.on("panleft swipeleft", function(evt){if(evt.distance>=64){hmcfltext.stop(); uitouch.liftcol(mtext, -1); pop.style.display='none';}}); hmcfltext.on("panright swiperight", function(evt){if(evt.distance>=64){hmcfltext.stop(); uitouch.liftcol(mtext, 1); pop.style.display='none';}}); hmcfltext.on("panup swipeup", function(evt){ if(evt.distance>=distance){ hmcfltext.stop(); options.display('hide'); pop.style.display='none'; popups.map(function(el){el.style.display="none";}); }}); hmcfltext.on("pandown swipedown", function(evt){if(evt.distance>=distance){hmcfltext.stop(); options.display('show'); pop.style.display='none';}}); hammerpop.add( new hammer.Pan({ direction: hammer.DIRECTION_ALL, threshold: distance }) ); hammerpop.on("panleft", function(evt){if(evt.distance>=64){hammerpop.stop(); uitouch.liftcol(pts,-1);}}); hammerpop.on("panright", function(evt){if(evt.distance>=64){hammerpop.stop(); uitouch.liftcol(pts, 1);}}); hammerpop.on("panup pandown", function(evt){uitouch.dragpop(evt.center.y);}); var hammerhelper = new hammer(helper); hammerhelper.on("click tap pinchin pinchout panleft panright panup pandown", function(evt){ helper.style.display="none"; }); /*if(window.navigator.onLine){ hammermtext.on("click tap press", function(e){ popups.map(function(el){el.style.display="none";}); uitouch.handleClick(e); }); }*/ window.addEventListener("keydown", function(e){uitouch.handleKey(e);}, false); window.addEventListener("pinch", function(e){console.log("Pinch supported");}, false); //window.addEventListener("", function(e){uitouch.handlegest(e);}, false); var opt_bl = document.getElementById("options_block"); try { window.addEventListener("beforeunload", function(){ console.log("saving.."); options.savepp();});} catch (e) { chrome.app.window.current().onClosed.addListener(function(){console.log("saving.."); options.savepp();});} sharedc.register('uitouch', 'got_selection', function (texts) { thumb_block(uitouch.max_Y(), texts, 'block'); }); sharedc.register('uitouch', 'next_chapter', function (i) { var diff = parseInt(i); //mtext.innerHTML='wait..'; options.display("show"); //book.foliant().next_page(diff); var sel = document.getElementById("tocselect"); var _nidx = sel.selectedIndex + i; var nidx = _nidx >= sel.options.length ? 0 : _nidx < 0 ? sel.options.length-1 : _nidx; //sel.options[nidx].selected = true; sel.selectedIndex = nidx; try { var evt = new Event('change');} catch (e) { var evt = document.createEvent('Event'); evt.initEvent('change', true, true); } if(diff<0) evt.percent = 'end'; else evt.percent = 0; sel.dispatchEvent(evt); options.display("hide"); }); sharedc.register('dict', 'got_def', function (txt, word, els) { if(txt.length>1) fill_thumb(txt, word, els); else fill_thumb("Something went wrong. Please check your options."); }); sharedc.register('uitouch', 'fix_toc', correctTocByAnchor); sharedc.register('bookng', 'got_toc', function(){console.log("Got toc"); fill_toc(book.get_page(-1)); uitouch.init_scale();}); sharedc.register('book', 'got_book', function(){console.log("Got book"); uitouch.init_scale();}); sharedc.register('options', 'got_file', function(){ options.remove_old(); options.display("hide"); book.init(options.bookfile()); book.load(); }); sharedc.register('bookng', 'got_fstfile', function(data, prc){ if(data){ if(prc) { var percent = prc; } else { var percent = options.getpercent(); } var sel = document.getElementById("tocselect"); var newsel = book.foliant().option(sel.selectedIndex); fill_page(data, percent, false); if(sel.options[newsel]) { sel.disabled = true; sel.options[newsel].selected = true; sel.disabled = false; } options.display("hide"); } }); sharedc.register('options', 'got_pp', function () { var i = options.getpage(); var prc = options.getpercent(); book.foliant().get_fromopt(i, prc); }); sharedc.register('options', 'ch_range', function (value) { fill_page([0,0], value, false); }); function fill_toc(html){ var opts = document.getElementById("options_block"); var toc = document.getElementById("toc"); var dtoc = toc.parentNode; dtoc.removeChild(toc) var ntoc = document.createElement("div"); ntoc.id = "toc"; ntoc.appendChild(html); dtoc.appendChild(ntoc); var sel = document.getElementById("tocselect"); sel.addEventListener("change", function (event){ if(event.target.disabled === true) { event.target.disabled = false; } else { mtext.style.top="0px"; options.setpercent(0); book.foliant().get_fromopt(event.target.selectedIndex, event.percent); } }); options.getpp(); } function fill_page(data, percent, nosave){ if(percent<0) percent=0; if(data[0]){ mtextfrm.contentWindow.document.body.innerHTML = ""; //mtextfrm.contentDocument.open(); //mtextfrm.contentDocument.close(); var fragment = mtextfrm.contentDocument .createRange() .createContextualFragment(data[0]); console.log("fragment is "+fragment.querySelector('head')); mtextfrm.contentWindow .document .body .appendChild(fragment); sharedf.move_tags(mtextfrm.contentDocument.getElementsByTagName("body")[0], ['style'], mtextfrm.contentDocument.getElementsByTagName("head")[0]); frame.set_fontcolor(); frame.set_sizes(); frame.set_fontsize(); frame.set_text_align('justify'); } var cheight = parseInt(stuff.getStyle(mtextfrm.contentWindow.document.body.parentNode, 'height')); cheight = Math.max(cheight, window.innerHeight); mtextfrm.style.width = window.innerWidth+'px'; mtextfrm.style.height = cheight+'px'; mtext.style.height = cheight+'px'; mtextfrm.style.display = 'block'; var fs = parseInt(stuff.getStyle(mtext, 'font-size')); if(!nosave) options.setpage(book.foliant().currentpage()); if(data[1] && !percent) percent = frame.prc_from_anchor(data[1], percent); else if(percent==='end') percent = 100.0*parseFloat(cheight-window.innerHeight/2)/cheight; mtext.style.top = parseInt(-percent*parseFloat(cheight)/100.0)+"px"; if(!nosave){ options.setpercent(percent); console.log("saving.."); options.savepp(); } if(!data[1]) correctTocByAnchor(); return mtext; } function correctTocByAnchor(){ var sel = document.getElementById("tocselect"); if(!sel) return; var opts = sel.options; var currurl = opts[sel.selectedIndex].getAttribute('url').split("#")[0]; for(var i=1; i<opts.length; i+=1){ var opt = opts[i]; if(opt.getAttribute('url').split("#")[0] === currurl){ var anchor = opt.getAttribute('url').split("#")[1]; if(!anchor) continue; var ancel = mtextfrm.contentDocument .getElementById(anchor); if(parseInt(stuff.getStyle(ancel, 'top')) - window.innerHeight + parseInt(mtext.style.top) > 0){ sel.disabled = true; opts[i-1].selected = true; sel.disabled = false; options.display("hide"); return; } } } } function fill_thumb(text, word, els){ var el = document.getElementById('pop'); if(text.length > 1){ var cl = document.getElementById('pts'); var cf = 0.1; var width = parseInt(el.style.width, 10); dtext = text.replace(reb, "strong>").replace(retr, "/").replace(ren, "<br>").replace(/220[\s\S.]+?\s\d\d\d\s/, '');//.replace(/<.*>\n/, ''); cl.innerHTML = dtext; sndbt.appendChild(sndcnt); cl.appendChild(sndbt); cl.appendChild(nosnd); //el.style.display = 'block'; if(els && els.length){ for(var i = 0; i<els.length; i++){ cl.appendChild(document.createElement("br")); cl.appendChild(els[i]); } } sndbt.style.display = 'block'; uitouch.dragpop(-1); sndbt.style.display = 'none'; sound.get_sound(word, dict.lang()); } else {el.style.display = 'none';} } function thumb_block(mY, texts, disp) { var el = document.getElementById('pop'); var cl = document.getElementById('pts'); cl.innerHTML = "Sending request.."; var pos = ''; if(el){ if(disp!='none'){ var config = options.config(); var ptop = window.innerHeight; el.style.display = disp; if(mY < ptop/2) pos = 'bot'; else pos = 'top'; cl.style.top = "0px"; if(pos=='top'){el.style.top = "0px"; el.style.bottom = 'auto'} if(pos=='bot'){el.style.bottom = "0px"; el.style.top = 'auto'} el.style.height = 'auto'; dict.get_def(texts); //el.style.width = Math.floor(window.innerWidth*0.99)+'px'; } else {el.style.display = 'none';} } } });
link: function($scope, element, attrs) { isGoPage = true; var isWatch = false; var hm = new Hammer(element[0]); hm.on('tap', function() { var isChecked = $parser(attrs.verifyCodeState)($scope); if (isChecked) { $state.go(attrs.targetPage, $parser(attrs.stateParams)($scope)); } else { $scope.$apply(attrs.testCode); if (isWatch) return; isWatch = true; var watch = $scope.$watch(attrs.verifyCodeState, function(val) { if (val && isGoPage) { watch(); isGoPage = false; $state.go(attrs.targetPage, $parser(attrs.stateParams)($scope)); } }) } return false; }) }