默认情况下,在启动时执行条件AND中的一行
Executing a line in a conditional AND by default on start
我有这个小提琴:http://jsfiddle.net/zhaem/Lyzrtefo/7/
var orangeMode = true
var isTracking = true
getMouseXY = function(e) {
if (isTracking) {
var tempX = e.pageX
var tempY = e.pageY
if (tempX < 0){tempX = 0}
if (tempY < 0){tempY = 0}
document.getElementById("circle1").style.top = (tempY - 25) + "px";
document.getElementById("circle1").style.left = (tempX - 25) + "px";
}
return true
}
document.onmousemove = getMouseXY;
var toggleTrackCircle = function() {
isTracking = !isTracking;
console.log(isTracking);
}
document.getElementById("circle1").addEventListener("click", toggleTrackCircle);
flip = function() {
orangeMode = !orangeMode;
if (orangeMode) {
document.getElementById("circle1").style.backgroundColor = "orange";
document.getElementById("circle1").addEventListener('mouseover', function() {isTracking = true;})
// When the above line is executed the circle will stick to your cursor on HOVER after clicking and setting it down.
} else {
document.getElementById("circle1").style.backgroundColor = "blue";
}
}
document.getElementById("box3").addEventListener("click", flip);
有一句话,当存在时会改变互动的行为。(你可以随时点击以阻止光标跟踪你,但当这条线在那里时,圆圈会在悬停时重新粘在它上,而当它不在的时候,它只会在悬停+点击时重新粘上。
document.getElementById("circle1").addEventListener('mouseover', function() {isTracking = true;})
我试图在flip函数中用一些条件逻辑来包装它(你可以通过点击角落里的红色框来控制它),这样orangeMode==它就会停留在悬停状态,而不是orangeMode,它只会在点击时重新停留。
flip函数可以很好地更改颜色,但这个事件侦听器的性能并不像我想要的那样。(一旦你循环通过,它确实有效,但对于任何一种状态,它都没有运行橙色模式卸载。
任何帮助都将不胜感激。
您需要输入'isTracking=true;'在一个命名函数中,这样你就可以使用"removeEventListener"来取消该函数。这意味着你添加了这个函数:
var trackCircle = function() {
isTracking = true;
}
然后你在点击时引用它,而不是匿名函数:
circle.addEventListener('mouseover', trackCircle)
然后你只需在你的else:中删除该事件
circle.removeEventListener('mouseover', trackCircle)
哦,我会在顶部添加这个,这样你就不需要一直重复getElementById短语:
circle = document.getElementById("circle1");
希望能有所帮助。哦,这是对你小提琴的编辑:
http://jsfiddle.net/Lyzrtefo/9/
相关文章:
- 拆分文本以每隔n个字符添加一行新行,并注意空格
- 动态插入的表:JQuery未检测到最后一行
- Selenium WebDriver and JavaScript change
- 在终端中运行 JavaScript 时(使用 rhino),如何使用 print() 函数在一行中打印
- 如何在Angular UI网格中选择下一行
- 通过单击动态加载的表中同一行的另一个字段来更新一行的字段
- PHP and Javascript functions
- Javascript Return and if/else
- SetTimeout and clearTimeout in Javascript
- lightbox in html 5 and javascript
- TimelineJS and AngularJS
- timeago.js with datatable and PHP
- javascript button ajax and php
- Ajax and Json with Rails
- Combine onload, onresize and onclick
- php布尔值's小写AND大写和数字布尔值'可以接受
- setTimeout and V8
- Jquery幻灯片以一行左侧的图像开始,但我希望它从右端开始
- Jquery post and onclick
- 默认情况下,在启动时执行条件AND中的一行