jurvrn,
<!DOCTYPE html> <html> <head> <title>Untitled</title> <meta charset="utf-8"> <style type="text/css"> body{ position: relative; } .toggle { position: absolute; width: 0px; height: 100px; background-color: #ccc; left: calc(100% - var(--left, 0px)); overflow: hidden; top: 0; } .toggle.two { top: 120px; background-color: #008000; } .toggle > div{ position: relative; } </style> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script> <script> $(function() { let direction = 1; $(document).click(function() { direction ^= 1; $(".toggle").stop().each((i, el) => { let width = el.dataset.width; let options = direction ? { width: `-=${width}`, left: `+=${width}` } : { width: `+=${width}`, left: `-=${width}` }; $(el).animate( options, { duration: 800, complete: function() { this.style.setProperty("--left", direction ? "0px" : `${width}`); this.style.left = '' } }); }) }); }); </script> </head> <body> <p>Click anywhere to toggle the box.</p> <div class="toggle" data-width="300px"><div style="width:300px">toggle slideRight</div></div> <div class="toggle two" data-width="100px"><div style="width:100px">toggle slideRight test test</div></div> </body> </html> |
Цитата:
|
рони,
Скрипт попробую и напишу. Неужели он нагружает страницу больше чем css? |
Цитата:
|
рони,
Пока до компьютера не добрался, чтобы попробовать скрипт. Вы его еще больше усложнили ) Пусть нагружает больше , мне сейчас важнее убрать артефакт искажения. Посмотрю как скрипт отработает на моем браузере. В вашем способе нужно задавать ширину изначально точно. Мне бы хотелось чтобы ширина высчиталась динамично, в зависимости от контента. Может в таком случае нужно margin'ами оперировать? |
Цитата:
Цитата:
|
Цитата:
.main-block { z-index: 1; position: fixed; width: 36px; height: 175px; top: 0; bottom: 0; margin: auto 0; } .each-block { position: relative; z-index: 2; display: flex; margin-bottom: 10px; } .iconka-block, .textLine-Out { height: 36px; border: black 2px solid; border-radius: 5px 0 0 5px; } .textLine-Out { z-index: 3; position: static; display: flex; background-color: rgb(213, 231, 248); -webkit-transition: transform 0.3s ease-in-out; -moz-transition: transform 0.3s ease-in-out; -o-transition: transform 0.3s ease-in-out; transition: transform 0.3s ease-in-out; -webkit-transform: translateX(0%); -moz-transform: translateX(0%); -ms-transform: translateX(0%); -o-transform: translateX(0%); transform: translateX(0%); } .textLine-Iner { margin: auto; font-size: 16px; white-space: nowrap; padding: 0 10px; } .iconka-block { position: absolute; display: flex; z-index: 4; background-color: rgb(226,226,226); width: 36px; right: 0; cursor: pointer; border-right: none; } .iconka-block:hover + .textLine-Out { -webkit-transform: translateX(calc(-100% + 4px)); -moz-transform: translateX(calc(-100% + 4px)); -ms-transform: translateX(calc(-100% + 4px)); -o-transform: translateX(calc(-100% + 4px)); transform: translateX(calc(-100% + 4px)); } .iconka-block .icon_all { font-size: 22px; text-align: center; margin: auto; } <div class="main-block"> <div class="each-block"> <div class="iconka-block"><i class="fa fa-envelope-o icon_all icon_mail" aria-hidden="true"></i></div> <div class="textLine-Out"><div class="textLine-Iner">Напишите нам</div></div> </div> <div class="each-block"> <div class="iconka-block"><i class="fa fa-podcast icon_all icon_111_enter" aria-hidden="true"></i></div> <div class="textLine-Out"><div class="textLine-Iner">fa2-podcast 2icon</div></div> </div> <div class="each-block"> <div class="iconka-block"><i class="fa fa-bookmark-o icon_all icon_111_enter" aria-hidden="true"></i></div> <div class="textLine-Out"><div class="textLine-Iner">33icon_fa-bookmark-o</div></div> </div> <div class="each-block"> <div class="iconka-block"><i class="fa fa-user-circle icon_all icon_enter" aria-hidden="true"></i></div> <div class="textLine-Out"><div class="textLine-Iner">Вход на сайт</div></div> </div> </div> |
меню справа на css
jurvrn,
оставьте всё как есть, артефакт, если у кого-то и проявится, незаметен. js тут ничего не исправит, и будет только лишним. <!DOCTYPE html> <html> <head> <title>Untitled</title> <meta charset="utf-8"> <style type="text/css"> .main-block { z-index: 1; position: fixed; width: 36px; height: 175px; top: 0; bottom: 0; margin: auto 0; left: calc(100% - 36px); } .each-block { position: relative; z-index: 2; display: flex; margin-bottom: 10px; } .iconka-block, .textLine-Out { height: 36px; border: black 2px solid; border-radius: 5px 0 0 5px; } .textLine-Out { z-index: 3; position: static; display: flex; background-color: rgb(213, 231, 248); -webkit-transition: transform 0.3s ease-in-out; -moz-transition: transform 0.3s ease-in-out; -o-transition: transform 0.3s ease-in-out; transition: transform 0.3s ease-in-out; -webkit-transform: translateX(0%); -moz-transform: translateX(0%); -ms-transform: translateX(0%); -o-transform: translateX(0%); transform: translateX(0%); } .textLine-Iner { margin: auto; font-size: 16px; white-space: nowrap; padding: 0 10px; } .iconka-block { position: absolute; display: flex; z-index: 4; background-color: rgb(226,226,226); width: 36px; right: 0; cursor: pointer; border-right: none; } .iconka-block:hover + .textLine-Out, .textLine-Out:hover { -webkit-transform: translateX(calc(-100% + 4px)); -moz-transform: translateX(calc(-100% + 4px)); -ms-transform: translateX(calc(-100% + 4px)); -o-transform: translateX(calc(-100% + 4px)); transform: translateX(calc(-100% + 4px)); } .iconka-block .icon_all { font-size: 22px; text-align: center; margin: auto; } </style> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script> <script> $(function() { }); </script> </head> <body> <div class="main-block"> <div class="each-block"> <div class="iconka-block"><i class="fa fa-envelope-o icon_all icon_mail" aria-hidden="true"></i></div> <div class="textLine-Out"><div class="textLine-Iner">Напишите нам</div></div> </div> <div class="each-block"> <div class="iconka-block"><i class="fa fa-podcast icon_all icon_111_enter" aria-hidden="true"></i></div> <div class="textLine-Out"><div class="textLine-Iner">fa2-podcast 2icon</div></div> </div> <div class="each-block"> <div class="iconka-block"><i class="fa fa-bookmark-o icon_all icon_111_enter" aria-hidden="true"></i></div> <div class="textLine-Out"><div class="textLine-Iner">33icon_fa-bookmark-o</div></div> </div> <div class="each-block"> <div class="iconka-block"><i class="fa fa-user-circle icon_all icon_enter" aria-hidden="true"></i></div> <div class="textLine-Out"><div class="textLine-Iner">Вход на сайт</div></div> </div> </div> </body> </html> |
рони,
в вашем посте №21 нет такого артефакта, потому то выдвижение реализуется как-то под другому. Вот к этому и стремлюсь. Вот в этих кодах можно что-то исправить чтобы было как мне нужно? У самого не получается заставить их работать https://codepen.io/intersk/pen/YzZwyYj https://codepen.io/intersk/pen/KKWVzQb |
jurvrn,
https://codepen.io/intersk/pen/YzZwyYj отсутствует jquery-ui https://codepen.io/intersk/pen/KKWVzQb отсутствует # |
Часовой пояс GMT +3, время: 12:13. |