[英]Add random value from array to a css property
HTML代码:
<h1><a>Minimalist Website</a></h1>
<h1><a>Fast Food</a></h1>
JavaScript代码:
var colors = ['#000','#111', '#222'];
var random_color = colors[Math.floor(Math.random() * colors.length)];
document.querySelector('#menu h1 a:hover').style.cssText= 'text-shadow: random_color + 0px 0px 1px, + random_color + 0px 0px 1px';
我正在尝试做的是:
(1)从数组生成颜色。
(2)将颜色放入文字阴影中。
发生的是从数组获取的random_colour值未显示。 我看过CSS,没有发现任何文字阴影的迹象。
您的选择器是错误的,此外还有其他一些问题:
#menu
我不能在HTML见。 querySelectorAll
来获取多个元素。 :hover
,但是hover是某种事物的状态,而不是您可以选择作为DOM查询的某种事物的状态。 试试这个代码:
var colors = ['red','green', 'blue'];
var random_color = colors[Math.floor(Math.random() * colors.length)];
var items = document.querySelectorAll('h1 a');
items.forEach(item => {
item.style.cssText = 'text-shadow: ' + random_color + ' 10px 10px 0px';
});
我更改了一些内容以使其更清楚,但希望您可以使其适应您的需求。
您可以在此处使用它: https : //jsfiddle.net/fy0893mm/
另外,如果您希望每个项目都是自己的随机颜色,只需将随机变量移至项目循环中即可。
var colors = ['red','green', 'blue'];
var items = document.querySelectorAll('h1 a');
items.forEach(item => {
var random_color = colors[Math.floor(Math.random() * colors.length)];
item.style.cssText = 'text-shadow: ' + random_color + ' 10px 10px 0px';
});
另外,由于您尝试选择:hover
,这让我想知道是否要在元素的悬停时发生,如果是这样,请尝试将此代码附加到每个项目适当的事件侦听器。
var colors = ['red','green', 'blue', 'yellow', 'pink', 'orange'];
var random_color = colors[Math.floor(Math.random() * colors.length)];
var items = document.querySelectorAll('h1 a');
items.forEach(item => {
item.addEventListener('mouseover', function() {
item.style.cssText = 'text-shadow: ' + random_color + ' 10px 10px 0px';
});
item.addEventListener('mouseout', function() {
item.style.cssText = 'text-shadow: none';
});
});
document.querySelector('#menu h1 a:hover').style.cssText= 'text-shadow: ' + random_color + '0px 0px 1px, ' + random_color + '0px 0px 1px';
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.