gpt4 book ai didi

javascript - 寻找等同于以下 jQuery 解决方案的 javascript 解决方案

转载 作者:太空宇宙 更新时间:2023-11-04 14:12:56 24 4
gpt4 key购买 nike

我在页面上有几个按钮,我正在尝试动态更改颜色(背景)

我写了一个 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";

最佳答案

按照MT0的思路,给iframe加个stylesheet就可以了?

function applyCss(iframe,stylesheet_url){
var link = document.createElement("link")
link.href = "style.css";
link.rel = "stylesheet";
link.type = "text/css";
iframe.document.body.appendChild(cssLink);
}

[编辑] 对于线性渐变,您应该使用 background-image 而不是 background-color 并将值设置为 css 函数

obj.style.backgroundImage = "-webkit-linear-gradient(left,blue,blue)";

整个脚本:

function apply_Color(iframe,CSSParams){

var buttonColor = CSSParams.buttonColor;
var buttonHoverBackgroundColor = CSSParams.buttonHoverBackgroundColor;

var els = iframe.document.getElementsByClassName('.search-button');

for(var i = 0; i<els.length; i++){
els[i].style.background = buttonColor;
els[i].style.backgroundImage = '-moz-linear-gradient(top,' + buttonColor + ' 0%,' + buttonColor + ' 100%)';
els[i].style.backgroundImage = '-webkit-gradient(linear, left top, left bottom, color-stop(0%, ' + buttonColor + '), color-stop(100%, ' + buttonColor + '))';
els[i].style.backgroundImage = '-webkit-linear-gradient(top, ' + buttonColor + ' 0%, ' + buttonColor + ' 100%)';
els[i].style.backgroundImage = '-o-linear-gradient(top, ' + buttonColor + ' 0%, ' + buttonColor + ' 100%)';
els[i].style.backgroundImage = '-ms-linear-gradient(top, ' + buttonColor + ' 0%, ' + buttonColor + ' 100%)';
els[i].style.backgroundImage = 'linear-gradient(top, ' + buttonColor + ' 0%, ' + buttonColor + ' 100%)';
}
// same goes for hover
}

关于javascript - 寻找等同于以下 jQuery 解决方案的 javascript 解决方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20600110/

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