- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
您好,我正在尝试让一个 div 元素自动来回移动,但我卡住了,我不确定我需要添加什么才能让它工作。我什至无法让它移动
我的命名空间:
var $hubbe = {};
我的移动函数:
$hubbe.movex = 0;
$hubbe.newdiv = document.getElementById("newdiv");
$hubbe.move = function() {
$hubbe.movex++
$hubbe.newdiv.style.left = $hubbe.movex + 'px';
setTimeout($hubbe.move, 2000);
}
和 div :
$hubbe.printelement = function() {
$hubbe.div = document.createElement("DIV");
$hubbe.div.setAttribute("id", "newdiv");
$hubbe.div.setAttribute("onload", "$hubbe.move()")
$hubbe.div.innerHTML = "hej";
$hubbe.div.style.position = "absolute";
$hubbe.div.style.left = "50%";
$hubbe.div.style.top = "50%";
document.body.appendChild($hubbe.div);
}
编辑:我的 jsfiddle:https://jsfiddle.net/g7ytvevp/
最佳答案
请看以下内容: https://jsfiddle.net/g7ytvevp/1/
<script>
var $hubbe = {};
$hubbe.printelement = function() {
//skapar en varibale $hubbe.div som ett div element
$hubbe.div = document.createElement("DIV");
// sätter ett id newdiv på $hubbe.div
$hubbe.div.setAttribute("id", "newdiv");
$hubbe.div.setAttribute("style", "background-color:red;")
$hubbe.div.innerHTML = "hej";
$hubbe.div.style.position = "absolute";
$hubbe.div.style.left = "50%";
$hubbe.div.style.top = "50%";
//skriver ut $hubbe.div till body
document.body.appendChild($hubbe.div);
$hubbe.move();
}
$hubbe.movex = 0;
$hubbe.newdiv = document.getElementById("newdiv");
$hubbe.move = function() {
$hubbe.movex++
$hubbe.div.style.left = $hubbe.movex + 'px';
setTimeout($hubbe.move, 2000);
}
</script>`
您的“移动”函数没有被调用,因为没有为那个 div 触发“onload”事件。原因在这篇文章中提到: How to add onload event to a div element?
更新:
带有描述性注释的动画最终版本。 https://jsfiddle.net/g7ytvevp/9/
var $hubbe = {};
$hubbe.printelement = function() {
$hubbe.div = document.createElement("DIV");
$hubbe.div.setAttribute("id", "newdiv");
$hubbe.div.setAttribute("style", "background-color:red;")
$hubbe.div.innerHTML = "hej";
$hubbe.div.style.position = "absolute";
$hubbe.div.style.left = "50%";
$hubbe.div.style.top = "50%";
document.body.appendChild($hubbe.div);
$hubbe.move();
}
$hubbe.movex = 0;
$hubbe.newdiv = document.getElementById("newdiv");
$hubbe.translateX = 1;
$hubbe.translateY = 0;
$hubbe.move = function() {
var element = $hubbe.div;
var translateX = $hubbe.translateX;
var translateY = $hubbe.translateY;
// https://developer.mozilla.org/en-US/docs/Web/API/Element/getBoundingClientRect
// This method basically gives us the position of all four sides of the "element" on which it is call. It gives us the size as well.
// In the current case we only require the 'current position'
// of our div so we call it over our div and the resultant
// variable 'pos' would contain the respective position of
// each side left / right / top / bottom in it e.g pos.left etc.
// This is needed because we need to keep track of where our div
// currently is, since the translation is based on certain
// conditions e.g if the div reaches the right edge off the
// screen, it should start moving left etc.
var pos = element.getBoundingClientRect();
// We're using the same method to find the dimesions of our
// parent container i.e "body" element, since we need to keep
// track of the condition when our div reaches the edge of the
// screen and that we can only know if we know the co-ordinates
// of the edge.
var domRect = document.body.getBoundingClientRect();
if(pos.right >= domRect.right)
$hubbe.translateX = -1;
if(pos.left <= domRect.left)
$hubbe.translateX = 1;
// This is the line that basically makes the translation along
// X - axis happen. pos.left variable contains the position
// (in pixels) of the left edge of the div object. We add the
// translation factor "translateX" (1 in this case) to it and
// update the position of the div, causing it to move to the left
// or the right. In case of a positive (+1, +2 ... ) it will move
// to the right, for negative, it will go left and for 0, it will
// not move along X - axis. The higher the translation factor,
// the faster the object would translate.
$hubbe.div.style.left = pos.left + translateX + 'px';
// This can be used for vertical translation / movement along the
// Y - axis. It was just for demonstration purposes. For now
// it isn't event being used.
$hubbe.div.style.top = pos.top + translateY + 'px';
setTimeout($hubbe.move, 10);
}
</script>
关于javascript - 使用javascript来回移动div/动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50429048/
我正在编写两个程序,一个用 C++ 编写,另一个用 Python 编写,以使用 unix 域套接字相互通信。我想做的是让 C++ 代码向 Python 代码发送一个数字,Python 代码又将另一个数
我希望有一个生成器函数,它返回一条线上的点,给定一个最小距离 k。这很简单,可以使用 numpy 完成,如下所示: points = np.linspace(start, end, k) 但是,我想生
根据我的理解,我们一直在用 Git 做一个非常标准的分支模型的项目,描述如下:http://nvie.com/posts/a-successful-git-branching-model/ 我们从“m
我有一张图片,我想单击它以动画形式旋转 90 度,当它再次单击时我希望它以动画形式旋转 -90 度。 对于使用 css3 变换的旋转 im: -moz-transform:rotate(90deg);
我正在尝试将 拖放 Logo 到 2 个 SVG 圆圈 中。在我的代码的帮助下,图像被拖到一个圆圈中,但没有被拖到另一个圆圈中。 如何修改code这样图像可以在两个圆圈之间拖/放? function
我正在使用 python 3.5.2、pandas 0.18.1 和 sqlite3。 在我的数据库中,我有一个列 unix_time 和 INT 自 1970 年以来的秒数。理想情况下我想从 sql
我已经在我的服务器上安装了 SSL。我的问题是如何通过 acegi 插件在选定的 Controller /页面上强制使用 https。 Acegi 插件支持一个属性 forcehttps,当设置为 t
这是我第一次发布查询。我需要帮助。感谢您的帮助。 我同意我已经把我的概率作为一个长篇故事。但很抱歉,我不知道如何缩短它,我的目的是提供有关我的问题的完整信息。 问题:我必须在 Windows 平台上使
我是一名优秀的程序员,十分优秀!