如何给图像元素一个“;选择“;使用Raphael.js查看
How to give image element a "selected" look using Raphael.js
我使用Raphael.js在画布上绘制图像。我需要能够选择某些图像元素(我可以这样做),并使它们看起来像是被选中的(这就是问题所在)。
在Raphael.js之前,我使用普通的Html5画布和简单的矩形。删除选定的矩形并在同一位置绘制一个不同颜色的新矩形很简单。
但现在我使用的是图像,情况就不同了。我使用的图像在这里。这是一张小gif。
所以问题是:
- 有没有一种简单的方法可以通过编程更改Raphael.js图像元素的颜色
- 我可以通过改变不透明度来使图像元素闪烁吗
唯一的要求是所选元素必须是可移动的。
用户单击画布时绘制图像的代码:
var NodeImage = RCanvas.image("../vci3/images/valaisin.gif", position.x, position.y, 30, 30);
NodeImage.toFront();
RSet.push(NodeImage);
NodeImage.node.id = 'lamp';
NodeImage.node.name = name;
NodeImage.click(function() {
console.log("Clicked on node " + NodeImage.node.name);
// Here should be the code that blinks or changes color or does something else
});
这完全是个坏主意吗?有更好的方法来实现我的目标吗?
我建议用某种级别的opacity
授予image
,并在单击时为其分配值1
:
NodeImage.attr('opacity', 0.6);
// ...
NodeImage.click(function() {
this.attr('opacity', 1);
});
当然,您可能希望管理shape
的选定状态,以便稍后关闭选定样式。事实上,您希望以相同的方式管理所有可选择的形状,所以让我们这样做:
// keep all selectable shapes in a group to easily manage them
var selectableShapesArray = [NodeImage, otherNodeImage, anotherSelectableShape];
// define the behavior for shape click event
var clickHandler = function() {
for (var i in selectableShapesArray) {
var image = selectableShapesArray[i];
if (image.selected) {
image.attr('opacity', .6);
image.selected = false;
break;
}
}
this.attr('opacity', 1);
this.selected = true;
}
// attach this behavior as a click handler to each shape
for (var i in selectableShapesArray) {
var shape = selectableShapesArray[i];
shape.click(clickHandler);
}
相关文章:
- 在Twitter BootStrap嵌套下拉列表中托管一个选择列表(IE 9特定)
- HTML-使用mysql.php生成一个选择框.我怎样才能更改“;值“;生成的选择框选项的
- 我如何创建一个选择器,就像jQuery有jQuery()或$()一样
- 如何根据另一选择中的选择设置一个选择中的文本
- 正在尝试创建一个选择选项
- 在javascript中动态添加一个选择下拉菜单
- 当用户设置另一个选择值时,如何通过 Javascript 设置另一个选择值
- 从另一个选择框并使用数据库连接填充选择框
- 使用jquery创建并复制一个选择框
- 进行一个选择,自动发送表单并打开另一个选择(CodeIgniter)
- 使用jquery克隆一个选择菜单
- Jquery #id ul li 一个选择
- Chrome:在用户打开一个选择后添加选项
- 如果所有单选框在jQuery中都有一个选择,则显示一个元素
- 从select中选择一个选项,然后使用Codeigniter在另一个选择框上显示数据
- 将选择下拉列表发送到另一个选择下拉列表
- JQuery以基于另一个选择列表填充选择列表
- 在填充另一个选择框时动态添加选择框
- 两个表单,一个选择/下拉框-需要将选择值从一个表单复制到另一个表单
- 根据第一个选择框中选择的内容筛选下一个选择框的值