function textHighlight(str1, str2) {
str1 = str1.text;
str2 = str2.text;
str1 = str1.split(" ");
let str = str1.map(subStr => {
if (str2.includes(subStr)) {
return `<span onmouseout=\"this.style=''; \" onMouseOver=\"this.style = 'color:blue'\">${subStr}</span>`;
} else {
return subStr;
}
});
return str.join(" ");
}
var foundQuestion = findQuestion('"' + eachQuestion.textContent + '"'); // Возвращает вопрос в виде строки string
eachQuestion.innerHTML = textHighlight(eachQuestion,foundQuestion); // Делает подсветку слов в eachQuestion
Однако в этом коде делается подсветка при наведении на каждое слово, а мне нужно так:
При наведении на блок, подсвечивались все встречаемые слова (а не каждое по отдельности)
Вабще я придумал вот что: Присвоить класс всем нужным span элементам:
return `<span class="podsvetka">${subStr}</span>`;
Однако я столкнулся с такой проблемой, что мне нужно стили присваивать прямо в Javascript-коде То есть мне нужно выбрать из элемента eachQuestion все элементы с классом .podsvetka и установить им style="color:blue"
Помогите
не туда копаете.
.text:hover > span.podsvetka { color: red; }
<div class="text">
<span class="podsvetka">Lorem</span> ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum <span class="podsvetka">felis</span> eu pede mollis pretium.
</div>
В CSS
существует псевдокласс :hover
, который определяет стиль элемента при наведении на него курсора мыши, но при этом элемент еще не активирован, иными словами кнопка мыши не нажата Статья о :hover
*, *:before, *:after {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
body {
margin: 0;
font-size: 16px;
font-family: 'Open Sans', sans-serif;
}
img {
display: block;
max-width: 100%;
height: auto;
}
.wrapper {
display: -webkit-flex;
display: -moz-flex;
display: -ms-flex;
display: -o-flex;
display: flex;
}
.item {
display: -webkit-flex;
display: -moz-flex;
display: -ms-flex;
display: -o-flex;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
text-align: center;
max-width: 400px;
margin: 20px 1.5% 20px 0;
padding: 30px 20px;
position: relative;
font-size: 20px;
background-color: rgb(221, 221, 221);
transition: border-radius .2s linear;
cursor: pointer;
overflow: hidden;
min-width: 32%;
}
.item:last-child {
margin-right: 0;
}
.item__title {
font-weight: bold;
margin-bottom: 15px;
}
.description {
display: -webkit-flex;
display: -moz-flex;
display: -ms-flex;
display: -o-flex;
display: flex;
width: 100%;
}
.item__description {
margin-bottom: 15px;
min-height: 81px;
opacity: 0;
transition: opacity .3s linear,
height .3s linear,
transform .3s linear,
width .3s linear;
overflow: hidden;
width: 1px;
height: 0;
transform: scale(0.1, 0.1);
font-size: 2vw;
}
.item__description__magic {
width: 50px;
height: 50px;
position: absolute;
top: 25%;
left: 10%;
border-radius: 50%;
background-color: black;
transition: transform .2s linear;
}
.item img {
transition: .5s filter ease-in-out;
}
.item:hover {
border-radius: 20px;
}
.item:hover .item__description__magic {
transform: scale(0);
}
.item:hover .item__description {
width: 348px;
transform: scale(1, 1);
min-height: 81px;
opacity: 1;
}
.item:hover img {
filter: grayscale(100%);
}
@media (min-width: 1000px) {
.item__description__magic {
top: 18%;
}
}
<div class="wrapper">
<div class="item">
<div class="item__title">Заголовок</div>
<div class="description">
<div class="item__description__magic"></div>
<div class="item__description">
Большоое Очеееень Описание
Большоое Очеееень Описание
Большоое Очеееень Описание
</div>
</div>
<div class="item__img">
<img src="https://picsum.photos/500/250">
</div>
</div>
<div class="item">
<div class="item__title">Заголовок</div>
<div class="description">
<div class="item__description__magic"></div>
<div class="item__description">
Большоое Очеееень Описание
Большоое Очеееень Описание
Большоое Очеееень Описание
</div>
</div>
<div class="item__img">
<img src="https://picsum.photos/500/250">
</div>
</div>
<div class="item">
<div class="item__title">Заголовок</div>
<div class="description">
<div class="item__description__magic"></div>
<div class="item__description">
Большоое Очеееень Описание
Большоое Очеееень Описание
Большоое Очеееень Описание
</div>
</div>
<div class="item__img">
<img src="https://picsum.photos/500/250">
</div>
</div>
</div>
Если хотите мучаться на JavaScript:
function start() {
let wrapper = document.querySelectorAll('.wrapper');
let childik = document.querySelectorAll('.childik');
for (let i = 0; i < wrapper.length; i++) {
wrapper[i].style.cssText = `
max-width: 1000px;
margin: 0 auto;
display: -webkit-flex;
display: -moz-flex;
display: -ms-flex;
display: -o-flex;
display: flex;
`;
}
for (let i = 0; i < childik.length; i++) {
childik[i].style.cssText = `
flex: 1;
min-height: 100px;
margin-right: 1%;
background-color: black;
transition: .4s background-color ease-in-out,
.4s flex ease-in-out;
`;
}
childik[childik.length-1].style.marginRight = '0px';
for (let i = 0; i < childik.length; i++) {
childik[i].addEventListener('mouseover', () => {
childik[i].style.backgroundColor = 'red';
childik[i].style.flex = '5';
});
childik[i].addEventListener('mouseout', () => {
childik[i].style.backgroundColor = 'black'
childik[i].style.flex = '1';
});
}
}
document.addEventListener('DOMContentLoaded', start);
<div class="wrapper">
<div class="childik">
</div>
<div class="childik">
</div>
<div class="childik">
</div>
<div class="childik">
</div>
<div class="childik">
</div>
<div class="childik">
</div>
</div>
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Надо убрать пробелы в начале и в конце строки, повторяющиеся пробелы в середине (оставить по одному) и всё кроме цифр, русских и английских...
У меня возникли проблемы с select в vue, даже в простейшем примереЯ создаю проект с помощью команды vue init webpack-simple
Есть такая проблема, что на странице spa в браузере при выключении экрана (допустим юзер смотрит на страничку в браузере, но нажал кнопку выключения,...
Отправляю запрос в формате x-www-form-urlencoded (заголовок явно указан), на сервере читаю $_POST и там абсолютно пусто