我發現了example code,我覺得我只需要插入它,但我對流星很陌生,我希望只是做出簡單的天真錯誤。我認爲jquery已經包含在Meteor中,並且如果我在「客戶端」代碼部分使用$或document.getElementById,它可以工作,但是我要麼爲後者獲得一個空值,並且沒有爲前者定義$: (無法弄清楚如何讓css/js屏蔽代碼在流星中工作
我試圖儘可能簡潔與我在這個職位代碼
這裏是我的項目中屏蔽的JavaScript代碼:
if (Meteor.isClient) {
var canvas = document.getElementById("canvas");;
if (canvas[0].getContext) {
var context = $canvas[0].getContext('2d');
context.fillStyle = 'red';
context.fillRect(10, 10, 300, 60);
}
}
下面是相關的CSS代碼:
#box {
width: 150px;
height: 150px;
background-color: blue;
border-radius: 50px;
overflow: hidden;
-webkit-mask-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAA5JREFUeNpiYGBgAAgwAAAEAAGbA+oJAAAAAElFTkSuQmCC); /* this fixes the overflow:hidden in Chrome/Opera */
}
的html代碼:
<template name="applicationLayout">
<div id = "backgroundDiv">
</div>
<div id="box">
<canvas id="canvas" width="300px" height="300px"></canvas>
</div>
<div style="width: 40%">
<header>
{{> logoFloat}}
{{> navbar}}
</header>
{{> yield}}
{{> footer}}
</div>
UPDATE我能得到這個使用薩爾曼的Template.applicationLayout.onRendered()函數,然後anomepani JavaScript的DOM選擇器代碼,並通過添加ID工作= 「帆布」到我的畫布對象。謝謝你們的幫助,我希望我可以將兩者都標爲答案。
出於某種原因,我仍然得到 「$」 是不是一個函數,即使我把它包起來,如果(Meteor.isClient){ Template.applicationLayout.onRendered(函數(){}}); – smuggledPancakes
@smuggledpancakes你可以請在jsfiddle中分享一些代碼,以便我可以追蹤。 '$'不是函數意味着$符號被定義和jquery加載,否則它會拋出引用錯誤 – anomepani
我認爲$不是一個函數,因爲我必須在onCreated,onRendered或onDestroyed函數中使用它,請參閱http:// docs.meteor.com/#/full/template_inst。我很確定這是它。 – smuggledPancakes