gpt4 book ai didi

javascript - 有选择地添加和删除相同 CSS 属性的值

转载 作者:行者123 更新时间:2023-12-04 08:06:21 24 4
gpt4 key购买 nike

我正在使用 jquery 创建一个开放类型功能测试器,并希望让用户能够看到同时应用的多个开放类型功能。
第一个下拉列表将属性设置为 font-feature-settings: ‘frac’ 1; ,他的第二个下拉列表将属性设置为 font-feature-settings: ‘smcp’ 1;目前,如果两个下拉菜单都处于事件状态,一个会覆盖另一个的指令。我需要的是,如果它们同时处于事件状态,则该属性设置为 font-feature-settings: ‘frac’ 1, ‘smcp’ 1;因此,如果只有其中之一被停用,则只会从属性中删除相应的值。
注意:我知道当我从 Google 字体站点链接字体时 Open Type 功能不起作用,因此我一直在安装它的情况下对其进行测试。
提前致谢。

.font-tester{
color: #000;
line-height: normal;
width: 100%;
word-wrap: break-word;
padding-top: 30px;
}
<style> @import url('https://fonts.googleapis.com/css2?family=EB+Garamond&display=swap'); </style>

<div class="tester-container">

<select id="tester-figures">
<option value="none" selected>Default</option>
<option value="'frac' 1">Fractions</option>
</select>

<select id="tester-smcp">
<option value="none" selected>Default</option>
<option value="'smcp' 1">Small caps</option>
</select>

<div class="font-tester" contenteditable="true" spellcheck="false" style="font-family: 'EB Garamond', serif; font-size:65pt;">
abc 123
</div>

</div>

<script>
$("#tester-figures").change(function() {
$('.font-tester').css("font-feature-settings", $(this).val());
});

$("#tester-smcp").change(function() {
$('.font-tester').css("font-feature-settings", $(this).val());
});

</script>

最佳答案

有很多方法可以解决一个任务。另外这里是一个替代解决方案,它具有越来越少的简单化和代码。
它仅适用于将更改事件添加到两个选择的一个函数。在更改时,它从两个选择中读出实际值,并根据两个选择的实际值构建一个简单的 css 字符串。

$('#tester-figures').add('#tester-smcp').each( function(){
const $this = $(this);
$this.change(function(){

let actualVals = {};
actualVals.TesterFigures = $('#tester-figures').val();
actualVals.TesterSmcp = $('#tester-smcp').val();

let myVal = '';

if('none' == actualVals.TesterFigures){
myVal = 'none' == actualVals.TesterSmcp ? '' : actualVals.TesterSmcp;
}else {
myVal = 'none' == actualVals.TesterSmcp ? actualVals.TesterFigures : actualVals.TesterFigures + ', ' + actualVals.TesterSmcp;
}

$('.font-tester').css("font-feature-settings", myVal);

});

});

注意:我没有使用过 css 属性 font-feature-settings然而。所以我对这个特殊元素没有任何经验。我注意到的是,选择中的字符串(即 'frac' 1 )发生了变化。将 css 添加到 html 元素时,内部引号和数字会丢失。但是没有它们,这种风格仍然有效。如果你只使用 frac,也许你喜欢检查它是否有效和 smcp在您的选择中。在实际 FF 中它有效;-)

关于javascript - 有选择地添加和删除相同 CSS 属性的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66203350/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com