Создание объекта и плавное отображение на странице
Добрый день, подскажите как можно плавно отобразить блок на странице, предварительно создав его через JS.
Идея в том чтобы при наведении на ссылку создавался блок средствами JS, в котором должен отображаться адрес URL ссылки, все это я реализовал, но плавно отобразить блок не получается, как можно это сделать? по плану, все манипуляции нужно проводить с JS. <a id="mylink" href="https://www.google.com.ua/?gws_rd=ssl">hover and you will see the url for this link</a>
let url = document.links.mylink.href;
let linkHover = document.links.mylink;
linkHover.onmouseenter = function () {
divShow();
}
function divShow() {
linkHover.style.position = 'relative';
let div = document.createElement('div');
div.style.position = 'absolute';
div.style.padding = '20px';
div.style.background = '#E7E4E2';
div.style.color = '#000';
div.style.bottom = '-85px';
div.style.left = '0px';
div.style.border = '1px solid #E4E1DF';
div.style.borderRadius = '10px';
div.style.boxShadow = '0 0 15px rgba(0,0,0,.1)';
div.className = 'testDiv';
div.innerHTML = url;
linkHover.appendChild(div);
linkHover.onmouseleave = function () {
linkHover.removeChild(div);
}
}
|
Вот эту часть со стилями:
div.style.position = 'absolute'; div.style.padding = '20px'; div.style.background = '#E7E4E2'; div.style.color = '#000'; div.style.bottom = '-85px'; div.style.left = '0px'; div.style.border = '1px solid #E4E1DF'; div.style.borderRadius = '10px'; div.style.boxShadow = '0 0 15px rgba(0,0,0,.1)'; Можно упростить используя свойство cssText Вот так для удобства чтения:
div.cssText = `
position: absolute;
padding: 20px;
background: #E7E4E2;
color: #000;
bottom: -85px;
left: 0px;
border: 1px solid #E4E1DF;
border-radius: 10px;
box-shadow: 0 0 15px rgba(0,0,0,.1);
`;
Или тоже самое но уже в одну строку: div.cssText = 'position: absolute; padding: 20px; background: #E7E4E2; color: #000; bottom: -85px; left: 0px; border: 1px solid #E4E1DF; border-radius: 10px; box-shadow: 0 0 15px rgba(0,0,0,.1);'; |
TheSanches,
<!DOCTYPE html>
<html>
<head>
<title>Untitled</title>
<meta charset="utf-8">
</head>
<body>
<a id="mylink" href="https://www.google.com.ua/?gws_rd=ssl">hover and you will see the url for this link</a>
<script>
let url = document.links.mylink.href;
let linkHover = document.links.mylink;
linkHover.onmouseenter = function () {
divShow();
}
function divShow() {
linkHover.style.position = 'relative';
let div = document.createElement('div');
div.style.position = 'absolute';
div.style.padding = '20px';
div.style.background = '#E7E4E2';
div.style.color = '#000';
div.style.bottom = '-85px';
div.style.left = '0px';
div.style.border = '1px solid #E4E1DF';
div.style.borderRadius = '10px';
div.style.boxShadow = '0 0 15px rgba(0,0,0,.1)';
div.className = 'testDiv';
div.style.opacity = 0;
div.style.transition = '1s';
div.style.transform = 'scale(0)'
div.innerHTML = url;
linkHover.appendChild(div);
window.setTimeout(function() {
div.style.opacity = 1;
div.style.transform = 'scale(1)'
},100)
linkHover.onmouseleave = function () {
linkHover.removeChild(div);
}
}
</script>
</body>
</html>
|
Спасибо всем, вы мне очень помогли)
|
| Часовой пояс GMT +3, время: 17:28. |