Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在IE中实现突出显示单元格?_Javascript_Html_Svg_Jointjs - Fatal编程技术网

Javascript 如何在IE中实现突出显示单元格?

Javascript 如何在IE中实现突出显示单元格?,javascript,html,svg,jointjs,Javascript,Html,Svg,Jointjs,我已经按照jointjs使用highlight()方法所建议的方式实现了高亮显示选定单元格,该方法使用2像素的红色边框包围单元格。这在Chrome上非常有效,但我需要在IE中使用轮廓。我查看了joint.css,他们注意到轮廓在IE中不起作用,所以他们所做的是在突出显示单元格时更改不透明度。这对用户来说并不那么方便,因为选中单元格时会显示为禁用状态 我如何实现高亮显示,使单元格被轮廓包围,就像在Chrome中一样?如有任何想法/建议,将不胜感激 var图=新关节直径图; var宽度=400;

我已经按照jointjs使用highlight()方法所建议的方式实现了高亮显示选定单元格,该方法使用2像素的红色边框包围单元格。这在Chrome上非常有效,但我需要在IE中使用轮廓。我查看了joint.css,他们注意到轮廓在IE中不起作用,所以他们所做的是在突出显示单元格时更改不透明度。这对用户来说并不那么方便,因为选中单元格时会显示为禁用状态

我如何实现高亮显示,使单元格被轮廓包围,就像在Chrome中一样?如有任何想法/建议,将不胜感激

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高亮显示已重构。CSS
outline
属性不再使用。有一个模拟形状边界的SVGPath元素,直接附加到cellView。有关更多信息,请参见此。

您可以发布一个肯定的消息吗!更新我的帖子:)