在很多需求中都用到了利用jquery实现背景图片的动画效果,接下来我们将实现点击ul中的li实现背景图片的动态切换。
思路和实现步骤:
1、先建立静态页面。其中box盒子用来动态生成ul,li,a和img;box_bg和box_sta盒子主要用来实现背景图片的切换

<body><div class="box"></div><div class="box_bg"></div><div class="box_sta"></div>
</body>

2、设置他们的样式

 * {margin: 0;padding: 0;box-sizing: border-box;list-style: none;}body {position: relative;}.box {width: 800px;height: 500px;margin-left: 100px;overflow: hidden;}ul {width: 640px;display: flex;justify-content: center;align-content: center;flex-wrap: wrap;margin-top: 291px;margin-left: 78px;}ul>li {width: 120px;height: 45px;background-color: #fff;margin-right: 10px;margin-bottom: 10px;border: 1px solid #ccc;}li:nth-child(5n) {margin-right: 0;}li:nth-child(n+16) {margin-bottom: 0;}li a {display: block;text-align: center;}ul li a img {width: 100%;height: 100%;}.box_bg {margin: 0 auto;position: absolute;left: 100px;top: 0;width: 800px;height: 500px;display: none;background-image: url('./img-yysy/14R.jpg');/* 规定背景图像的尺寸 *//* cover:把背景图像扩展至足够大,以使背景图像完全覆盖背景区域。背景图像的某些部分也许无法显示在背景定位区域中。 */background-size: cover;z-index: -100;}.box_sta {margin: 0 auto;position: absolute;left: 100px;top: 0;width: 800px;height: 500px;background-image: url('./img-yysy/15R.jpg');background-size: cover;z-index: -200;}/* 清除浮动 */.clearfix:after {visibility: hidden;clear: both;display: block;content: ".";height: 0;}.clearfix {*zoom: 1;}

3、编写对应的js样式

$(function () {// 定义数组保存背景图片let arrImg = ['./img-yysy/1R.jpg', './img-yysy/2R.jpg', './img-yysy/3R.jpg', './img-yysy/4R.jpg', './img-yysy/5R.jpg', './img-yysy/6R.jpg', './img-yysy/7R.jpg', './img-yysy/8R.jpg', './img-yysy/9R.jpg', './img-yysy/10R.jpg', './img-yysy/11R.jpg', './img-yysy/12R.jpg', './img-yysy/13R.jpg', './img-yysy/14R.jpg', './img-yysy/15R.jpg', './img-yysy/16R.jpg', './img-yysy/17R.jpg', './img-yysy/18R.jpg', './img-yysy/19R.jpg', './img-yysy/20R.jpg'];// 定义数组保存li的图片let arr = ['./img-yysy/1.png', './img-yysy/2.png', './img-yysy/3.png', './img-yysy/4.png', './img-yysy/5.png', './img-yysy/6.png', './img-yysy/7.png', './img-yysy/8.png', './img-yysy/9.png', './img-yysy/10.png', './img-yysy/11.png', './img-yysy/12.png', './img-yysy/13.png', './img-yysy/14.png', './img-yysy/15.png', './img-yysy/16.png', './img-yysy/17.jpg', './img-yysy/18.png', './img-yysy/19.png', './img-yysy/20.png']// 将ul添加到box父盒子里面$('.box').append('<ul></ul>');// 在ul中创建20个lifor (let i = 0; i <= 19; i++) {$('.box').children('ul').append('<li></li>');}// 给ul清除浮动$('.box').children('ul').prop('class', 'clearfix');// 给每个li添加a标签$('.box>ul>li').append('<a href="#"></a>');// 在每个a里面添加img标签$('.box>ul>li>a').append('<img>');// 给每个li和img添加属性for (let j = 0; j <= 19; j++) {// 每个li$('.box li').eq(j).attr('bgImage', arrImg[j]);// 每个img$('.box a img').eq(j).prop('src', arr[j]);}// 鼠标移入每个li时$('.box li').mouseenter(function () {// 获取li里面自定义的图片路径bgImage = $(this).attr('bgImage');// console.log(bgImage);// 给box_bg变换背景图片$(this).parent().parent().siblings().eq(0).css('background-image', `url('${bgImage}')`);// 将box_bg的透明度设置为0$(this).parent().parent().siblings().eq(0).css('opacity', '0');// 显示box_bg$(this).parent().parent().siblings().eq(0).css('display', 'block');// 给box_bg设置自定义属性并添加相同的图片路径$(this).parent().parent().siblings().eq(0).attr('currentBg', `url('${bgImage}')`);// 给box_bg添加动画效果$(this).parent().parent().siblings().eq(0).stop().animate({// 0.5s后透明度改变opacity: 1}, 500, function () {// 默认背景.box_sta的背景图放入currentBg属性中$(this).siblings().eq(1).css('background-image', $(this).attr('currentBg'));// 将box_bg的透明度设为0$(this).css('opacity', '0');// 隐藏$(this).css('display', 'none');})})})

总结:要实现背景图片的动态切换,其中思路是最重要的;一开始我只写了一个盒子,里面的ul和li写死,最后用数组的形式fadeIn和fadeOut改变box的背景图片,最后发现动画效果没有达成,只是图片之间的跳转。所以转变思路后用了当前的方法,当然还有借鉴一些同学的。
其中我认为比较重要的js步骤有:

  // 给每个li和img添加属性for (let j = 0; j <= 19; j++) {// 每个li$('.box li').eq(j).attr('bgImage', arrImg[j]);// 每个img$('.box a img').eq(j).prop('src', arr[j]);}

将大图的路径先存放在每个li中;鼠标移入li是给box_bg设置相应的样式和获取存放在li中的背景图,以及最后给box_sta设置相应的路径

 // 默认背景.box_sta的背景图放入currentBg属性中$(this).siblings().eq(1).css('background-image', $(this).attr('currentBg'));

jq实现背景图片动态切换相关推荐

  1. uni-app 背景图片动态设置

    uni-app 背景图片动态设置 <view :style="{backgroundImage:`url(${background})`}"></view> ...

  2. html怎么用小小的图片铺满作为背景,多种背景图片随机切换的应用

    在皮肤『QQ Style』中我使用了随机背景切换功能,这个随机背景切换是一个独立的功能,上面使用的只是其中一小部分应用.下面我将演示背景随机切换的更多应用,然后大家就可以有更多的拓展. 第一:背景图片 ...

  3. 简洁风个人主页(3) js背景图片随机切换

    静态页面做完了,现在用js做一个背景图片随机切换的效果. 1.点击'个人网站'这个字样,实现body背景的切换.所以,首先获取这两个节点. var body = document.body; var ...

  4. html5 背景图片自动换,网站背景图片自动切换特效css代码

    背景图片自动切换特效-sbkko.com body { background: #000; background-attachment: fixed; word-wrap: break-word; - ...

  5. pyqt5实现按钮添加背景图片以及背景图片的切换

    简介 对与控件QPushButton中的可以使用setStyleSheet设置它背景图片.具体设置背景图片的方法有两种 self.button.setStyleSheet("QPushBut ...

  6. jquery+css实现背景图片的切换

    1.html页面代码如下: 常使用在点击页面的div时出现 2.css代码如下: 第一个div的class为d2,d3,当d3位于后面时默认覆盖掉d2中d3存在的属性 3.jquery代码如下: 说明 ...

  7. jquery 实现背景图片循环切换,显示隐藏div

    jquery实现图片背景循环切换,显示隐藏一个div. <script type="text/javascript"> $(function(){ $("#t ...

  8. radio切换控制div显示_JavaScript连载31图片动态切换以及关闭图片案例

    一.图标切换 31.1 点击那两个按钮可以做到轮番显示图片 二.关闭图片案例 31.2 点击右上角的叉,图片会消失. 三.源码: D31_iconSwitch.html D31_2_CloseImag ...

  9. java窗体添加背景图片_Java项目实战之实战之天天酷跑(四):游戏主界面

    接上文,本文将实现游戏主界面,功能如下: 移动的背景图片.动态的玩家.玩家的移动功能.五种障碍物持续出现.玩家和障碍物的碰撞.暂停.继续功能. 首先,看一下整体效果: 动图实在太大,几秒钟的 Gif ...

最新文章

  1. 为什么说GAN很快就要替代现有摄影技术了?
  2. 服务器被非法上传文件,DiscuzX没有合法的文件被上传的修复方法
  3. arcgis下的python编程-面向ArcGIS的Python脚本编程
  4. 秒过,度目智慧通行让常态化防疫更高效
  5. 【Python】sys库介绍
  6. 一款免费开源的文件加密软件Veracpryt---文件、文件夹加密功能介绍
  7. 数据库周刊60丨3月国产数据库排行榜出炉;日本银行数据迁移失败致使业务宕机;阿里云RDS PG13发布;亚健康Oracle数据库故障定位;Redis最佳实践;MySQL查询优化……
  8. 牛客网--16128--小名的回答
  9. 苹果系统简易音乐播放器
  10. 网络编程之基础与接口函数
  11. word 2007 无法输入汉字,怎么办?
  12. VS2010 中修改项目名称
  13. 【测绘程序设计】坐标方位角推算神器(C#版)
  14. ruby--数值类(Numeric)
  15. layui 改写 table 排序,填加中文按照拼音排序
  16. matplotlib绘图:散点图、折线图、柱状图、水平条形图、饼图和直方图
  17. 1103:陶陶摘苹果
  18. 联想笔记本声音太小怎么办_笔记本声音太小,详细教您笔记本电脑声音太小解决方法...
  19. libusb android pc,libusb: android上集成libusb库
  20. [机缘参悟-30]:鬼谷子-内揵篇-同理心,站在对方的立场,拉近与对方的心理距离

热门文章

  1. 分享图片 | 创意的电子产品
  2. Qt MySQL报“QMYSQL driver not loaded driver not loaded“,终极解决办法
  3. 猿创征文|那些少见但好用的软件开发工具
  4. 什么是运维自动化巡检?
  5. 做好这6点足以写好你公司的新闻稿
  6. 分享12款我常用的开源免费软件
  7. 将自己的手机卡设置成空号
  8. 电脑应用工具背景变为护眼绿?
  9. 2019年c语言程序设计试卷,湖北经济学院2019年C语言程序设计模拟试卷(六)及完整答案.docx...
  10. 综合布线:光纤的分类