网页设计中的背景图是至关重要的,在之前的文章《网页设计中的背景创意和发展趋势》也有为大家分享过网页设计中关于背景的设计以及发展趋势,一个优秀的背景图可以为你的网站增添不少的精彩。在浩大的互联网中,各种创意层出不穷,也许你在一些网站上看到的背景会随着鼠标的移动而移动,这是非常充满创意而且有趣的设计,你认为呢?今天就为大家分享下如何制作一个随着鼠标移动的动画背景效果。

在开始制作动画背景效果前,先为大家介绍下CSS sprites,中文名为:CSS雪碧或者CSS精灵。它是一种CSS图像合并技术,该方法是将小图标和背景图像合并到一张图片上,然后利用css的背景定位来显示需要显示的图片部分。这种技术的好处就是可以减少你的网站的HTTP请求数量,是通过使用CSS background和background-position属性来渲染的,也就是说是在css中定义的,并不适用于标签。

CSS sprites示例

CSS雪碧的制作原理很简单,相信大家都知道,主要是制作一张背景图,图片里面包含a,a:hover,a:active各种状态下的图片,如果通过背景定位background-position来获取不同状态下相对应的图片。下面为示例:

一览众巅峰

CSS sprites demos, Make by:www.jiawin.com

制作动画背景解析与示例

之所以在上面为大家简单的介绍css雪碧,因为css雪碧不单单仅限于使用在图片上面,还可以结合jQuery来制作动画效果。在引入jQuery后,我们可以利用鼠标光标的位置,来确定不同的触发点,相对应的改变background-position的值,从而使图像发生动画。先来看看最终的效果,用鼠标在下面的图片上面来回移动就可以看到。

在开始之前,我们需要将连成动画的每一张图片(帧)连接起来制作成一张大的背景图。大家可以在一个视频中,按照一定的时间连续快速截取10张或者更多关键帧的图像,然后使用photoshop等图片处理工具把每张小图按照规定的顺序依次排列,最终输出一张大的背景图。示例:

图片制作完后,接下来我们就写出简单HTML代码:

一览众巅峰

接下来,我们用jQuery为#preview添加样式: $(document).ready(function() {

$('#preview')

.css('display', 'block')

.css('width', 500)

.css('height', 203)

.css('background', 'url("our-image.jpg") no-repeat');

});

最后,就是设置背景的定位,以便在鼠标移动不同位置的时候显示正确的图像。我们的图片框架为500px,显示第一帧是背景图像X轴的坐标应该是0px,第二帧时背景图像的X轴的坐标为-500px,第三帧的背景图像的X轴的坐标为-1000px,以此类推,大家都可以计算后面相对应的数值。

那我们怎么实现随着鼠标光标的移动,图像也相对应的移动呢?我们该怎么动态的设置background-position?其实我们可以使用mousemove的事件来处理这个功能的实现,具体代码如下: .mousemove(function(e) {

var elementWidth = 500;

var mousePercent = (e.pageX - this.offsetLeft) / elementWidth;

var bgPosition = 0 - Math.floor((mousePercent * 5000) / elementWidth) * elementWidth;

$(this).css('background-position', '-' + bgPosition + 'px 0px');

});

制作动画背景完整代码

以下是完整的代码:

demo

$(document).ready(function() {

$('#preview')

.css('display', 'block')

.css('width', 500)

.css('height', 203)

.css('background', 'url("landscape.jpg") no-repeat')

.mousemove(function(e) {

var elementWidth = 500;

var mousePercent = (e.pageX - this.offsetLeft) / elementWidth;

var bgPosition = 0 - Math.floor((mousePercent * 5000) / elementWidth) * elementWidth;

$(this).css('background-position', bgPosition + 'px 0px');

});

});

一览众巅峰

总结

这个效果的实现原理其实很简单,但是这个方式实现的效果有点缺陷,假如动画的效果比较复杂,那么组成动画的帧数将会出现很多,这就意味着合成的大背景图将会非常大,是会影响页面的加载速度的,同时动画的流畅性也将会受到影响。当然这种技术,在手机移动设备上将不会有作用的,因为检测不到鼠标光标。最后,我们也必须承认css雪碧是一个简单然而却非常使用的一个技术手段。

