Создание объекта и плавное отображение на странице
Добрый день, подскажите как можно плавно отобразить блок на странице, предварительно создав его через 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, время: 05:54. |