下拉式不适用于面料js的物化设计

问题描述:

我正在使用物化设计和面料js库。我想在画布中更改文字的字体样式。在实现设计之前,我使用了bootstrap,然后它工作正常。但现在我正在使用bootstrap的物化设计位置,然后我的下拉式不起作用。下拉式不适用于面料js的物化设计

无实质性设计(下拉工作正常)。

var canvas = new fabric.Canvas('canvas'); 
 
$('#font').change(function(){ 
 
    var obj = canvas.getActiveObject(); 
 
    if(obj){ 
 
    obj.setFontFamily($(this).val()); 
 
    } 
 
    canvas.renderAll(); 
 
}); 
 

 
function addText() { 
 
    var oText = new fabric.IText('Tap and Type', { 
 
    left: 100, 
 
    top: 100 , 
 
    }); 
 

 
    canvas.add(oText); 
 
    canvas.setActiveObject(oText); 
 
    $('#fill, #font').trigger('change'); 
 
    oText.bringToFront(); 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<script src="https://rawgit.com/kangax/fabric.js/master/dist/fabric.min.js"></script> 
 
<button class="btn" onclick="addText()">Add Custom Text</button> 
 
<select id="font"> 
 
    <option>arial</option> 
 
    <option>tahoma</option> 
 
    <option>times new roman</option> 
 
</select> 
 
<br /> 
 
<canvas id="canvas" width="750" height="550" style="border:1px solid #333"></canvas>

与物化设计(下拉不工作)。

var canvas = new fabric.Canvas('canvas'); 
 
$('#font').change(function(){ 
 
    var obj = canvas.getActiveObject(); 
 
    if(obj){ 
 
    obj.setFontFamily($(this).val()); 
 
    } 
 
    canvas.renderAll(); 
 
}); 
 

 
function addText() { 
 
    var oText = new fabric.IText('Tap and Type', { 
 
    left: 100, 
 
    top: 100 , 
 
    }); 
 

 
    canvas.add(oText); 
 
    canvas.setActiveObject(oText); 
 
    $('#fill, #font').trigger('change'); 
 
    oText.bringToFront(); 
 
}
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.97.6/css/materialize.min.css"> 
 
<!-- Compiled and minified JavaScript --> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.97.6/js/materialize.min.js"></script> 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<script src="https://rawgit.com/kangax/fabric.js/master/dist/fabric.min.js"></script> 
 

 
<div class="container"> 
 
<div class="row"> 
 
<div class="col s12"> 
 

 
<button class="btn" onclick="addText()">Add Custom Text</button> 
 
<select id="font"> 
 
    <option>arial</option> 
 
    <option>tahoma</option> 
 
    <option>times new roman</option> 
 
</select> 
 
<br /> 
 
<canvas id="canvas" width="750" height="550" style="border:1px solid #333"></canvas> 
 

 
</div> 
 
</div> 
 
</div>

我想使用布JS兑现的设计。我想在画布中更改文字的字体样式。

你必须通过物化来初始化你的选择框。

$(document).ready(function() { 
    $('#font').material_select(); 
    }); 

$(document).ready(function() { 
 
    $('#font').material_select(); 
 
    }); 
 

 
var canvas = new fabric.Canvas('canvas'); 
 
$('#font').change(function(){ 
 
    var obj = canvas.getActiveObject(); 
 
    if(obj){ 
 
    obj.setFontFamily($(this).val()); 
 
    } 
 
    canvas.renderAll(); 
 
}); 
 

 
function addText() { 
 
    var oText = new fabric.IText('Tap and Type', { 
 
    left: 100, 
 
    top: 100 , 
 
    }); 
 

 
    canvas.add(oText); 
 
    canvas.setActiveObject(oText); 
 
    $('#fill, #font').trigger('change'); 
 
    oText.bringToFront(); 
 
}
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.97.6/css/materialize.min.css"> 
 
<!-- Compiled and minified JavaScript --> 
 

 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.97.6/js/materialize.min.js"></script> 
 
<script src="https://rawgit.com/kangax/fabric.js/master/dist/fabric.min.js"></script> 
 

 
<div class="container"> 
 
<div class="row"> 
 
<div class="col s12"> 
 

 
<button class="btn" onclick="addText()">Add Custom Text</button> 
 
<select id="font"> 
 
    <option>arial</option> 
 
    <option>tahoma</option> 
 
    <option>times new roman</option> 
 
</select> 
 
<br /> 
 
<canvas id="canvas" width="750" height="550" style="border:1px solid #333"></canvas> 
 

 
</div> 
 
</div> 
 
</div>