jquery动画 -- 7.会移动的背景,讲解div+css动画原理

简介:   今天课程介绍的是移动的背景,顺便讲解下div+css动画的原理。首先还是先介绍如何制作移动的背景效果。   html代码比较简单,我就全贴出来了,稍后介绍js的实现。 DOCTYPE html> header { ...

  今天课程介绍的是移动的背景,顺便讲解下div+css动画的原理。首先还是先介绍如何制作移动的背景效果。

  html代码比较简单,我就全贴出来了,稍后介绍js的实现。

<!DOCTYPE html>
<html>
<head>
    <title></title>
    <style type="text/css">
        header
        {
            display: block;
            width: 660px;
            height: 380px;
            margin: auto;
            background: url(img/header.jpg) repeat 0 0;
        }
    </style>
</head>
<body>
    <header>
    </header>
</body>
</html>

  页面里面包含一个header标签,设置了他的css效果,指定了css背景图片和图片的偏移量。接下来我们要做的就是,通过修改背景偏移量来实现背景移动的效果。这里我们要使用到css的background-position属性。大家可以到 http://www.w3school.com.cn/css/pr_background-position.asp,了解相关信息。

  我们看到上面css中定义了 background: url(img/header.jpg) repeat 0 0; 其中的0 0就是背景图片的定位信息,我们接下来就是通过修改第一个0,来实现背景图片向左移动的动画效果。如果想实现相上下移动的效果,需要修改第二个0。我们来看js代码:

//获取header对象
var header = $('header');
//设置背景初始值
header.css('backgroundPosition', '0 0');

//定义动画函数
var bgscroll = function () {
    //获取当前x轴位置
    var current = parseInt(header.css('backgroundPosition').split(' ')[0]),
    //设置新位置
    newBgPos = (current - 1) + 'px 0px';
    //将变量赋值给css的background-position属性
    header.css('backgroundPosition', newBgPos);
};

//定义循环
setInterval(bgscroll, 75);

  代码很简单,就是定义一个循环事件,每隔75毫秒去执行一次bgscroll,bgscroll每次获取背景当前的x轴位置,执行-1操作,再把新值赋给css的background-position属性。连贯的执行bgscroll函数的结果就是,背景图片不断的向左移动。如果想实现向右移动,需要把-1的操作修改成+1操作。

  其实div+css动画的原理很简单(这里讲的不是利用css的transition来实现动画),就是通过设置setInterval每隔几毫秒执行一个动画函数(有了setInterval就能实现自动的效果;当然你也可以不去设置setInterval而去设置某个html元素的click等事件,该事件里面去执行动画函数,这样就实现了手工动画的效果)。动画函数要做的就是去修改html元素的css属性值,有时候是修改background-position,更多的时候是修改left或者top属性值。通过对他们进行增减的操作,就实现了html元素在页面中上下左右位置的变化。left属性值可以参考这个站点:http://www.w3school.com.cn/css/pr_pos_left.asp

  当然,光对html元素的left,top进行赋值有时候是不够的,根据情况的需要可能还需要对他们的position属性进行操作,以达到合理的布局效果。大家可以参照这里学习position属性:http://www.w3school.com.cn/css/css_positioning.asp。

   把position,left等css属性掌握透彻,返回头再去看这个系列之前的文章,我想你一定能明白之前的动画是如何实现的了。

  希望这篇文章对你理解jquery动画效果的实现由一定的帮助作用。demo下载地址:jquery.animate.animated-header.rar

目录
相关文章
|
6月前
|
自然语言处理 前端开发 JavaScript
用 通义灵码 一键生成“水波纹按钮”,连 CSS 动画都不用自己写了!
通义灵码是一款智能编程辅助工具,它可以根据自然语言指令自动生成高质量的代码。例如,只需输入“生成一个按钮,点击时带水波纹动画,模拟 Material Ripple 效果”,它就能生成具备完整交互逻辑、CSS 动画和良好性能的按钮组件。不仅如此,它还支持拓展功能,如长按触发提示、添加图标等,并能自动优化样式适配不同场景。通过通义灵码,开发者可以大幅提升效率,专注于创意实现,而不必纠结于繁琐的代码细节。
|
11月前
|
前端开发 JavaScript
CSS 过渡和动画
CSS过渡和动画是用于为网页元素添加动态效果的两种重要技术
548 143
|
3月前
|
前端开发 算法 Java
【CSS】前端三大件之一,如何学好?从基本用法开始吧!(九):强势分析Animation动画各类参数;从播放时间、播放方式、播放次数、播放方向、播放状态等多个方面,完全了解CSS3 Animation
Animation属性 css3为Animation动画提供的几个属性如下: 属性名 属性值 animation-name 指定动画名称,该属性指定一个已有的关键帧定义。 animation-duration 指定动画持续时间。 animation-timing-funtion 指定动画变化速度。 animation-delay 指定动画延迟多长时间才开始执行。 animation-iteration-count 指定动画的循环执行次数。 animation:这是一个复合属性。
277 2
|
6月前
|
前端开发
文字显示在div 最下面,css怎么写
文字显示在div 最下面,css怎么写
439 0
|
12月前
|
人工智能 程序员 UED
【01】完成新年倒计时页面-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
【01】完成新年倒计时页面-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
619 21
【01】完成新年倒计时页面-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
|
12月前
|
前端开发 JavaScript
【02】v1.0.1更新增加倒计时完成后的放烟花页面-优化播放器-优化结构目录-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
【02】v1.0.1更新增加倒计时完成后的放烟花页面-优化播放器-优化结构目录-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
396 14
【02】v1.0.1更新增加倒计时完成后的放烟花页面-优化播放器-优化结构目录-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
|
12月前
css3 svg制作404页面动画效果HTML源码
css3 svg制作404页面动画效果HTML源码
250 34
|
10月前
|
JavaScript 内存技术
支持多种动画特效的响应式jQuery幻灯片插件
支持多种动画特效的响应式jQuery幻灯片插件
|
7月前
|
存储 自然语言处理 前端开发
抖音快手小红书虚拟评论截图生成器,模拟对话制作工具,html+js+css
这是一款纯前端实现的多平台虚拟评论生成器,支持抖音、快手、小红书风格,适用于产品演示与UI设计。采用Vanilla JS与Flexbox布局,利用IndexedDB存储数据,CSS Variables切换主题。
|
7月前
|
存储 前端开发 安全
病历单生成器在线制作,病历单生成器app,HTML+CSS+JS恶搞工具
本项目为医疗病历模拟生成器,旨在为医学教学和软件开发测试提供数据支持,严格遵守《医疗机构病历管理规定》。