Javascript 如何在IE中实现突出显示单元格?
我已经按照jointjs使用highlight()方法所建议的方式实现了高亮显示选定单元格,该方法使用2像素的红色边框包围单元格。这在Chrome上非常有效,但我需要在IE中使用轮廓。我查看了joint.css,他们注意到轮廓在IE中不起作用,所以他们所做的是在突出显示单元格时更改不透明度。这对用户来说并不那么方便,因为选中单元格时会显示为禁用状态 我如何实现高亮显示,使单元格被轮廓包围,就像在Chrome中一样?如有任何想法/建议,将不胜感激Javascript 如何在IE中实现突出显示单元格?,javascript,html,svg,jointjs,Javascript,Html,Svg,Jointjs,我已经按照jointjs使用highlight()方法所建议的方式实现了高亮显示选定单元格,该方法使用2像素的红色边框包围单元格。这在Chrome上非常有效,但我需要在IE中使用轮廓。我查看了joint.css,他们注意到轮廓在IE中不起作用,所以他们所做的是在突出显示单元格时更改不透明度。这对用户来说并不那么方便,因为选中单元格时会显示为禁用状态 我如何实现高亮显示,使单元格被轮廓包围,就像在Chrome中一样?如有任何想法/建议,将不胜感激 var图=新关节直径图; var宽度=400;
var图=新关节直径图;
var宽度=400;
var高度=400;
var-gridSize=1;
var纸张=新接缝直径纸张({
el:$('纸'),
宽度:宽度,
高度:高度,,
模型:图形,
gridSize:gridSize
});
纸上('cell:pointerdown',函数(cellView,evt,x,y){
cellView.highlight();//高亮显示单击的元素
});
var actor=new joint.shapes.basic.Rect({
位置:{x:100,y:30},
属性:{text:{text:'drag me'}},
尺寸:{高:92.7051,宽:150}
});
addCell(actor)代码>
我意识到这是一篇老文章,但有人可能会觉得它很有用。没有IE在我的机器上测试它,但这里有一种实现自己的荧光灯的方法
var图=新关节直径图;
var宽度=400;
var高度=400;
var-gridSize=1;
var纸张=新接缝直径纸张({
el:$('纸'),
宽度:宽度,
高度:高度,,
模型:图形,
gridSize:gridSize
});
纸上('cell:pointerdown',函数(cellView,evt,x,y){
//cellView.highlight();//高亮显示单击的元素
myHighlight(cellView.model.id);
});
var actor=new joint.shapes.basic.Rect({
位置:{x:100,y:30},
属性:{text:{text:'drag me'}},
尺寸:{高:92.7051,宽:150}
});
var myHighlight=函数(cellId){
var cell=graph.getCell(cellId);
cell.attr({
矩形:{
笔划:“红色”
}
});
};
addCell(actor)代码>
JointJS v0.9.7及更低版本
每当突出显示单元格时,joint.dia.Paper
会触发cell:highlight
和cell:unhighlight
。没有灯光。可以解除默认高亮显示的绑定
paper.off('cell:highlight cell:unhighlight');
并绑定一个定制的。例如:
// A rectangular highlighter element
var highlighter = V('rect', {
'stroke': '#ff7e5d',
'stroke-width': '6px',
'fill': 'transparent',
'pointer-events': 'none'
});
paper.on({
'cell:highlight': function(cellView, el, opt) {
// measure the element meant to be highlighted
var bbox = V(el).bbox(false, paper.viewport);
// set `x`, `y`, `width` and `hight` onto the highlighter element
highlighter.attr(bbox);
// add the highlighter to the DOM
V(paper.viewport).append(highlighter);
},
'cell:unhighlight': function(cellView, el, opt) {
// remove the highlighter from the DOM
highlighter.remove();
}
});
请查看以下JSFIDLE或查看JointJS web上的演示,这些演示也演示了突出显示
JointJS v0.9.9及更高版本
cellView高亮显示已重构。CSSoutline
属性不再使用。有一个模拟形状边界的SVGPath元素,直接附加到cellView。有关更多信息,请参见此。您可以发布一个肯定的消息吗!更新我的帖子:)