javascript - 如何使用javascript更新css过滤器中的明亮值而不删除其他过滤器属性。?

标签 javascript html css reactjs filter

我正在尝试使用 javascript selectedItem.style.filter 应用 css 滤镜效果。 应用过滤器属性亮度时,另一个属性对比度被删除。

下面是代码:

$('.brightness').on('input', function(){
  var bright = $('.brightness').val();
  var selectedItem = document.getElementsByClassName('box')[0];
  selectedItem.style.filter = "brightness("+bright+"%)";
});

$('.contrast').on('input', function(){
  var contrast = $('.contrast').val();
  var selectedItem = document.getElementsByClassName('box')[0];
  selectedItem.style.filter = "contrast("+contrast+"%)";
});

如果我修改如下代码,我只能在输入上获得一个属性(亮度或对比度),那么我如何仅更新亮度而不更新对比度

selectedItem.style.filter = "brightness("+bright+"%) contrast("+contrast+"%)";

jsfiddle中的示例代码.

注意:我在reactjs中使用javascript代码selectedItem.style.filter来更新过滤器值。 这就是为什么我需要 JavaScript 代码,而不是 jquery 代码。

最佳答案

将两个值组合到一个事件中会更容易。只需将 .slider 类添加到两个 slider 即可。

$('.slider').on('input', function () {
    var bright = $('.brightness').val();
    var contrast = $('.contrast').val();

    var selectedItem = document.getElementsByClassName('box')[0];
    selectedItem.style.filter = "contrast("+contrast+"%) " + "brightness("+bright+"%)";
});

这适用于亮度和对比度。

关于javascript - 如何使用javascript更新css过滤器中的明亮值而不删除其他过滤器属性。?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46425884/

相关文章:

javascript - if else 子句中 undefined object 的未定义属性

javascript - Nodejs 请求返回行为不当

javascript - 通过选择一个下拉列表显示两个不同的值

html - Apache + HTML5 Video Tag - 哪里出了问题?

用于垂直文本滚动破坏页面布局的 Javascript

javascript - 我想提取重复项中的最大值

javascript - 带有 Sqrt、COS、SIN、log 和后退按钮的在线计算器

jquery - 每个 HTML5 占位符属性有两种不同的样式?

javascript - 如何循环 CSS3 填充动画?

asp.net - 我应该如何组织我的 ASP.Net 主题和通用 CSS 文件