可以说我有下面的CSS:CSS3 JQuery的渐变 - 有没有什么方法可以读取设置的值?
._gradient {
background-image: linear-gradient(top, #6AF 16px, #0032C8 24px);
background-image: -o-linear-gradient(top, #6AF 16px, #0032C8 24px);
background-image: -moz-linear-gradient(top, #6AF 16px, #0032C8 24px);
background-image: -webkit-linear-gradient(top, #6AF 16px, #0032C8 24px);
background-image: -ms-linear-gradient(top, #6AF 16px, #0032C8 24px);
background-image: -webkit-gradient(linear,left top,left bottom,color-stop(16px, #6AF),color-stop(24px, #0032C8));
}
有什么办法简单 JavaScript或jQuery来读取梯度位置/方向/色彩值是多少?
很明显,我可以使用正则表达式......问题就在于“背景图片”值返回不同的值取决于哪个浏览器正在访问的网站:jsFiddle example
基本上现在这使我尽量只与linear-gradient()
值(旨在做浏览器检测和应用与jQuery的CSS),但这返回值'none':jsFiddle example 2
我记住我的实际目标是动态获取这些值的脚本,而不是设置它们(尽管我愿意让解决方案要求我这样做)。
编辑澄清 我正在寻找一种方法来读取渐变中的值,即使不支持渐变。使用$.cssHooks
并不是答案,因为如果该属性没有得到支持,它将返回值'none',这对于以前没有任何好处。
请参阅此处:http://stackoverflow.com/questions/5929707/get-element-css3-background-color-gradient-with-js – spacebiker 2012-03-13 15:13:15
由于示例2中的问题不起作用,就像我说的,我正在尝试获取“颜色”,“位置”和“方向”。如果数据可用于'cssHooks',则它也将由'$(elem).css('background-image')'返回,但您无法'获得'不受支持的CSS值并且必须使用'regex'不同浏览器支持的不同类型的渐变看起来有点极端。 – 2012-03-13 15:29:24
我想这是不可能的,没有使用正则表达式,是的,你将不得不检查值是'没有',跳转到下一个可能的类型..这里可能的解决方法,可能工作: '
' 然后从元件读出的ATTR $( '._梯度 ')HTML($(' ._梯度 ')ATTR(' 线性梯度')。); 或甚至更好使用属性为每个你需要的价值,顶级,rgba等。 我希望有帮助! – spacebiker 2012-03-13 16:12:43