下划线滑动导航效果
css:
.nav{ position: relative; } .nav .subline{ height: 5px; background: #ff9f00; position: absolute; bottom: 0; left: 0; } .nav ul{ display: flex; height: 90px; width: 80%; justify-content: space-between; } .nav ul li { flex: 1; } .nav ul li>a { color: #333; font-size: 14px; display: block; text-align: center; height: 90px; line-height: 90px; font-weight: bold; } .nav li.active>a{ color: #ff9f00; } .nav dl { position: fixed; width: 100%; min-width: 20%; top: 90px; left: 0; background: rgba(0, 0, 0, 0.6); display: flex; z-index: 1; height: 0; opacity: 0; visibility: hidden; transition: 0.4s; } .nav li:hover dl { height: 60px; opacity: 1; visibility: visible; } .nav dd { font-size: 14px; color: #fff; height: 60px; line-height: 60px; padding: 0 15px; } .nav dd a { color: inherit; transition: 0.6s; } .nav dd.on a,.nav dd:hover a { font-weight: bold; }
html:
<div class="nav"> <ul> <li class="active"><a href="#">导航一</a></li> <li> <a href="#">导航二</a> <dl> <dd><a href="#">二级导航</a></dd> <dd><a href="#">二级导航</a></dd> <dd><a href="#">二级导航</a></dd> </dl> </li> <li> <a href="#">导航三</a> <dl> <dd><a href="#">二级导航</a></dd> <dd><a href="#">二级导航</a></dd> <dd><a href="#">二级导航</a></dd> </dl> </li> <li> <a href="#">导航四</a> <dl> <dd><a href="#">二级导航</a></dd> <dd><a href="#">二级导航</a></dd> <dd><a href="#">二级导航</a></dd> </dl> </li> <li> <a href="#">导航五</a> <dl> <dd><a href="#">二级导航</a></dd> <dd><a href="#">二级导航</a></dd> <dd><a href="#">二级导航</a></dd> </dl> </li> <li> <a href="#">导航六</a> <dl> <dd><a href="#">二级导航</a></dd> <dd><a href="#">二级导航</a></dd> <dd><a href="#">二级导航</a></dd> </dl> </li> <li> <a href="#">导航七</a> <dl> <dd><a href="#">二级导航</a></dd> <dd><a href="#">二级导航</a></dd> <dd><a href="#">二级导航</a></dd> </dl> </li> <li> <a href="#">导航八</a> <dl> <dd><a href="#">二级导航</a></dd> <dd><a href="#">二级导航</a></dd> <dd><a href="#">二级导航</a></dd> </dl> </li> </ul> <div class="subline"></div> </div>
js:
// 导航鼠标经过 $('.nav li').each(function () { var windowWidth = $(window).width(); var offsetLeft = $(this).offset().left; var dlWidth = $(this).find('dl').width(); if (offsetLeft + dlWidth < windowWidth) { $(this).find('dl').css({ left: offsetLeft, width: dlWidth - offsetLeft }) } else { $(this).find('dl').css({ left: 'auto', right: 0, width: dlWidth - offsetLeft }) } }) //导航滑条 slideLine($('.nav'), $('.subline'), $('.nav ul li'), $('.nav ul li.active'), 0); function slideLine(box, subline, li, active, margin) { subline.css({ 'width': active.width(), 'left': parseInt(active.position().left) + margin }); li.mouseenter(function() { subline.stop().animate({ width: $(this).width(), left: parseInt($(this).position().left) + margin }, 300); }); box.mouseleave(function() { subline.stop().animate({ width: active.width(), left: parseInt(active.position().left) + margin }, 300); }); };

浙公网安备 33010602011771号