Javascript悬停功能出现
Javascript hover function to appear
我知道当你将鼠标悬停在一个圆上时如何让一个框出现,但是它很大,在我看来它会破坏体验。这是一个警报。我希望它是一个较小的盒子,当您悬停时它只会出现在圆圈上方,而不是一个很大的盒子,如果您明白我的意思的话。但是我不确定如何实现这一点。任何帮助都会很棒
Knockout JS 2.0.0
window.onload = function() {
var paper = new Raphael(0, 0, 400, 400);
var backGround = paper.rect(0, 0, 400, 400);
backGround.attr({
fill: "orange"
});
var face = paper.circle(200, 200, 100);
face.attr({
fill: "Red"
});
face.hover(hoverHandler);
};
function hoverHandler() {
alert("hi");
}
因此,当用户将鼠标悬停在红色圆圈上时,我希望在其上方出现一个小框并打个招呼
谢谢
编辑 : JSFiddle
您可能需要 fiddle 确定要放置元素的位置,但这应该能让您朝着正确的方向前进。您可能面临的主要问题是您的回调在加载函数调用之外,因此如果您尝试将纸质对象传递给回调函数,它会返回未定义的。
这是另一个关于使用 Raphael 添加文本的好文章 answer。
实例:http://codepen.io/larryjoelane/pen/LGKxeR
Raphael/JavaScript代码:
window.onload = function() {
var paper = new Raphael(0, 0, 400, 400);
var backGround = paper.rect(0, 0, 400, 400);
backGround.attr({
fill: "orange"
});
var face = paper.circle(200, 200, 100);
face.attr({
fill: "Red"
});
face.hover(hoverHandler);
//Moved this inside of the onload event
function hoverHandler() {
//create the alert
var alert = paper.rect(175, 175, 50, 50);
alert.attr({
fill: "blue"
});
//add the text
var text = paper.text(200, 200, "Hi!");
//add some attributes
text.attr({
"font-size": 22,
"font-family": "Arial, Helvetica, sans-serif"
});
}
};
那是你想要的,你应该调用该函数(例如,匿名)并将你的 bar 传递给它来修改它的属性。然后,在鼠标 hover
上,条形图出现在圆圈上。
window.onload = function() {
var paper = new Raphael(0, 0, 400, 400);
var face = paper.circle(200, 200, 100);
face.attr({
fill: "Red"
});
var backGround = paper.rect(150, 150, 100, 100);
backGround.attr({
fill: "",
"stroke-width": 0
});
face.hover(function(){hoverHandler(backGround)});
};
function hoverHandler(l) {
alert("hi");
l.attr({
fill: "orange"
});
}
我知道当你将鼠标悬停在一个圆上时如何让一个框出现,但是它很大,在我看来它会破坏体验。这是一个警报。我希望它是一个较小的盒子,当您悬停时它只会出现在圆圈上方,而不是一个很大的盒子,如果您明白我的意思的话。但是我不确定如何实现这一点。任何帮助都会很棒
Knockout JS 2.0.0
window.onload = function() {
var paper = new Raphael(0, 0, 400, 400);
var backGround = paper.rect(0, 0, 400, 400);
backGround.attr({
fill: "orange"
});
var face = paper.circle(200, 200, 100);
face.attr({
fill: "Red"
});
face.hover(hoverHandler);
};
function hoverHandler() {
alert("hi");
}
因此,当用户将鼠标悬停在红色圆圈上时,我希望在其上方出现一个小框并打个招呼
谢谢
编辑 : JSFiddle
您可能需要 fiddle 确定要放置元素的位置,但这应该能让您朝着正确的方向前进。您可能面临的主要问题是您的回调在加载函数调用之外,因此如果您尝试将纸质对象传递给回调函数,它会返回未定义的。
这是另一个关于使用 Raphael 添加文本的好文章 answer。
实例:http://codepen.io/larryjoelane/pen/LGKxeR
Raphael/JavaScript代码:
window.onload = function() {
var paper = new Raphael(0, 0, 400, 400);
var backGround = paper.rect(0, 0, 400, 400);
backGround.attr({
fill: "orange"
});
var face = paper.circle(200, 200, 100);
face.attr({
fill: "Red"
});
face.hover(hoverHandler);
//Moved this inside of the onload event
function hoverHandler() {
//create the alert
var alert = paper.rect(175, 175, 50, 50);
alert.attr({
fill: "blue"
});
//add the text
var text = paper.text(200, 200, "Hi!");
//add some attributes
text.attr({
"font-size": 22,
"font-family": "Arial, Helvetica, sans-serif"
});
}
};
那是你想要的,你应该调用该函数(例如,匿名)并将你的 bar 传递给它来修改它的属性。然后,在鼠标 hover
上,条形图出现在圆圈上。
window.onload = function() {
var paper = new Raphael(0, 0, 400, 400);
var face = paper.circle(200, 200, 100);
face.attr({
fill: "Red"
});
var backGround = paper.rect(150, 150, 100, 100);
backGround.attr({
fill: "",
"stroke-width": 0
});
face.hover(function(){hoverHandler(backGround)});
};
function hoverHandler(l) {
alert("hi");
l.attr({
fill: "orange"
});
}