css怎么随着鼠标移动,利用CSS sprites制作随着鼠标移动的动画背景相关推荐

  1. css拖动音乐进度条,利用CSS3实现3D滑块进度条拖动动画特效

    特效描述:利用CSS3实现 3D滑块 进度条拖动 动画特效.利用CSS3实现3D滑块进度条拖动动画特效 代码结构 1. HTML代码 Scalable 3D Range Sliders Simple ...

  2. python怎么控制键盘和鼠标_利用python怎么控制键盘与鼠标

    利用python怎么控制键盘与鼠标 发布时间:2020-11-30 16:01:39 来源:亿速云 阅读:59 这期内容当中小编将会给大家带来有关利用python怎么控制键盘与鼠标,文章内容丰富且以专 ...

  3. plsql 设置鼠标行执行_如何制作键盘鼠标产品质量合格证

    鼠标前盘属于办公用品套装,一般会一起销售,但是也不排除分开销售,无论是哪种方式键盘鼠标在生产销售时都需要携带对应产品质量合格证,对产品进行简单的说明,更能保障消费者的权益.那么如何制作产品质量合格证呢 ...

  4. css文字环绕后怎么定位,css文字环绕图片的方法怎么实现?(附代码)

    在网页的设计开发中,有的网页是需要图文并存的,而在一个图文并存的网页上,文字环绕图片会让整个网页看起来美观整洁,更加吸引用户,所以接下来的这篇文章将会给大家及介绍如何使用css实现文字环绕图片的方法, ...

  5. css中图片整合的使用,CSS Sprites:图片整合技术详细案例

    CSS Sprites 的目的就是通过整合图片,减少对服务器的请求数量,从而加快页面加载速度.介绍了CSS Sprites技术的实现方法,优点和缺点.最后通过实例CSS Sprites技术制作导航栏演 ...

  6. 利用 CSS selector 改变悬停表格样式

    在WEB应用中,为了方便用户查看表格,将鼠标悬停的表格行改变样式,如改变底色,会给用户很好的体验,特别是表格比较宽的时候,不会看串行.    原来为了实现这个功能,我的办法是用js捕获鼠标事件来完成: ...

  7. 你会利用css写下拉列表框吗?

    看到网上各个网站有各色各样的下拉列表框,你是否有想过自己去做一个出来呢?出于好奇与自强心,我研究了一个下午,发现网上很多的下拉列表框都是利用javascript或者是jquery(其实jquery和j ...

  8. 利用CSS实现悬停下拉菜单

    利用CSS实现悬停下拉菜单 1.效果 鼠标移到[搜索引擎],自动弹出其下拉菜单,在下拉菜单里移动,光条随之移动. 2.代码 <!DOCTYPE html> <html lang=&q ...

  9. css sprites原理,[css] 第17天 解释下 CSS sprites的原理和优缺点分别是什么?

    1.简介 CSS Sprites在国内很多人叫css精灵,是一种网页图片应用处理方式.它允许将一个页面涉及到的所有零星图片都包含到一张大图中, 利用CSS的"background-image ...

最新文章

  1. 刷新后控制TAB键到下一个控件
  2. .NET Core 跨平台 串口通讯 ,Windows/Linux 串口通讯
  3. 材料成形计算机辅助设计,材料成型及计算机辅助设计(综述)
  4. MMdnn Visualizer网络可视化
  5. Aspose.Words for .NET
  6. javascript 无法修改 数组中对象_谈谈JavaScript中对象建立(Object)
  7. 建议1 区分4中零值
  8. Docker 监控- Prometheus VS Cloud Insight
  9. 售假获刑后他又被淘宝告上法庭,杭州互联网法院当庭宣判
  10. 美国网站服务器有哪些,可以搭建什么网站?
  11. vscode快速下载方法
  12. Multisim简体中文汉化包下载安装指南
  13. Matlab TreeBagger随机森林回归实例
  14. java verbose gc_java –verbose:gc
  15. C6678信号处理板学习资料:基于6U VPX TMS320C6678+XC7K325T 的信号处理板
  16. 2021牛客多校1 H hashfunction FTT/NTT,数论
  17. remap中的xmap,ymap详解
  18. pdfwin10闪退_windows10打开pdf文件3秒后秒退
  19. php rsa加密实例,php实现RSA加密类实例,phprsa加密实例_PHP教程
  20. 大学物理之质点运动的两个坐标系。

热门文章

  1. 用MSNCartoon制作个性化卡通头像
  2. Java开心农场源码Java欢乐农场源码
  3. vivox21支持html,vivo X21支持快充吗_vivo X21支持无线充电吗-太平洋IT百科
  4. 自己写一个微型数据库_“最国际化的微型机构:”两名伦敦训练营的毕业生如何建造了一个远程…...
  5. 【arcgis 批量将属性表批量导出成excel】
  6. 利用Numpy+PIL读取图像实现手绘效果
  7. 编译原理复习四:编译器结构 消除左递归、左公因子 最右推导 寻找句柄讲解(附题目和答案)
  8. java电话簿_JAVA实现简单电话簿功能
  9. 名帖116 文徵明 小楷《离骚经》
  10. c语言还是python-自学编程应该从c语言还是python入手?