@@ -129,16 +129,16 @@ function renderCards(container, cardsData) {
129129
130130 let btn = '' ;
131131 if ( index % 2 === 0 ) {
132- btn = `<a href="ChronologyOfStellarTrailsDetails.html" class="detail-btn">
132+ btn = `<button class="detail-btn" data-id=" ${ card . id } ">
133133 查看详情
134134 <svg xmlns="http://www.w3.org/2000/svg" style="margin-left: 2rem;" width="128" height="128" viewBox="0 0 24 24"><path fill="#ffffff" d="M16.175 13H4v-2h12.175l-5.6-5.6L12 4l8 8l-8 8l-1.425-1.4z"/></svg>
135- </a >`
135+ </button >`
136136
137137 } else {
138- btn = `<a href="ChronologyOfStellarTrailsDetails.html" class="detail-btn">
138+ btn = `<button class="detail-btn" data-id=" ${ card . id } ">
139139 <svg xmlns="http://www.w3.org/2000/svg" style="margin-right: 2rem;" width="128" height="128" viewBox="0 0 24 24"><path fill="#ffffff" d="M16.175 13H4v-2h12.175l-5.6-5.6L12 4l8 8l-8 8l-1.425-1.4z"/></svg>
140140 查看详情
141- </a >`
141+ </button >`
142142 }
143143
144144
@@ -161,6 +161,29 @@ function renderCards(container, cardsData) {
161161
162162 container . appendChild ( cardElement ) ;
163163 } ) ;
164+
165+ // 添加详情按钮点击事件监听
166+ addDetailButtonListeners ( ) ;
167+ }
168+
169+ /**
170+ * 为详情按钮添加点击事件监听
171+ */
172+ function addDetailButtonListeners ( ) {
173+ const detailButtons = document . querySelectorAll ( '.detail-btn' ) ;
174+
175+ detailButtons . forEach ( button => {
176+ button . addEventListener ( 'click' , ( e ) => {
177+ e . preventDefault ( ) ;
178+ const cardId = button . getAttribute ( 'data-id' ) ;
179+
180+ // 将选中的卡片ID存储到localStorage
181+ localStorage . setItem ( 'selectedCardId' , cardId ) ;
182+
183+ // 跳转到详情页
184+ window . location . href = 'ChronologyOfStellarTrailsDetails.html' ;
185+ } ) ;
186+ } ) ;
164187}
165188
166189/**
@@ -202,6 +225,41 @@ function observeTitles() {
202225 } ) ;
203226}
204227
228+ /**
229+ * 滚动到指定ID的卡片
230+ */
231+ function scrollToCard ( ) {
232+ const scrollToCardId = localStorage . getItem ( 'scrollToCardId' ) ;
233+
234+ if ( scrollToCardId ) {
235+ // 清除localStorage中的数据
236+ localStorage . removeItem ( 'scrollToCardId' ) ;
237+
238+ // 等待页面渲染完成后再滚动
239+ setTimeout ( ( ) => {
240+ const targetCard = document . querySelector ( `[data-id="${ scrollToCardId } "]` ) ;
241+
242+ if ( targetCard ) {
243+ // 滚动到目标卡片,并居中显示
244+ targetCard . scrollIntoView ( {
245+ behavior : 'smooth' ,
246+ block : 'center' ,
247+ inline : 'nearest'
248+ } ) ;
249+
250+ // 添加高亮效果
251+ targetCard . style . transition = 'all 0.5s ease' ;
252+ targetCard . style . transform = 'scale(1.02)' ;
253+
254+ // 3秒后移除高亮效果
255+ setTimeout ( ( ) => {
256+ targetCard . style . transform = '' ;
257+ } , 2000 ) ;
258+ }
259+ } , 200 ) ; // 等待500ms确保页面渲染完成
260+ }
261+ }
262+
205263document . addEventListener ( "DOMContentLoaded" , ( ) => {
206264 const header = document . querySelector ( '.header' ) ;
207265 const starContainer = document . querySelector ( '.star-bg' ) ;
@@ -239,6 +297,9 @@ document.addEventListener("DOMContentLoaded", () => {
239297 // 监听标题可见性
240298 observeTitles ( ) ;
241299
300+ // 检查是否需要滚动到特定卡片
301+ scrollToCard ( ) ;
302+
242303 // 初始化鼠标控制器
243304 new Mouse ( {
244305 defaultCursor : '../assets/images/common/MouseDefault.svg' ,
0 commit comments