Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/402.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/38.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 更改对象属性时fabric js textBakgroundColor未覆盖整个文本_Javascript_Css_Canvas_Fabricjs - Fatal编程技术网

Javascript 更改对象属性时fabric js textBakgroundColor未覆盖整个文本

Javascript 更改对象属性时fabric js textBakgroundColor未覆盖整个文本,javascript,css,canvas,fabricjs,Javascript,Css,Canvas,Fabricjs,我正在使用它在画布上创建模板。但面对一个有线问题 我在画布上添加了一个Textbox对象,当我试图更改Textbox的fontFamily和fontWeight时,有时textBackgroundColor无法覆盖整个文本 我创建了一个展示此问题的示例 复制步骤: 选择文本框对象,将fontFamily从Merriweather更改为Lato 然后将fontWeight从普通更改为粗体 注意:对于特定字体(如Merriweather)而不是 当然,有时也行,但不是每次都行 当字体加载不正确时会发

我正在使用它在画布上创建模板。但面对一个有线问题

我在画布上添加了一个Textbox对象,当我试图更改Textbox的fontFamily和fontWeight时,有时textBackgroundColor无法覆盖整个文本

我创建了一个展示此问题的示例

复制步骤: 选择文本框对象,将fontFamily从Merriweather更改为Lato 然后将fontWeight从普通更改为粗体 注意:对于特定字体(如Merriweather)而不是 当然,有时也行,但不是每次都行


当字体加载不正确时会发生这种情况。 fabricJs请求字体粗体,即未准备就绪,甚至常规字体也未准备就绪,并使用回退进行渲染。 当字体准备就绪时,字体测量已经完成,并且是错误的

您必须使用字体加载器正确加载字体。 检查fontFaceObeserver,非常易于使用

在下面的代码片段中,我只使用了一个非常粗糙的setTimeout和2段来强制浏览器提前加载字体

var canvas=newfabric.canvas'canvas'; setTimeoutfunction{ text=new fabric.textbox单击此处两次进行编辑{ 宽度:300, 尺寸:25, fontFamily:“Merriweather”, textAlign:'中心', textBackgroundColor:'000', 填写:'ffc107', }; canvas.addtext; window.toggleBoldText=函数{ var obj=canvas.getActiveObject; ifobj{ 如果对象获取“fontWeight”=“正常”{ 对象设置“字体权重”、“粗体”; }否则{ 对象设置“fontWeight”、“normal”; } canvas.renderal; }否则{ 选择要添加字体权重的文本对象; } } window.toggleFontFamily=函数{ var obj=canvas.getActiveObject; ifobj{ 如果对象获取“fontFamily”==“Merriweather”{ 对象集“fontFamily”、“Lato”; }否则{ 对象集“fontFamily”、“Merriweather”; } canvas.renderal; }否则{ 选择要添加字体族的文本对象; } } }, 3000; @导入url//fonts.googleapis.com/css?family=Merriweather%7CLato; .帆布容器{ 边框:1px带点ccc; } 切换字体系列 切换粗体 Merri boldMerri正常值
这在新版本中已被修复,我猜,@Durga它未修复,我使用的是最新版本2.0.0-rc.4检查小提琴我postedi检查过它,它不工作,尝试更改fontFamily您可以看到问题。