【问题标题】:Changing actual css font based on select option chosen根据选择的选择选项更改实际的 css 字体
【发布时间】:2012-02-22 00:33:30
【问题描述】:

我正在编写一个页面,用户可以在其中向图像添加文本。好的,其中三个要素是:

  1. 他们可以选择一种字体
  2. 他们可以选择字体颜色
  3. 他们可以输入自己的文字。

选择选项是:

<select id="selectafont" name="selectafont" style="width: 200px;" class="required">
 <option value="null">-- Select a Font ... --</option>
 <option value="folksbold">Folks Bold</option>
 <option value="arial">Arial</option>
 <option value="tahoma">Tahoma</option>
 <option value="verdana">Verdana</option>
 <option value="comicsans">Comic Sans</option>
 <option value="ubuntu">Ubuntu</option>

颜色(我们使用 jscolor.com)颜色选择器。 它的元素是:

<input id="pick_a_color" class="color" value="f12b63">

我正在使用的输入元素和 js,但它是一个常规输入元素。当您键入时,会更新另一个 div 中的文本。

如何将颜色(来自颜色)选择器和字体的值添加到 DIV 的 css 中。

假设我的输入元素是:

<input name="add_my_text" class="add_my_text" id="add_my_text" type="text" placeholder="Enter your Text...">

控制它并将其附加到 div 的 JS 是:

$(document).ready(function () {
 //ad title
 $("#add_my_text").keyup(function() 
  {
  var add_my_text=$(this).val();
  $(".add_my_text").html(add_my_text);
  return false;
  });
 });

这样页面上的 div 就会使用输入元素中键入的内容进行更新。 其中的css是:

.add_my_text {
position:absolute;
left:150px;
top:40px;
font-size:18px;
 }

我想做的是在上面的 div 类中(动态改变字体颜色和字体系列。

【问题讨论】:

  • 我不确定我是否理解您的问题。当用户从上面的选择中选择/更改颜色/字体时,是否要更改每个具有 .add_my_text 类的 div 的字体+颜色?
  • stackoverflow.com/questions/622122/… 上还有另一个可能对您有用的 SO 线程(请参阅以粗体显示“概念证明”的条目)

标签: jquery


【解决方案1】:

尚未测试以下代码,但如果我了解您要查找的内容,这应该可以:

$(document).ready(function () {
  //ad title
  $("#add_my_text").keyup(function() 
  {
    var add_my_text = $(this).val();
    $(".add_my_text").html(add_my_text);
    return false;
  });
  $('#selectafont').change(function()
  {
    var selected = $(this).val();
    if (selected != "null")
    {
      $('.add_my_text').css('font-family', selected);
    }
  });
  $('#pick_a_color').change(function()
  {
      $('.add_my_text').css('color', '#'+$(this).val());
  });
});

【讨论】:

  • +1 以获得比我更完整的答案。请注意,您可以直接使用 $(this).val() 获取当前选择的值 - 您不必担心找到选择了哪个选项。
  • 谢谢先生,我不确定这个,所以我不想误导@422。我已经相应地修改了答案。
  • 衷心感谢你们的帮助,感谢@nnnnn 和 Lior Cohen
【解决方案2】:

字体是这样的:

$("#selectafont").change(function(){
   var font = $(this).val();
   if (font !== "null")
      $(".add_my_text").css("font-family", font);
});

颜色选择也类似(抱歉,我不熟悉 jscolor.com 颜色选择器)。

【讨论】:

  • 这在很大程度上依赖于客户端字体(所以我打算使用我们在服务器上拥有的字体)所以你能帮助我们指向这些字体,例如 fonts/verdana.ttf 等作为例如,通过这种方式,我们可以从服务器更新字体样式,可能基于 css 类..因此我感到困惑。关于颜色选择器..当您更改颜色时:通过萤火虫输入更新为:
  • 尝试使用:$("#pick_a_color").change(function(){ var color = $(this).val(); if (color !== "null") $(" .add_my_text").css("背景颜色", color); });不工作。
猜你喜欢
  • 1970-01-01
  • 2014-09-22
  • 2011-03-01
  • 2020-07-12
  • 1970-01-01
  • 2012-09-18
  • 2018-08-25
  • 2022-11-23
  • 1970-01-01
相关资源
最近更新 更多