@RenderBody() 与画布

Posted

技术标签:

【中文标题】@RenderBody() 与画布【英文标题】:@RenderBody() with canvas 【发布时间】:2015-06-24 13:14:31 【问题描述】:

我在_Layout.cshtml 上加载了一个画布

当我从“索引”页面浏览到“关于”或“联系人”时,<canvas> 正在显示,但页面内容缺失。

Index 页面将在<body> 标记下加载div,但About 页面缺少内容。

我假设 @RenderBody 不在适当的 z-index 中,或者没有像我的索引页面那样显示在 <canvas> 之上。

<canvas id="bgCanvas"></canvas>
<script src="~/Scripts/starLayout.js"></script>

<div class="container body-content">
    @RenderBody()
    <hr />

    <footer>
        <p>&copy; @DateTime.Now</p>
    </footer>
</div>

编辑2:

在查看源代码下显示

    <canvas id="bgCanvas"></canvas>
    <script src="/Scripts/starLayout.js"></script>

    <div class="container body-content">


<h2>About.</h2>
<h3>Your application description page.</h3>
<div>
    <p>Use this area to provide additional information.</p>
</div>
        <hr />


        <footer>
            <p>&copy; 4/17/2015 11:33:17 AM - JTR</p>
        </footer>
    </div>

但是我仍然看不到内容,所以我相信它在画布下面。这很奇怪,因为它位于 index.cshtml 的画布上

【问题讨论】:

starLayout.js 在做什么?也许它破坏了页面渲染。此外,_Layout.cshtml 看起来不像一个完整的 HTML 文档。 对不起,我不太清楚。您是说@RenderBody() 是在注入内容,但不是您期望的内容,还是内容不存在?当您说“页面内容丢失”时,您的意思是它不在 DOM 中(当您查看源代码时不存在)或者它不可见 哦,好点。当我查看源代码时它就在那里不可见。 是的,我认为这只是一个 html / css 问题。我相信所有&lt;canvas&gt; 元素都应该指定heightwidth。因此默认值可能会覆盖您的其他元素。 【参考方案1】:

这是您的答案:w3c canvas。很快,您必须为画布元素提供宽度和高度属性。

记得将负责“绘图”的 *.js 文件/代码放在画布元素之后。

您能否提供 css 代码,所以我将编辑此答案以更具体?

【讨论】:

以上是关于@RenderBody() 与画布的主要内容,如果未能解决你的问题,请参考以下文章

更改画布形状

如何将从输入字段获取的画布名称与Javascript中的画布合并?

TAB页制作

js 外部按钮点击事件与canvas画布里的线条鼠标事件冲突

w3c 规范中的视口与画布?

HTML/Canvas - drawImage 性能与另一个画布