所有分类
  • 所有分类
  • 后端开发
网页设计必备!横向滑动导航菜单搭建攻略大公开

网页设计必备!横向滑动导航菜单搭建攻略大公开

在这篇文章中,我们将介绍如何使用jquery实现横向滑动的导航菜单。接下来,我们将使用jQuery来使导航菜单横向滑动。我们将创建一个点击箭头按钮时,导航菜单横向滑动的效果。到此为止,我们已经完成了使用jQuery实现导航菜单横向滑动的效果

1. HTML结构及样式准备

说起网页设计,不得不说导航菜单就是个重要的东西,有了它找起信息就方便多了!想做个横向滑动的导航怎么办?其实很简单,先搞定 HTML 框架,用 ul 和 li 标签搭出菜单选项的轮廓。接着,用 CSS 把尺寸啊、颜色啊这些外形调一调,让整个导航看着舒心就 OK 了!

在HTML结构中,可以使用类似以下代码片段:

html
    <li>Home</li>
    <li>About</li>

<li>Services</li>
<li>Portfolio</li>
<li>Contact</li>

接着,在CSS样式表中对导航菜单进行设置:

css
.navigation {
    list-style: none;
    padding:0;
.nav-container {
  overflow-x: scroll;
  white-space: nowrap;
}
.nav {
  display: inline-block;
  list-style-type: none;
  margin: 0;
  padding: 0;
  width: 100%;
}
.nav li {
  display: inline-block;
  text-align: center;
  width: 120px;
}
.nav li a {
  display: block;
  padding: 10px;
  text-decoration: none;
}

margin:0;
}
.navigation li {
display: inline-14511f2f5564650d129ca7cabc333278;
margin-right: 20px;
.navigation li a {
text-decoration: none;
color:#333;
.navigation li a:hover {
color:#ff6600;
搞定这个html和css后,咱们就有底气做侧滑!
2. jQuery实现横向滑动效果

$('.nav-arrow').on('click', function() {
  var direction = $(this).data('direction');
  var distance = $('.nav li:first-child').outerWidth();
  if (direction === 'prev') {
    $('.nav-container').animate({scrollLeft: '-=' + distance});
  } else {
    $('.nav-container').animate({scrollLeft: '+=' + distance});
  }
});

搞定HTML布局和CSS美化之后,就该上手jQuery做navList滑动效果了。我们要在"click"(点击)这个事件上面操作,只需你轻轻一点那个箭头图标,navList就会水平地展示那些藏起来的东东!
咱们开始给 jQuery加点儿看门狗功能!只要有人点了左或右,咱们就做个记录,看看他到底点了几次。然后根据这个记录,咱们再决定怎么推导导航菜单。以下就是简化版的代码样式表哦:
javascript

在那个超级简单的”.arrow”上点一下,就会生效~

这个方向,就是从你点击的地方自动获取。

var distance = 100;//滑动距离

if (direction ===’left’){

导航条慢慢向左滚动,距离是我们想要的长度。

要是方向是”右”的话,那就…

导航栏动起来,慢慢的向右挪动!

}

网页设计必备!横向滑动导航菜单搭建攻略大公开

});

$('.nav-container').on('scroll', function() {
  var distance = $('.nav li:first-child').outerWidth();
  var scrollLeft = $(this).scrollLeft();
  if (scrollLeft === 0) {
    $('.nav-arrow.prev').addClass('disabled');
  } else {
    $('.nav-arrow.prev').removeClass('disabled');
  }
  if (scrollLeft + distance >= $('.nav').outerWidth()) {
    $('.nav-arrow.next').addClass('disabled');
  } else {
    $('.nav-arrow.next').removeClass('disabled');
  }
});

加点点碰器就可以改变图标按钮方向,点击箭头钮,导航菜单的选项就能跟着变化,这样用着多方便呀。

3.交互效果优化

为了让你用着更舒服,除了原有的横向滑动,咱们还增加了点互动元素!比如,当你手指滑到导航菜单两边的时候,旁边的左右箭头会自己不见,这样就不怕你乱划~

咱可以小偷懒儿下,直接瞅着导航菜单翻页定位,然后顺带给箭头按钮开个开关就成。比如这样子:

点’.导航’然后鼠标滚轮,就会触发下面的函数。

var $this =$(this),

滚动到左边,就利用现在的滚动位置,就是$this的左滑。

把元素滚动宽度设定为$this.get(0).scrollWidth

width =$this.width();

if (scrollLeft ===0){

让我们来给”箭头向左”类加点儿禁用(disabled)属性。

对了你试试看,把那个滚动栏往左移,让浏览区变得跟滚滚宽度一样宽,这时候也是这种情况。

把”.arrow-right”的那个按钮变灰。

function initNav() {
  var distance = $('.nav li:first-child').outerWidth();
  var navWidth = $('.nav').outerWidth();
  var containerWidth = $('.nav-container').outerWidth();
  if (navWidth > containerWidth) {
    $('.nav-arrow.next').removeClass('disabled');
  }
  $('.nav-arrow').css('top', ($('.nav').outerHeight() / 2 - $('.nav-arrow').outerHeight() / 2));
  $('.nav li').each(function() {
    var itemWidth = $(this).outerWidth();
    if (itemWidth > distance) {
      distance = itemWidth;
    }
  });
  $('.nav li').each(function() {
    $(this).css('width', distance + 'px');
  });
}
initNav();

} else {

别管’.arrow-left,’.arrow-right’那茬了,直接删掉那个“停用”的样式就成

只需在原来的代码上添加相关的操作,轻轻一滑,就可以轻松关闭那些苦恼的按钮。这样做当然会让我们的导航感觉更加容易和舒适!

4.初始化函数设置

要让浏览网页的时候看得见导航菜单和箭头按钮,咱们得首先搞清楚初始化这两者的办法。在初始化函数里面,检测导航栏的宽度与容器宽度的关系,以及是否需要开启/关闭箭头按钮。

下面是一个简化版本的初始化函数示例:

function initNav(){

我们就是用导航来算出宽度的数值,并取名叫navWidth。

把容器宽度设为$(“.container”)的宽度

如果导航栏宽度比容器的宽还要大,就这样做…

点向右箭头,去掉”不可用”的标签。

把’.arrow-left’和’.arrow-right’加上禁用标记呗!

//其他初始化设置…

你只要动动手点一下`initNav()`这个小小的魔法按钮,网页上面熟悉的箭头和菜单就能弹出来!等它加载完了以后,就能够按照你的想法变得漂漂亮亮。

5.总结与展望

今儿咱们就来说说咋样用jQuery做出像网红那样的横滑导航栏~先搞定HTML和样式,接着用jQuery搞定鼠标点击和提高用户感受,最后再用初始化函数为它们打扮一番。过程简单得让你惊呆了!

下次要用的话,可以根据需要试试看,比如在项目里加点转场特效啥的,或者调整响应式设计,这样手机用户也能用得顺畅。期望这个方法对你提升网页互动效果有所帮助!

原文链接:https://www.icz.com/technicalinformation/web/javascript/2024/04/14386.html,转载请注明出处~~~
0

评论0

请先
注意:请收藏好网址www.icz.com,防止失联!站内免费资源持续上传中…!赞助我们
显示验证码
没有账号?注册  忘记密码?