最近做了一個圖片閱后即焚的網頁在移動端瀏覽,過程是按住屏幕並移動時,圖片會慢慢展示,松開手時圖片立即粉碎消失。
但是長按圖片時會觸發瀏覽器自帶的長按事件,從網上搜索得知有以下兩種方法:
1.添加事件 ontouchstart = "return false;"
2.css統一加上 -webkit-user-select:none; -webkit-touch-callout:none;
但是上述方法對頁面的其他需求有影響,最終我采用的方法是,寫一個空的透明的DIV置於頁面最上層遮住所有元素,這樣就可以避免系統的長按事件,在需要屏蔽長按事件時,隱藏DIV即可,DIV樣式:{position:fixed;width:100%;height:100%;z-index:99;background:rgba(255,255,255,0);overflow:hidden;top:0px;left:0px;}
PS:過程中還遇到一下小問題就是,在需要長按二維碼識別的頁面,已經移除了當前頁面的遮罩DIV,但是長按還是沒反應。
二維碼開始樣式是:{width:46%;position:fixed;left:27%;top:40%;}
后來發現必須給二維碼加上層高 z-index:100;大於遮罩DIV的層高。