我的問題很簡單,但我很努力地找到答案。我正在使用流星來創建一個網站。用我的流星,我使用鐵路路由器來瀏覽我的頁面和模板。我的頭標總是保持不變。我只通過使用熨斗路由器更改包含在身體內的模板來更換身體。我有一個頁面,其中包含帶ID的錨定標記,我想讓頁面自動滾動到我的網頁上的某個錨點,當我的模板發生更改時,由於用戶導航到該頁面。不幸的是,我只能提供代碼片段,因爲我正在爲一家公司做網頁,而且不想泄漏信息。我認爲代碼片段就足夠了。使用元素ID滾動到頁面上的元素,流星
我已經試過了鐵路由器onAfterRun:
Router.map(function(){
this.route("cpdEvents", {
path: "cpd.html#events",
onAfterRun: function() {
e.preventDefault();
$('html, body').animate({
scrollTop: $("a[name=events]").offset().top
}, 600);
}
});
});
我試圖流星的模板渲染功能:我的網站的結構,而不是明顯的一切
if (Meteor.isClient) {
Template.cpd.rendered = function(){
e.preventDefault();
$('html, body').animate({
scrollTop: $("a[name=events]").offset().top
}, 600);
}
}
例子。只是索引html和用戶導航到的cpd.html。 JavaScript已經在上面顯示。
的index.html:
<head>
<meta ..... />
<title></title>
</head>
<body>
{{> index}}
</div>
</body>
cpd.html:
<template name="cpd">
....
<a name="events"></a>
....
</template>
只是額外的信息:
我使用的流星版本包含jQuery庫,我已經測試了我的jQuery作品。
如果我沒有使用流星,並使用例如HTML。這很容易通過在URL末尾添加「#」和id來完成。像www.example.com/cpdEvents#events
我正在爲你的答案+1,因爲你剛剛教會了我一些東西。感謝那。 – CodeChimp
你完全理解我:)首先感謝您的幫助。如果我正確理解你,流星/鐵路路由器默認支持滾動到哈希?因此,如果我的網址是www.example.com/cpd#events,瀏覽器窗口應該默認滾動到事件定位符?如果是這樣,我的滾動哈希不起作用。在一個不相關的主題上,我喜歡你的網站。有沒有什麼特別的你爲你的網站使用低帶寬,因爲我的首次加載時使用8MB? – MartinS
是的,它默認跳轉到那裏。這個網站是我的自由時間項目,以提高我對流星細節的知識。如果您想縮小尺寸,則需要在生產模式下部署項目。源代碼可在這裏https://github.com/Chaosbohne/bicobic – chaosbohne