這是我在SO上的第一篇文章,我已經用了很長一段時間,總是通過搜索找到解決方案。現在我開始深入研究編程 - 現在正在學習Java腳本 - 並且我無法找到我的初學者問題的確切答案:阻止錨標記跳轉
我創建了一個簡單的照片庫,縮略圖指向圖像通過href。圖像默認情況下不顯示。通過點擊一個縮略圖,對應的圖像顯示得益於:target僞元素。通過這種方式,我可以繞過層次結構中更高級的HTML結構和地址元素的級聯特性。
見琴:
https://jsfiddle.net/ahu1kaqf/
的問題是,這種「黑客」有把圖像窗口的最頂部的副作用,因爲它默認主播跳行爲。 所以我想完成的是關閉或繞過只是的跳躍行爲。 因此,像「preventDefault」或「return false」這樣的JS解決方案不適合,因爲它們會關閉完整的錨定行爲。 我的想法是在點擊之前讀取yScroll位置,並將它傳遞給剛剛在頁面跳轉後觸發的另一個函數。通過錨標記上附加一個onclick事件中,我發現該功能的實際跳之前執行,我可以讀取當前scrollY位置:
function posY(){
console.log(window.scrollY);
scry = window.scrollY;
}
然後,錨事件結束後,我想通過變量占卜到另一個功能,只是錨後跳觸發撤消跳:
function undoJump(){
window.scrollTo(0, scry);
}
它並沒有真正與click事件工作作爲函數的實際跳轉之前觸發。
在小提琴的js代碼是在腳本標記,因爲不僅僅是使用功能到JS窗口(當然沒有腳本標記的)顯示在控制檯中的錯誤,我不知道爲什麼......
對不起,我真的是初學者,謝謝大家的幫助!
謝謝你的快速回答! – kipo87
感謝您的快速回答!但由於preventDefault(),目標僞選擇器不再工作。通過點擊一個拇指,相應的圖像不會再顯示出來... – kipo87
好吧,明白了。我必須添加 document.getElementById(「img <對應數字>」)。style.display =「initial」; 在修復這個功能。在飛行中學習.... – kipo87