Javascript 如何在HTML中引用JS变量?
我以前从未做过JS,现在我只是在学习CSS,但偶然发现了这个动画教程,并想尝试一下。 它无法通过:<空白页输出。。。我想这是因为我必须提取JS变量才能输出它。我在这里寻找解决方案,并尝试document.getElementById'iconDiv'.innerHTML=s;但那没用。 感谢您的帮助Javascript 如何在HTML中引用JS变量?,javascript,html,animation,svg,inkscape,Javascript,Html,Animation,Svg,Inkscape,我以前从未做过JS,现在我只是在学习CSS,但偶然发现了这个动画教程,并想尝试一下。 它无法通过:>之外的唯一工具,我无法运行ht。”PyCharm中的ml代码谢谢你的帮助。至少现在我知道我不是疯狂的XD…现在来看看你说的是什么,因为我真的不知道+.+…但至少现在我大致知道问题是什么了。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Inkscape Animated Icon Snap</title>
<!--We need to add the Snap.svg script to our document-->
<script src="snap.svg-min.js"></script>
<script>
//Run script right away
window.onload = function () {
//We'll be appending the icon to this DIV later
var s = Snap("#iconDiv");
//Have Snap load the SVG file
Snap.load("icon.svg", function(f) {
//Assign the white rectangle
whiteRect = f.select("#whiteRect");
//Assign the whole icon group
icon = f.select("#icon");
//When the icon is hovered over, have the white rectangle move up slightly with elastic properties
icon.hover(function() {
whiteRect.animate({y:960}, 500, mina.elastic);
},
//And return to original position when not hovered over
function() {
whiteRect.animate({y:977.36218}, 500, mina.elastic);
}
);
//Finally append the icon to iconDiv in the body
s.append(f);
});
};
</script>
</head>
<body>
<!--Here's the DIV that will hold the animated SVG icon-->
<div id="iconDiv"></div>
</body>
</html>
我回去又做了一次,如下所示:
制作了一个100x100像素的蓝色正方形。集合ID:blueRect,标签:blueRect。
制作了一个50x50像素的白色正方形。集合ID:whiteRect,标签:whiteRect。
将它们分组并设置ID:图标、标签:图标。
将icon.svg保存为普通svg,保存在我的index.html文件所在的同一文件夹中。
下载Snap.svg并将Snap.svg-min.js放在我的index.html文件所在的同一文件夹中。
在记事本中打开icon.svg:
id=whiteRect
宽度=13.229167
高度=13.229167
x=6.6145835
y=277.15625
我不知道为什么这些数字和我第一次试验时的数字一样,因为我这次特别把我的平方放在了0,0。。。我甚至用不同的名字保存了一份副本。仍然得到那些数字,但不管怎样
Copy直接从网站粘贴html代码,并首先将y更改为277.15625,然后更改为0
将另一个y设置为270,然后设置为-15
icon.hover函数{
动画{y:-15},500,mina.elastic
两次都是空白页。您是否查看了控制台?控制台是否显示以下错误
Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https.
这是由您试图通过html加载本地文件的行引起的。如果人们可以将其本地文件加载到网站,则会存在安全风险。要解决此问题,请运行启用cors跨源资源共享的HTTP服务器。这里我使用的是可与npm一起安装的HTTP服务器。我正在侦听端口8000,并运行来自同一目录的服务器会记录文件的时间段
http-server . -o --cors -p 8000
另外,在index.html中,您需要将对本地目录的所有引用更改为http://localhost:8000/. 之后,您将浏览到,而不是在本地打开index.htmlhttp://127.0.0.1:8000/ 看动画。这对我来说很有效,至少在IE上是这样。Chrome对cors似乎更严格,我还没有弄清楚如何使用get过去了。我还没有试过Firefox。快速否决,但在我的问题上连一点提示都没有……真的很有帮助……你被否决了,因为你没有发布一条消息。@bejado你可以键入[mcve]在注释中,它呈现了相同的内容。@Raksha-您需要在问题本身中提供一个答案,而不是所有代码的副本/粘贴,只是演示问题所需的内容以及一个明确的问题陈述(它不起作用)是不可行的。请进行一些调试。引用浏览器开发工具控制台中显示的任何消息。使用“网络”选项卡以确保加载所有外部文件。等等。本教程没有问题。根据您提供的信息,我们无法判断您做错了什么。我不知道在哪里可以看到这些消息。我正在使用PyCharm进行编辑,因为这是除记事本>>之外的唯一工具,我无法运行ht。”PyCharm中的ml代码谢谢你的帮助。至少现在我知道我不是疯狂的XD…现在来看看你说的是什么,因为我真的不知道+.+…但至少现在我大致知道问题是什么了。