我們常常會遇到一個問題,a:active加動畫點擊無效,今天給大家看一下我的程式碼以及的解決方案,順便給大家分享一個如何不記錄url跳轉歷史的方法。
a標籤:active加動畫點擊無效
我的css程式碼如下:
.haorooms{ -webkit-animation: jpyd 1.5s cubic-bezier(0,.98,.44,1) both; animation: jpyd 1.5s cubic-bezier(0,.98,.44,1) both;} .haorooms:active{ -webkit-animation: zoomOuts 1s ; animation: zoomOuts 1s; }
html程式碼如下:
<a class="haorooms delay3 " href="/jingpin/" ></a>
蘋果手機中,a標籤點選無效。經查驗,a標籤並沒有遮擋,這是什麼原因?如何解決?
造成這種情況的原因是active有個1秒鐘的動畫,假如你長按按鈕,也是沒有辦法跳轉的。
a標籤:active加動畫點擊無效解決方案
其實這個解決方案是蠻多的,因為我們是在手機中展現,期望效果是在動畫播放結束之後跳轉,我們可以加入ontouchend事件,touchend之後跳到某個地址。
ontouchend="window.location.href='/jingpin/'"
加了這個之後,不管是長按,還是點擊,按結束之後,都是可以跳到指定位址的。
頁面跳轉歷史返回中不記錄
關於儲存瀏覽歷史,我之前文章中有提及過:SPA單頁web應用的一些簡介以及ajax無刷新頁面切換,歷史記錄後退前進解決方案
我們可以透過
history.replaceState history.pushState(state, title, url)
對瀏覽器歷史進行操作。
但是實際情況中,也有我們無需記錄瀏覽歷史的情況,例如“一個頁面中有2個tab切換標籤,tab切換是修改了瀏覽器地址”,tab切換是預設記錄到歷史的。因此我們點擊返回按鈕的時候,不停的在2個tab中切換,但是,實際我們是想回到上一頁的,不是在2個tab中切換。那麼這種情況該如何解決呢?
這個我們想到了
location.replace(newURL)
#replace() 方法不會在 History 物件中產生一個新的記錄。當使用該方法時,新的 URL 將覆寫 History 物件中的目前記錄。
因此程式碼我們可以如下寫:
<ul id="haorooms"> <li><a href="http://www.haorooms.com/archives">标签一</a></li> <li><a href="http://www.haorooms.com/tools/index">标签二</a></li> </ul> $('#haorooms li a').on('click', function (event) { //tab中a标签点击 event.preventDefault(); location.replace(this.href); })
上面程式碼在某些手機中傳回無效,因此方案失敗!
history.replaceState()和location.replace()方法
上面方法失敗了,我就得轉換思路了,看到張鑫旭大神前段時間也有一個類似的案例解決方案,因此我借鏡了一下!
解決方案如下:
$('#haorooms li a').on('click', function (event) { event.preventDefault(); history.replaceState(null, document.title, this.href.split('#')[0] + '#'); location.replace(''); })
首先透過HTML5 history.replaceState()方法把目前URL位址替換成以個井號#結尾的目前連結位址;
#執行location.replace('')刷新目前位址(此時#會忽略);
透過這個方案,我們再怎麼切換tab,點擊返回之後,照常回到進入頁面的前一頁。不會再在tab中切換了!
因為history.replaceState從IE10才開始支持,假如要相容於更早的瀏覽器,或在PC端使用。看到張大神也封裝了一個函數,這裡我借用一下:
var fnUrlReplace = function (eleLink) { if (!eleLink) { return; } var href = eleLink.href; if (href && /^#|javasc/.test(href) === false) { if (history.replaceState) { history.replaceState(null, document.title, href.split('#')[0] + '#'); location.replace(''); } else { location.replace(href); } } };
上面函數可以如下應用
$('#haorooms li a').on('click', function (event) { if (event && event.preventDefault) { event.preventDefault(); } fnUrlReplace(this); return false; })
相信看了這些案例你已經掌握了方法,更多精彩請關注php中文網其它相關文章!
相關閱讀:
#以上是a:active加動畫點擊無效的解決方案的詳細內容。更多資訊請關注PHP中文網其他相關文章!

HTML是一種用於構建網頁的語言,通過標籤和屬性定義網頁結構和內容。 1)HTML通過標籤組織文檔結構,如、。 2)瀏覽器解析HTML構建DOM並渲染網頁。 3)HTML5的新特性如、、增強了多媒體功能。 4)常見錯誤包括標籤未閉合和屬性值未加引號。 5)優化建議包括使用語義化標籤和減少文件大小。

WebDevelovermentReliesonHtml,CSS和JavaScript:1)HTMLStructuresContent,2)CSSStyleSIT和3)JavaScriptAddSstractivity,形成thebasisofmodernWebemodernWebExexperiences。

HTML的作用是通過標籤和屬性定義網頁的結構和內容。 1.HTML通過到、等標籤組織內容,使其易於閱讀和理解。 2.使用語義化標籤如、等增強可訪問性和SEO。 3.優化HTML代碼可以提高網頁加載速度和用戶體驗。

htmlisaspecifictypefodyfocusedonstructuringwebcontent,而“代碼” badlyLyCludEslanguagesLikeLikejavascriptandPytyPythonForFunctionality.1)htmldefineswebpagertuctureduseTags.2)“代碼”代碼“ code” code code code codeSpassSesseseseseseseseAwiderRangeLangeLangeforLageforLogageforLogicIctInterract

HTML、CSS和JavaScript是Web開發的三大支柱。 1.HTML定義網頁結構,使用標籤如、等。 2.CSS控製網頁樣式,使用選擇器和屬性如color、font-size等。 3.JavaScript實現動態效果和交互,通過事件監聽和DOM操作。

HTML定義網頁結構,CSS負責樣式和佈局,JavaScript賦予動態交互。三者在網頁開發中各司其職,共同構建豐富多彩的網站。

HTML適合初學者學習,因為它簡單易學且能快速看到成果。 1)HTML的學習曲線平緩,易於上手。 2)只需掌握基本標籤即可開始創建網頁。 3)靈活性高,可與CSS和JavaScript結合使用。 4)豐富的學習資源和現代工具支持學習過程。

AnexampleOfAstartingTaginHtmlis,beginSaparagraph.startingTagSareEssentialInhtmlastheyInitiateEllements,defiteTheeTheErtypes,andarecrucialforsstructuringwebpages wepages webpages andConstructingthedom。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

記事本++7.3.1
好用且免費的程式碼編輯器

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

PhpStorm Mac 版本
最新(2018.2.1 )專業的PHP整合開發工具

SublimeText3漢化版
中文版,非常好用