我想知道当有人点击按钮时,是否有人可以告诉我如何更改网页的字体颜色。
我有背景功能但它似乎不适用于文本。
到目前为止,这是我的代码:
<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>
答案 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,有两种方法可以做到这一点:
<p onclick="function(event){event.target.className = your new class"></p>
<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