Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/401.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 基于未按预期工作的选定/活动对象显示控件_Javascript_Fabricjs - Fatal编程技术网

Javascript 基于未按预期工作的选定/活动对象显示控件

Javascript 基于未按预期工作的选定/活动对象显示控件,javascript,fabricjs,Javascript,Fabricjs,我遇到了一个问题,如果我从我的计算机添加一个图像,单击它,然后单击它旁边的相应控件将不显示。如果我只需单击IText,它就会工作。如果我添加了一个图像,点击它,点击关闭图像,然后点击IText,它就工作了;但当我选择一个图像,然后选择IText时,情况就不一样了 当选择IText时,我将如何显示适用的文本+删除,以及仅当选择图像时才显示删除;因为它不需要文本控件 //从本地添加图像 var canvas=newfabric.canvas'c'; //显示/隐藏控件 canvas.on'obje

我遇到了一个问题,如果我从我的计算机添加一个图像,单击它,然后单击它旁边的相应控件将不显示。如果我只需单击IText,它就会工作。如果我添加了一个图像,点击它,点击关闭图像,然后点击IText,它就工作了;但当我选择一个图像,然后选择IText时,情况就不一样了

当选择IText时,我将如何显示适用的文本+删除,以及仅当选择图像时才显示删除;因为它不需要文本控件

//从本地添加图像 var canvas=newfabric.canvas'c'; //显示/隐藏控件 canvas.on'object:selected',function e{ document.getElementById'trash'.hidden=false; document.getElementById'forward'。hidden=false; document.getElementById'back'。hidden=false; 如果e.target.type=='i-text'{ document.getElementById'textControls'。hidden=false; } }; canvas.on'before:selection:cleared',函数E{ document.getElementById'trash'。hidden=true; document.getElementById'forward'。hidden=true; document.getElementById'back'。hidden=true; 如果e.target.type=='i-text'{ document.getElementById'textControls'。hidden=true; } }; document.getElementById'file'.addEventListenerchange,function{ var file=e.target.files[0]; var reader=新文件读取器; reader.onload=functionf{ var数据=f.target.result; fabric.Image.fromURLdata,函数img{ var oImg=img.set{ 左:0,, 排名:0, 角度:00,,
笔划:“f0f0”,//如果您使用的是版本>2.x.x,则要获取选定对象,请使用事件

canvas.on('selection:created', onObjectSelected);
canvas.on('selection:updated', onObjectSelected);
命名setter/getter在构建中是可选的,所以不要使用

演示

//从本地添加图像 var canvas=newfabric.canvas'c'; var选择对象; //显示/隐藏控件 canvas.on'selection:created',onObjectSelected; canvas.on'selection:updated',onObjectSelected; 函数onObjectSelectede{ selectedObject=e.已选[0]; document.getElementById'trash'.hidden=false; document.getElementById'forward'。hidden=false; document.getElementById'back'。hidden=false; 如果选择Object.type=='i-text'{ document.getElementById'textControls'。hidden=false; }否则 document.getElementById'textControls'。hidden=true; }; canvas.on'selection:cleared',函数E{ selectedObject=null; document.getElementById'trash'。hidden=true; document.getElementById'forward'。hidden=true; document.getElementById'back'。hidden=true; document.getElementById'textControls'。hidden=true; }; document.getElementById'file'.addEventListenerchange,function{ var file=e.target.files[0]; var reader=新文件读取器; reader.onload=functionf{ var数据=f.target.result; fabric.Image.fromURLdata,函数img{ var oImg=img.set{ 左:0,, 排名:0, 角度:00,,
stroke:'F0',//谢谢。这很接近,但是如果您1添加文本,2从计算机中添加图像,3选择添加的文本,4然后选择图像,文本控件将保持不变。仅当文本为selected@codeforever你们正在创建一组文本和图像吗?嗨,不,我的意思是分开选择它们。看起来还是这样同样,如果你选择文本,控件会显示出来,但是如果你选择了你添加的图像,文本控件会消失,但不会消失。就这样!干杯。