方法很多的,下面就是一種方法,時間自己定義!
創新互聯是一家集網站建設,穆棱企業網站建設,穆棱品牌網站建設,網站定制,穆棱網站建設報價,網絡營銷,網絡優化,穆棱網站推廣為一體的創新建站企業,幫助傳統企業提升企業形象加強企業競爭力。可充分滿足這一群體相比中小企業更為豐富、高端、多元的互聯網需求。同時我們時刻保持專業、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學習、思考、沉淀、凈化自己,讓我們為更多的企業打造出實用型網站。
在head/head之間加入jsscript language="javascript"
var secs = 3; //倒計時的秒數
var URL ;
function Load(url){
URL = url;
for(var i=secs;i=0;i--)
{
window.setTimeout('doUpdate(' + i + ')', (secs-i) * 1000);
}
}
function doUpdate(num)
{
document.getElementById('ShowDiv').innerHTML = '將在'+num+'秒后自動跳轉到主頁' ;
if(num == 0) { window.location = URL; }
}
/script
touchstart :手指觸摸到一個 DOM 元素時觸發。
touchend :手指從一個 DOM 元素上移開時觸發。
touchmove :手指在一個 DOM 元素上滑動時觸發。
思路是,在觸發 touchstart 時設置一個定時器 setInterval(longPress(),500) ,指定時間后執行長按的操作(如500ms),在執行完長按的操作和觸發 touchend 之后清除定時器。
這樣一來,如果沒有超過500ms,手指離開屏幕,觸發 touchend ,則 longPress 不會執行。如果時間時間超過500ms,則 longPress 執行一次。
代碼寫的太爛。。。。
一些問題點:
1、 flag 請用 var 聲明(否則會變成全局變量,污染別的代碼)
2、 flag 設置的位置有問題
3、 flag 的使用邏輯有問題
下面是完整代碼(注意看用 /** */ 注釋的地方):
function?MyTank(x,y,direct){
this.x=x;//坦克的橫坐標
this.y=y;//坦克的縱坐標
this.direct=direct;//方向
this.speed=1;//速度
var?flag=false;?/**?記得用?var?*/
mytank.style.left=this.x+"px";
mytank.style.top=this.y+"px";
//移動方向
function?directF(val,that){
switch(val){
case?3:
that.x=that.x-5;
mytank.style.left=that.x+"px";
/**?flag=true;?這句不要放在這里?*/
break;
}
}
//初始化
this.move=function(event){
that=this;
if?(flag?==?event.keyCode)?return?false;?/**?如果已經沿目標方向運行,則不用處理?*/
if?(flag)?{
window.clearInterval(value);
flag=false;
}
switch(event.keyCode){
case?65:
//a表示左
//this.x-=this.speed;
this.direct=3;
mytank.style.backgroundPositionY="80px";
flag?=?event.keyCode;?/**?設置?flag?*/
value=window.setInterval(function(){
directF.call(this,3,that);
},100);
break;
}
}
}
var?hero=new?MyTank(200,300,0);
可以在長按2s后進行設置的同時,獲取此時的時間startTime=getDate(),然后設置一個flag=true表示。
然后再那個固定的定時器中檢查到flag的值為true時,再getDate,和startTime做比較,如果在10s內就可以做相應的處理。
具體實現方法如下:
1、打開任意頁面
2、粘貼如下代碼:
script type="text/javascript"?
thisURL = document.URL;
strwrite = "img src='【此處省略,請見圖片截圖】/chart?cht=qrchs=150x150choe=UTF-8chld=L|4chl=" + thisURL + "' width='150' height='150' alt='La_Clover提示您:用手機掃一掃二維碼,輕松分享' /";
document.write( strwrite );
/script
3、保存代碼
4、默認尺寸是150的,可以自行修改。
5、上傳到空間即可查看到效果
最近在做一個移動端的項目,其中有一個收藏列表,其中包含幾個事件。
1.點擊跳轉詳情頁。
2.長按顯示遮罩層和刪除按鈕
3.點擊刪除按鈕,刪除此項。
下面會詳細介紹我處理此問題時所出現的問題,及處理方法(本文基于jQuery)
首先我對列表添加了長按事件,添加完之后,發現我的長按事件已經可以成功執行了。但是卻出現了新的問題:
這個問題好處理,只需添加一個變量,來判斷是否為長按事件
這樣上面的問題就完美解決了。
接下來就是給遮罩層上的刪除按鈕添加事件
但是在這里就發現了新的問題
所以就需要一個新的事件來覆蓋原本的事件
然后,整個點擊跳轉,長按顯示刪除,刪除事件,就已經完美解決了。
但是,在移動端查看的時候就會發現正常的滾動事件被preventDefault屏蔽了。
此處有兩種解決方式:
1.刪除 e.preventDefault();
刪除preventDefault有可能會出現其它情況,不過我暫時沒發現如果出現其它情況,可使用下面的方法
刪除的點擊事件也是如此
By : Yimi-shan
本文標題:javascript長按,js 長按
當前路徑:http://vcdvsql.cn/article20/dsdgoco.html
成都網站建設公司_創新互聯,為您提供電子商務、網站制作、全網營銷推廣、網站收錄、網站內鏈、網站建設
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