jquery - 将 jQuery 变量放入 css 渐变中

标签 jquery variables transparency rgb gradient

我有这段代码,可以从十六进制代码生成 RGB 值。

            <script>
            var s = "<?php the_field('phpvariableforcolour'); ?>";
            var patt = /^#([\da-fA-F]{2})([\da-fA-F]{2})([\da-fA-F]{2})$/;
            var matches = patt.exec(s);
            var rgb = "rgb("+parseInt(matches[1], 16)+","+parseInt(matches[2], 16)+","+parseInt(matches[3], 16)+");";
            alert(rgb);
            </script>

然后我想将 rgb 变量(当前位于警报中)应用到内联 css 样式,其中 RGB 值出现,例如rgba(0,0,0,0.0) : -

            background-image: -webkit-linear-gradient(@origin, rgba(0,0,0,0.0), rgba(0,0,0,0.2));
            background-image: -moz-linear-gradient(@origin, rgba(0,0,0,0.0), rgba(0,0,0,0.2));
            background-image: -o-linear-gradient(@origin, rgba(0,0,0,0.0), rgba(0,0,0,0.2));
            background-image: -ms-linear-gradient(@origin, rgba(0,0,0,0.0), rgba(0,0,0,0.2));
            background-image: linear-gradient(@origin, rgba(0,0,0,0.0), rgba(0,0,0,0.2));

我找不到办法做到这一点,使用 jQuery 我可以添加背景图像,但不是所有这些。

最佳答案

您可以在 jQuery 中使用“.css()”函数。

http://jsbin.com/vukize/1/edit?js,output

我使用的 HTML:

<!DOCTYPE html>
<html>
<head>
  <script src="//code.jquery.com/jquery-2.1.1.min.js"></script>
  <meta charset="utf-8">
  <title>jQuery inline RGB Values</title>
</head>
<body>
  <div id="colorObject"></div>
</body>
</html>

jQuery:

var rgba = "rgba(110,131,37,0.5)";
var rgbaTwo = "rgba(10,131,37,1)";

$('#colorObject').css({
  'background' : '-webkit-linear-gradient(left,' + rgba + ', ' + rgbaTwo + ')',
  'background' : '-moz-linear-gradient(left,' + rgba + ', ' + rgbaTwo + ')',
  'background' : '-o-linear-gradient(left,' + rgba + ', ' + rgbaTwo + ')',
  'background' : '-ms-linear-gradient(left,' + rgba + ', ' + rgbaTwo + ')',
  'background' : 'linear-gradient(to right,' + rgba + ', ' + rgbaTwo + ')'
});

编辑: 看起来有几个人比我先一步。 ;)

双重编辑: 因此,问题似乎出在分号上,如果在 css(); 函数中使用分号,则不应该出现分号。

更改:

var rgb = "rgb("+parseInt(matches[1], 16)+","+parseInt(matches[2], 16)+","+parseInt(matches[3], 16)+");";

至:

var rgb = "rgb("+parseInt(matches[1], 16)+","+parseInt(matches[2], 16)+","+parseInt(matches[3], 16)+")";

现在将其用作 css(); 函数中的变量就可以了。

关于jquery - 将 jQuery 变量放入 css 渐变中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26551616/

相关文章:

javascript - 如何使用JSONP?

crystal-reports - 向 Crystal Reports 添加具有透明度的图像

java - 如何从 Sprite 表中删除背景?

Bash:查找传递的所有参数的长度

PHP 类 : Global variable as property in class

c++ - 为什么文字在 C++ 中被视为表达式?

opengl-es - iPhone OpenGL ES : Applying a Depth Test on Textures that have transparent pixels for 2D game

javascript - 如何使用 JS 制作改变网格尺寸的按钮?

JQuery for slidedown() 中的 css 类名循环

jquery - jquery/javascript中如何同时获取鼠标滚轮信息和鼠标位置