iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >js实现导航栏上下动画效果
  • 400
分享到

js实现导航栏上下动画效果

2024-04-02 19:04:59 400人浏览 安东尼
摘要

本文实例为大家分享了js实现导航栏上下动画的具体代码,供大家参考,具体内容如下 obj.currentStyle[name] 与 getComputedStyle(obj,false

本文实例为大家分享了js实现导航栏上下动画的具体代码,供大家参考,具体内容如下

obj.currentStyle[name] getComputedStyle(obj,false)[name],一个是支持IE 一个支持FE
完美运动js插件,能根据传进来的值,进行匹配,从而得到了理想的运动效果,也就是运行逻辑。
实现上下动画动画效果就是控制元素height的值,通过不断的修改该值,就能呈现所谓的动画效果,这里就需要用到定时器

定时器有两种

重复不断的定时器 setInterval(fn,time);
延时只在设定时间后只出现一次的定时器 setTimeout(fn,time)
在遍历传进的每一个值,需要使用一个boolean来控制是否完成解析,解析成功则返回true,结束定时器,返回false,知道返回true位置

function getStyle(obj, attr)
{
    if(obj.currentStyle)
    {
        return obj.currentStyle[attr];
    }
    else
    {
        return getComputedStyle(obj, false)[attr];
    }
}
function startMove(obj,JSON,fnEnd){
    if(obj.timer){
        clearInterval(obj.timer);
    };
    obj.timer=setInterval(function(){
        var bStop = true; //假设全部找到
        for(var attr in json){
            var icurr = 0;
            if(attr=='opacity'){//匹配key
                icurr=Math.round(parseFloat(getStyle(obj,attr))*100); //获取元素的属性值
            }else{
                icurr=parseInt(getStyle(obj,attr));
            };
            var sPeed = (json[attr]-icurr)/8;
            sPeed=sPeed>0?Math.ceil(sPeed):Math.floor(sPeed);
            if(attr=='opacity'){
                obj.style.filter="alpha(opacity:"+(icurr+sPeed)+")";
                obj.style.opacity=(icurr+sPeed)/100;
            }else{
                obj.style[attr]=icurr+sPeed+'px';
            }
            if(icurr!=json[attr]){
                bStop=false;
            }
        }
        if(bStop){
            clearInterval(obj.timer);
            if(fnEnd){
                fnEnd();
            }
        }
    },30);
}
// alert('dffe');

html布局

<!DOCTYPE html>
<html lang="zh">
<head>
	<meta charset="UTF-8">
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
	<meta Http-equiv="X-UA-Compatible" content="ie=edge">
	<link rel="stylesheet" type="text/CSS" href="css/common.css" />
	<script src="js/move.js"></script>
	<script src="js/common.js"></script>
	<title></title>
</head>
<body>
<div id="box">
	<div><a href="javascript:;" class="a01"></a><em>关于</em><span></span></div>
	<div><a href="javascript:;" class="a02"></a><em>招聘</em><span></span></div>
	<div><a href="javascript:;" class="a04"></a><em>产品</em><span></span></div>
	<div><a href="javascript:;" class="a03"></a><em>公司</em><span></span></div>
</div>	
</body>
</html>

css文件

*{
    margin: 0;
    padding: 0;
}
a{
    text-decoration: none;
}
body{
    background-color: #c1c1c1;
}
#box{
    width: 880px;
    margin: 100px auto;
    overflow: hidden;
}
#box div{
    width: 200px;
    height: 100px;
    float: left;
    overflow: hidden;
    position: relative;
}
#box div a{
    position: absolute;
    left: 0;
    top: 0;
    width: 200px;
    height: 100px;
    display: block;
    
background: url(../images/1.jpg) no-repeat;
}
#box div span{
    display: block;
    width: 200px;
    height: 100px;
    position: absolute;
    background: url(../images/window.png) left top repeat-x;
}
#box div em{
    display: block;
    width: 100%;
    height: 100%;
    background-color: #999;
    position: absolute;
    text-align: center;
    line-height: 100px;
    font-family: Verdana;
    font-style: nORMal;
    font-size: 30px;
    color: white;
    text-shadow: 2px 1px 4px black;
    top: 0;
}
#box div a.a01{
        
    background-position: 0 5px;
}
#box div a.a02{
        
    background-position: -200px 5px;
}
#box div a.a03{
        
    background-position: -400px 5px;
}
#box div a.a04{
        
    background-position: -600px 5px;
}

window.οnlοad=fn

window.onload=function(){
    var oDiv = document.getElementById('box');
    var aDiv = oDiv.getElementsByTagName('div');
    var aEm = oDiv.getElementsByTagName('em');
        var aEm = oDiv.getElementsByTagName('em');
    for(var i=0;i<aDiv.length;i++)
        {
            aDiv[i].index = i;
            aDiv[i].onmouseover = function()
            {
                startMove(aEm[this.index],{top:-aEm[this.index].offsetHeight})
            }
            aDiv[i].onmouseout = function()
            {
                startMove(aEm[this.index],{top:0})
            }
        }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: js实现导航栏上下动画效果

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

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

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

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

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

  • 微信公众号

  • 商务合作