【发布时间】:2013-12-16 06:22:51
【问题描述】:
我在页面上有几个按钮,我正在尝试动态更改颜色(背景)
我编写了一个 jQuery,它可以在所有浏览器上运行,并根据传递给函数的 CSS 参数更改背景颜色。
我正在寻找一种更改按钮颜色的 javascript 方法,该方法应该适用于所有浏览器,类似于下面的 jQuery 实现。
function apply_Color(iframe,CSSParams){
var buttonColor = CSSParams.buttonColor;
var buttonHoverBackgroundColor = CSSParams.buttonHoverBackgroundColor;
jQuery(iframe).contents().find('.search-button').css({
'background': buttonColor,
'background-image': '-moz-linear-gradient(top,' + buttonColor + ' 0%,' + buttonColor + ' 100%)', /* FF3.6+*/
'background-image': '-webkit-gradient(linear, left top, left bottom, color-stop(0%, ' + buttonColor + '), color-stop(100%, ' + buttonColor + '))', /* Chrome,Safari4+ */
'background-image': '-webkit-linear-gradient(top, ' + buttonColor + ' 0%, ' + buttonColor + ' 100%)', /* Chrome10+,Safari5.1+ */
'background-image': '-o-linear-gradient(top, ' + buttonColor + ' 0%, ' + buttonColor + ' 100%)', /* Opera 11.10+ */
'background-image': '-ms-linear-gradient(top, ' + buttonColor + ' 0%, ' + buttonColor + ' 100%)', /* IE10+ */
'background-image': 'linear-gradient(top, ' + buttonColor + ' 0%, ' + buttonColor + ' 100%)'/* W3C */
});
jQuery(iframe).contents().find('.p-search-button').hover(function() {
jQuery(this).css
({
'background': buttonHoverBackgroundColor ,
'background-image': '-moz-linear-gradient(top,' + buttonHoverBackgroundColor + ' 0%,' + buttonHoverBackgroundColor + ' 100%)', /* FF3.6+*/
'background-image': '-webkit-gradient(linear, left top, left bottom, color-stop(0%, ' + buttonHoverBackgroundColor + '), color-stop(100%, ' + buttonHoverBackgroundColor + '))', /* Chrome,Safari4+ */
'background-image': '-webkit-linear-gradient(top, ' + buttonHoverBackgroundColor + ' 0%, ' + buttonHoverBackgroundColor + ' 100%)', /* Chrome10+,Safari5.1+ */
'background-image': '-o-linear-gradient(top, ' + buttonHoverBackgroundColor + ' 0%, ' + buttonHoverBackgroundColor + ' 100%)', /* Opera 11.10+ */
'background-image': '-ms-linear-gradient(top, ' + buttonHoverBackgroundColor + ' 0%, ' + buttonHoverBackgroundColor + ' 100%)', /* IE10+ */
'background-image': 'linear-gradient(top, ' + buttonHoverBackgroundColor + ' 0%, ' + buttonHoverBackgroundColor + ' 100%)'/* W3C */
});
});
}
我尝试过javascript方式,没有运气;请帮忙。如果我的问题不清楚,请发表评论。我会编辑。我正在寻找可以为按钮(背景颜色)采用线性渐变的语法。
obj.style.backgroundColor["-webkit-linear-gradient"] = "blue";
obj.style.backgroundColor = "red";
【问题讨论】:
-
为什么要删除 jQuery?
-
@Jerska 一个网站的要求,没有jQuery。项目需要的是没有 jQuery :(
-
是否可以在生成 iframe 时直接将 CSS 添加到 iframe,而不是尝试使用 JavaScript 动态应用它?
-
@Jerska jquery 是一个相当重的库,它做了很多与项目相关的不必要的事情,以保持跨浏览器的适用性,并且在大多数项目中明确不需要。
-
@MT0 是的!只需将链接标签附加到 iframe 的头部元素
标签: javascript jquery css