如何用按钮更改网页上的字体颜色?

时间:2017-03-20 18:08:22

标签: javascript css button

我想知道当有人点击按钮时,是否有人可以告诉我如何更改网页的字体颜色。

我有背景功能但它似乎不适用于文本。

到目前为止,这是我的代码:

<div class="dropdown">
<button onclick="toggleBackgroundDropdown()" 
class="dropdownButton">Background</button>
<div id="backgroundDropdown" class="backgroundDropdown">
<a class="colorbutton">Red</a>
<a class="colorbutton">Yellow</a>
<a class="colorbutton">Blue</a>
<a class="colorbutton">White</a>
</div>

<button onclick="toggleTextColorDropdown()" class="dropdownButton">Text 
Color</button>
<div id="textColorDropdown" class="textColorDropdown">
<a class="textcolorbutton">Red</a>
<a class="textcolorbutton">Yellow</a>
<a class="textcolorbutton">Blue</a>
<a class="textcolorbutton">White</a>
</div>

</div>

<script>
function toggleBackgroundDropdown() 
{   
document.getElementById("backgroundDropdown").classList.toggle("show");
}

function toggleTextColorDropdown() 
{   
document.getElementById("textColorDropdown").classList.toggle("show");
}

function changeColor()
{
var x = event.clientX; 
var y = event.clientY;
var elementMouseIsOver = document.elementFromPoint(x, y);

document.body.style.backgroundColor = elementMouseIsOver.text;
}

function changeTextColor()
{
var x = event.clientX; 
var y = event.clientY;
var elementMouseIsOver = document.elementFromPoint(x, y);

var a = document.getElementById('a');
a.style.color = elementMouseIsOver.text;
}

window.onload = function(event)
{
var colorbuttons = document.getElementsByClassName("colorbutton");
for (var i = 0; i < colorbuttons.length; i++) 
{   
    colorbuttons[i].addEventListener('click', changeColor, false);
}

var textcolorbuttons = document.getElementsByClassName("textColorButton");
for (var i = 0; i < textcolorbuttons.length; i++) 
{   
    textcolorbuttons[i].addEventListener('click', changeTextColor, false);
}
}

window.onclick = function(event)
{
if (event.target.className == "colorbutton")
{
    toggleBackgroundDropdown();
}
else if (event.target.className == "textcolorbutton")
{
    toggleTextColorDropdown();
}
}
</script>

4 个答案:

答案 0 :(得分:0)

为按钮提供backgroundChange等按钮的唯一ID。然后使用以下代码

$("#backgroundChange").click(function(){
   if($(this).css('background-color')=='lightgrey')
         $(this).css('background-color', 'red');
   else {
         $(this).css('background-color', 'lightgrey);
   }
});

同样,您可以切换班级

$("#backgroundChange").click(function () {
        $(this).toggleClass('backgroundDropdown');
});

答案 1 :(得分:0)

不需要jquery,有两种方法可以做到这一点:

  1. 用diff颜色定义两个classname,调用函数来改变class onCLick
    <p onclick="function(event){event.target.className = your new class"></p>
  2. 改变你的CSS风格
    <p onclick="function(event){event.target.style.backgroundColor = 'read'}"></p>

答案 2 :(得分:0)

更好的方法是添加/更改元素的类,i。即身体,并通过CSS做样式。更灵活,更强大。

答案 3 :(得分:0)

如果您尝试更改整个页面上的文本颜色并且它可以是任意颜色(您可以使用其他人建议的类,但只能使用非常有限的一组选项),例如选择它<input type=color>,仅使用document.body.style.color = something会遇到一些麻烦。除非你在任何地方都添加了color: inherit

更彻底(虽然有点笨重,因为API设计)方法是更改​​样式表中应用颜色的规则,带有大选择器的单个规则可以确保您影响您想要的每个元素:

const theRuleIndex = // here's the hard part, find the correct rule
document.styleSheets[0].cssRules[theRuleIndex].style.color = yourColor