Hiệu ứng động mẫu mở rộng form tìm kiếm với CSS3
Form tìm kiếm luôn luôn là phần quan trọng nhất cho mọi trang web, chính vì thế mà việc thiết kế cho form này luôn luôn là ưu tiên hàng đầu. Hôm nay mình sẽ chia sẻ cho các bạn thêm một form tìm kiếm với hiệu ứng mở rộng cực cool, phù hợp với tất cả các giao diện hiện nay. Xem Demo | ...
Form tìm kiếm luôn luôn là phần quan trọng nhất cho mọi trang web, chính vì thế mà việc thiết kế cho form này luôn luôn là ưu tiên hàng đầu. Hôm nay mình sẽ chia sẻ cho các bạn thêm một form tìm kiếm với hiệu ứng mở rộng cực cool, phù hợp với tất cả các giao diện hiện nay.
Xem Demo | Download
HTML
Cấu trúc html cho form tìm kiếm này đơn giản như sau :
<div class="search-wrapper"> <div class="input-holder"> <input type="text" class="search-input" placeholder="Type to search" /> <button class="search-icon" onclick="searchToggle(this, event);"><span></span></button> </div> <span class="close" onclick="searchToggle(this, event);"></span> </div>
CSS
Trong phần này, đầu tiên chúng ta sẽ định dạng cho khung chứa form tìm kiếm.
.search-wrapper { position: absolute; transform: translate(-50%, -50%); top:50%; left:50%; } .search-wrapper.active {}
Với đoạn css bên trên , thì thanh tìm kiếm sẽ được đặt tại vị trí trung tâm của trang web. Đây là đoạn css mà các bạn có thể tùy chỉnh vị trí cho phù hợp với website của mình. Các bạn tiếp tục định dạng cho phần còn lại của form với đoạn css bên dưới.
.search-wrapper .input-holder { height: 70px; awidth:70px; overflow: hidden; background: rgba(255,255,255,0); border-radius:6px; position: relative; transition: all 0.3s ease-in-out; } .search-wrapper.active .input-holder { awidth:450px; border-radius: 50px; background: rgba(0,0,0,0.5); transition: all .5s cubic-bezier(0.000, 0.105, 0.035, 1.570); } .search-wrapper .input-holder .search-input { awidth:100%; height: 50px; padding:0px 70px 0 20px; opacity: 0; position: absolute; top:0px; left:0px; background: transparent; box-sizing: border-box; border:none; outline:none; font-family:"Open Sans", Arial, Verdana; font-size: 16px; font-weight: 400; line-height: 20px; color:#FFF; transform: translate(0, 60px); transition: all .3s cubic-bezier(0.000, 0.105, 0.035, 1.570); transition-delay: 0.3s; } .search-wrapper.active .input-holder .search-input { opacity: 1; transform: translate(0, 10px); } .search-wrapper .input-holder .search-icon { awidth:70px; height:70px; border:none; border-radius:6px; background: #FFF; padding:0px; outline:none; position: relative; z-index: 2; float:right; cursor: pointer; transition: all 0.3s ease-in-out; } .search-wrapper.active .input-holder .search-icon { awidth: 50px; height:50px; margin: 10px; border-radius: 30px; } .search-wrapper .input-holder .search-icon span { awidth:22px; height:22px; display: inline-block; vertical-align: middle; position:relative; transform: rotate(45deg); transition: all .4s cubic-bezier(0.650, -0.600, 0.240, 1.650); } .search-wrapper.active .input-holder .search-icon span { transform: rotate(-45deg); } .search-wrapper .input-holder .search-icon span::before, .search-wrapper .input-holder .search-icon span::after { position: absolute; content:'; } .search-wrapper .input-holder .search-icon span::before { awidth: 4px; height: 11px; left: 9px; top: 18px; border-radius: 2px; background: #FE5F55; } .search-wrapper .input-holder .search-icon span::after { awidth: 14px; height: 14px; left: 0px; top: 0px; border-radius: 16px; border: 4px solid #FE5F55; } .search-wrapper .close { position: absolute; z-index: 1; top:24px; right:20px; awidth:25px; height:25px; cursor: pointer; transform: rotate(-180deg); transition: all .3s cubic-bezier(0.285, -0.450, 0.935, 0.110); transition-delay: 0.2s; } .search-wrapper.active .close { right:-50px; transform: rotate(45deg); transition: all .6s cubic-bezier(0.000, 0.105, 0.035, 1.570); transition-delay: 0.5s; } .search-wrapper .close::before, .search-wrapper .close::after { position:absolute; content:'; background: #FE5F55; border-radius: 2px; } .search-wrapper .close::before { awidth: 5px; height: 25px; left: 10px; top: 0px; } .search-wrapper .close::after { awidth: 25px; height: 5px; left: 0px; top: 10px; }
jQuery
Để form tìm kiếm có thể mở ra và thu lại được thì cần có sự hỗ trợ của đoạn script bên dưới.
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script> <script type="text/javascript"> function searchToggle(obj, evt){ var container = $(obj).closest('.search-wrapper'); if(!container.hasClass('active')){ container.addClass('active'); evt.preventDefault(); } else if(container.hasClass('active') && $(obj).closest('.input-holder').length == 0){ container.removeClass('active'); // clear input container.find('.search-input').val('); // clear and hide result container when we press close container.find('.result-container').fadeOut(100, function(){$(this).empty();}); } } </script>
Chúc các bạn thành công !
Chuyên Mục: Css
Bài viết được đăng bởi webmaster