iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >怎么用HTML+JavaScript实现筋斗云导航栏效果
  • 256
分享到

怎么用HTML+JavaScript实现筋斗云导航栏效果

2023-06-29 12:06:21 256人浏览 八月长安
摘要

这篇文章主要介绍了怎么用html+javascript实现筋斗云导航栏效果的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么用HTML+JavaScript实现筋斗云导航栏效果文章都会有所收获,下面我们一起来看

这篇文章主要介绍了怎么用html+javascript实现筋斗云导航栏效果的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么用HTML+JavaScript实现筋斗云导航栏效果文章都会有所收获,下面我们一起来看看吧。

功能要求:

鼠标经过某个li,筋斗云跟着到当前的位置

鼠标离开这个li,筋斗云回到原来的位置

鼠标点击了某个li,筋斗云就留在点击这个位置

怎么用HTML+JavaScript实现筋斗云导航栏效果

<!DOCTYPE html><html lang="en"> <head>    <meta charset="UTF-8">    <meta Http-equiv="X-UA-Compatible" content="IE=edge">    <meta name="viewport" content="width=device-width, initial-scale=1.0">    <title>Document</title>    <style>        .box {            position: relative;            width: 500px;            height: 50px;            background-color: grey;        }                ul li {            list-style: none;            float: left;            text-align: center;            height: 40px;            line-height: 40px;            margin-left: 0px;            width: 70px;            padding-left: 0px        }                        ul {            margin: 0px;            height: 50px;            line-height: 50px;            padding-top: 7px;            padding-left: 20px;        }                a {            display: inline-block;            width: 100%;            padding-left: 0px;            text-align: left;            color: black;            text-decoration: none;        }                img {            position: absolute;            top: -5px;            left: 5px;            width: 60px;            height: 60px;            opacity: 0.5;        }    </style>    <script src="cloud.js"></script>    <script src="animater.js"></script></head> <body>    <div class="box">        <ul>            <li><a href="javascript:;" rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow" >首页</a>            </li>            <li><a href="javascript:;" rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow" >文章</a></li>            <li><a href="javascript:;" rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow" >动态</a></li>            <li><a href="javascript:;" rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow" >关注</a></li>            <li><a href="javascript:;" rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow" >最新热门</a></li>        </ul>        <img src="祥云.png" alt="">    </div></body> </html>
window.addEventListener('load', function() {    //获得每个li,以及img    var as = document.querySelectorAll('li')    var img = document.querySelector('img')        //给每个li添加点击事件     as[1].addEventListener('mousemove', function() {        animate(img, 75)    })    as[2].addEventListener('mousemove', function() {        animate(img, 145)    })    as[3].addEventListener('mousemove', function() {        animate(img, 215)    })    as[4].addEventListener('mousemove', function() {        animate(img, 300) //用mousemove事件比mouseover事件要好,防止震动    })    as[0].addEventListener('mousemove', function() {        animate(img, 5)    })    for (i = 0; i < as.length; i++) {        //给每个a添加一个自定义属性,倒是用来作为索引号        as[i].setAttribute('index', i)     }    var posi = 0    console.log(as[0].getAttribute('index'))    for (i = 0; i < as.length; i++) {        as[as[i].getAttribute("index")].addEventListener('mouseout', fn)         function fn() {            animate(img, posi)        }    }    //3,鼠标点击某个li,就固定在这个li上。离开经过某个li,就到某个li上,离开这个li,又回到刚刚的li上,相当于对初始位置的一个刷新     as[1].addEventListener('click', function() {        animate(img, 75)        posi = 75            //删除相应的离开事件    })    as[2].addEventListener('click', function() {        animate(img, 145)        posi = 145    })    as[3].addEventListener('click', function() {        animate(img, 215)        posi = 215    })    as[4].addEventListener('click', function() {        animate(img, 300) //用mousemove事件比mouseover事件要好,防止震动        posi = 300    })    as[0].addEventListener('click', function() {        animate(img, 5)        posi = 5    })})

自己只能做的出这种简单的效果,而且还是bug

利用动画函数

原先图片的起始位置是0

鼠标经过某个li,把当前小li的offsetLeft作为目标值

如果点击了某个li,就把当前li的位置存起来,作为图片的起始位置

怎么用HTML+JavaScript实现筋斗云导航栏效果

思路和自己想的是一样的,但是要注意位置的取法,是直接通过元素的点击,去自动获得元素的位置,(但并没有仔细考虑图片应该在文字的中心)

其次,加入了ul的绝对定位,这样可以消除抖动

<!DOCTYPE html><html lang="en"> <head>    <meta charset="UTF-8">    <meta http-equiv="X-UA-Compatible" content="IE=edge">    <meta name="viewport" content="width=device-width, initial-scale=1.0">    <title>Document</title>    <style>        .c-nav {            width: 600px;            height: 40px;            background-color: grey;            position: relative;        }                ul {            position: absolute;            text-align: center;            margin-left: 0px;            padding-left: 0px        }                        li {            top: 0px;            list-style: none;            float: left;            padding-left: 10px;            width: 80px;            height: 40px;            text-align: center;            line-height: 10px;        }                a {            color: black;            text-decoration: none;        }                .cloud {            position: absolute;            top: 0px;            left: 0px;            width: 70px;            height: 35px;            background-image: url(祥云.png);            background-repeat: no-repeat;            background-position: center;            background-size: 100%;            opacity: 0.6;        }                .current a {            color: red        }    </style>    <script src="animater.js"></script>    <script src="cloud.js"></script></head> <body>    <div class="c-nav">        <span class="cloud"></span>        <ul>            <li class="current"><a href="javascript:;" rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow" >首页新闻</a></li>            <li><a href="javascript:;" rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow" >师资力量</a></li>            <li><a href="javascript:;" rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow" >活动策划</a></li>            <li><a href="javascript:;" rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow" >企业文化</a></li>            <li><a href="javascript:;" rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow" >招聘信息</a></li>            <li><a href="javascript:;" rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow"  rel="external nofollow" >公司简介</a></li>        </ul>    </div></body> </html>
window.addEventListener('load', function() {    var c_nav = document.querySelector('.c-nav')    var cloud = document.querySelector('.cloud')    var lis = document.querySelectorAll('li')    var current = 0 //起始位置;别用手算,肯定是获得某个元素的位置    for (var i = 0; i < lis.length; i++) {        lis[i].addEventListener('mouseenter', function() {                animate(cloud, this.offsetLeft) //鼠标经过时候发生抖动:因为图片过来后,就发生冲突了,此时鼠标就在图片上面            })            //鼠标离开回到起始的位置        lis[i].addEventListener('mouseleave', function() {                animate(cloud, current)            })            //鼠标点击事件        lis[i].addEventListener('click', function() {            // alert(12)            // animate(cloud, this.offsetLeft) //点击了鼠标之后,图片的起始位置就发生改变了            current = this.offsetLeft            for (var i = 0; i < lis.length; i++) {                lis[i].className = ''             }            this.className = 'current'        })     }})

关于“怎么用HTML+JavaScript实现筋斗云导航栏效果”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“怎么用HTML+JavaScript实现筋斗云导航栏效果”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注编程网精选频道。

--结束END--

本文标题: 怎么用HTML+JavaScript实现筋斗云导航栏效果

本文链接: https://www.lsjlt.com/news/324767.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • HTML+JavaScript实现筋斗云导航栏效果
    功能要求: 1、鼠标经过某个li,筋斗云跟着到当前的位置 2、鼠标离开这个li,筋斗云回到原来的位置 3、鼠标点击了某个li,筋斗云就留在点击这个位置 <!DOCTYPE h...
    99+
    2024-04-02
  • 怎么用HTML+JavaScript实现筋斗云导航栏效果
    这篇文章主要介绍了怎么用HTML+JavaScript实现筋斗云导航栏效果的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么用HTML+JavaScript实现筋斗云导航栏效果文章都会有所收获,下面我们一起来看...
    99+
    2023-06-29
  • 怎么用JavaScript实现弹性导航效果
    本篇内容主要讲解“怎么用JavaScript实现弹性导航效果”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用JavaScript实现弹性导航效果”吧!主要利用offsetX先搭架子:*&nb...
    99+
    2023-06-25
  • JS 实现导航栏悬停效果
    JS-实现导航栏悬停 先布个局: 复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "ht...
    99+
    2022-11-15
    导航栏 悬停
  • Android实现底部导航栏效果
    目前网上主流的文章都是用底部的 RadioGroup + 页面部分的 Fragment 实现导航栏切换页面效果的。 然而底部的 RadioGroup 是如此麻烦,每个按钮的图片和文字...
    99+
    2024-04-02
  • js怎么实现导航栏上下动画效果
    这篇“js怎么实现导航栏上下动画效果”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“js怎么实现导航栏上下动画效果”文章吧。o...
    99+
    2023-07-02
  • JS 实现导航栏悬停效果(续)
    上次【JS-实现导航栏悬停】说到,导航栏悬停的那个页面在IE上运行的时候,会出导航栏不停的抖动问题。解决方法如下: 将导航栏的定位方式由原来的absolute改为fixed,也不知道...
    99+
    2022-11-15
    导航栏 悬停
  • JavaScript实现弹性导航效果
    本文实例为大家分享了JavaScript实现弹性导航效果的具体代码,供大家参考,具体内容如下 主要利用offsetX 1.先搭架子: * { margin: 0; ...
    99+
    2024-04-02
  • react怎么实现侧边栏联动头部导航栏效果
    本文小编为大家详细介绍“react怎么实现侧边栏联动头部导航栏效果”,内容详细,步骤清晰,细节处理妥当,希望这篇“react怎么实现侧边栏联动头部导航栏效果”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。项目中使用...
    99+
    2023-07-05
  • 如何使用html+css+js实现导航栏滚动渐变效果
    本篇内容主要讲解“如何使用html+css+js实现导航栏滚动渐变效果”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何使用html+css+js实现导航栏滚动渐变效果”吧!实现:1.定义导航栏...
    99+
    2023-07-05
  • JS实现百度新闻导航栏效果
    本文实例为大家分享了JS实现百度新闻导航栏效果的具体代码,供大家参考,具体内容如下 最近在学Web前端,用js简单实现了百度新闻导航栏的效果。当鼠标移动到某一选项上方时,会有一个红...
    99+
    2024-04-02
  • js实现导航栏上下动画效果
    本文实例为大家分享了js实现导航栏上下动画的具体代码,供大家参考,具体内容如下 obj.currentStyle[name] 与 getComputedStyle(obj,false...
    99+
    2024-04-02
  • JS 实现导航栏悬停效果(续2)
    【JS-实现导航栏悬停】 【JS-实现导航栏悬停(续)】 用Jquery重新写完这个页面之后,发现原来的方法还有是有几个问题: 1.首先Js代码冗余,导航条上的Tab是用js实现跳转...
    99+
    2022-11-15
    导航栏 悬停
  • 使用CSS怎么实现导航栏下划线跟随效果
    使用CSS怎么实现导航栏下划线跟随效果?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。假设 HTML 结构如下:<ul>  <...
    99+
    2023-06-08
  • js怎么实现带缓动动画的导航栏效果
    这篇文章主要介绍js怎么实现带缓动动画的导航栏效果,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!实例代码:<!DOCTYPE html> <html&nb...
    99+
    2024-04-02
  • 纯CSS怎么实现导航栏下划线跟随效果
    小编给大家分享一下纯CSS怎么实现导航栏下划线跟随效果,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!效果:代码:html:<ul> &nbs...
    99+
    2023-06-08
  • html+css怎么实现简易导航栏功能
    小编给大家分享一下html+css怎么实现简易导航栏功能,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!二话不说直接上代码<!DOCTYPE htm...
    99+
    2023-06-08
  • html怎么实现点导航栏切换页面
    要实现导航栏切换页面,可以使用HTML和JavaScript来完成。以下是一个简单的示例:1. HTML部分:```html导航栏切...
    99+
    2023-08-08
    html
  • CSS怎样实现导航效果
    这篇文章主要介绍CSS怎样实现导航效果,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! html <div <ul> <li><a href=...
    99+
    2024-04-02
  • jQuery实现带展开动画的导航栏效果
    设计和自定义一个带展开动画效果的导航栏,尝试写了一个demo,加上设计和调试差不多写了一天吧。 这里就来讲讲如何从设计->写布局->写样式->写JS代码 完成一个完...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作