<div class="wrapper">
<img src="/images/download/logo.png" class="logo">
<img src="/images/download/appstore.png" class="appstore">
<img src="/images/download/android.png" class="android">
</div>
$('.appstore').on("tap",function(){
window.location.;
})
$('.android').on("tap",function(){
window.location.;
})
微信瀏覽器里面打開頁(yè)面 點(diǎn)擊.appstore 與.android 的時(shí)候有時(shí)會(huì)放大這兩個(gè)圖片 然后才跳轉(zhuǎn)鏈接
我希望不要放大圖片 這要如何解決
這兩周安卓端的微信瀏覽器內(nèi)核的bug(特性),表現(xiàn)為 點(diǎn)擊 圖片時(shí) 圖片會(huì)全屏放大,正常情況下,應(yīng)該要調(diào)用微信提供的jsSDK才會(huì)有這效果
阻止圖片的點(diǎn)擊事件的默認(rèn)行為,是的,在目前安卓微信里,點(diǎn)擊圖片會(huì)全屏放大已經(jīng)變成了它的默認(rèn)行為
我們可以寫一個(gè)事件代理來(lái)阻止:
$(document).on('click', 'img', e => {
e.preventDefault();
})
算是個(gè)坑。
---------------------------以下5月2日更新------------------------------------------
上述的解決方案有一個(gè)坑:
<a >
<img src="xxxx.png">
</a>
當(dāng)圖片被a標(biāo)簽包裹的時(shí)候,你會(huì)驚喜的發(fā)現(xiàn)點(diǎn)擊后a不能跳轉(zhuǎn)了,就好像a標(biāo)簽的瀏覽器默認(rèn)行為被阻止了一樣
其實(shí)還是上面寫法的坑,我們?yōu)榱四茏柚箘?dòng)態(tài)渲染的img元素用了事件代理,由document代理的,所以點(diǎn)擊的時(shí)候e.preventDefault()阻止的其實(shí)是document的默認(rèn)行為,document是網(wǎng)頁(yè)中的老大,它的默認(rèn)行為就相當(dāng)是瀏覽器的所有默認(rèn)行為了。。。所以a鏈接點(diǎn)了也不會(huì)跳轉(zhuǎn)
一. 不用a的href跳轉(zhuǎn),使用js跳轉(zhuǎn)(不推薦,像用戶使用富文本插入的html代碼就不行了)
二. 不用js,純使用css來(lái)阻止安卓微信的這一行為:
img {
pointer-events: none;
}
不過(guò)這個(gè)也有它的副作用,使用后會(huì)讓直接綁定在img身上點(diǎn)擊事件失效,只能給img元素再包裹一層元素,把事件放到這個(gè)元素身上
三. 改進(jìn)下我們之前寫的事件代理:
// 遞歸搜索當(dāng)前元素所有父級(jí),看是否包含有a標(biāo)簽且有href值
const searchIsHavaTagA = function (currentEle) {
// 如果一直往上層找,到body還沒找到就說(shuō)明沒有了
if (currentEle.nodeName === 'BODY') {
return false;
}
let parent = currentEle.parentElement;
if (parent.nodeName === 'A' && parent.getAttribute('href')) {
return true;
} else {
return searchIsHavaTagA(parent);
}
}
$(document).on('click', 'img', function (e) {
try {
// 父級(jí)里有a標(biāo)簽且href不為空的,不處理
if (!searchIsHavaTagA(e.target)) {
e.preventDefault();
}
} catch (error) {
console.log('阻止圖片默認(rèn)事件失敗');
}
})
北大青鳥APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國(guó)IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國(guó)家
達(dá)內(nèi)教育集團(tuán)成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機(jī)構(gòu),是中國(guó)一站式人才培養(yǎng)平臺(tái)、一站式人才輸送平臺(tái)。2014年4月3日在美國(guó)成功上市,融資1
北大課工場(chǎng)是北京大學(xué)校辦產(chǎn)業(yè)為響應(yīng)國(guó)家深化產(chǎn)教融合/校企合作的政策,積極推進(jìn)“中國(guó)制造2025”,實(shí)現(xiàn)中華民族偉大復(fù)興的升級(jí)產(chǎn)業(yè)鏈。利用北京大學(xué)優(yōu)質(zhì)教育資源及背
博為峰,中國(guó)職業(yè)人才培訓(xùn)領(lǐng)域的先行者
曾工作于聯(lián)想擔(dān)任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔(dān)任項(xiàng)目經(jīng)理從事移動(dòng)互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍(lán)懿科技有限責(zé)任公司從事總經(jīng)理職務(wù)負(fù)責(zé)iOS教學(xué)及管理工作。
浪潮集團(tuán)項(xiàng)目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺(tái)面向?qū)ο箝_發(fā)經(jīng)驗(yàn),技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點(diǎn)難點(diǎn)突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫(kù),具有快速界面開發(fā)的能力,對(duì)瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁(yè)制作和網(wǎng)頁(yè)游戲開發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開發(fā)經(jīng)驗(yàn)。曾經(jīng)歷任德國(guó)Software AG 技術(shù)顧問(wèn),美國(guó)Dachieve 系統(tǒng)架構(gòu)師,美國(guó)AngelEngineers Inc. 系統(tǒng)架構(gòu)師。