notes
  • Introduction
  • 语言
    • JS
      • JS原型到原型链
      • JS继承的实现
      • this对象
      • Promise基本概念
      • Promise实现
      • Promise实战
      • JS的EventLoop
      • JS容易出现误区的运算符
      • JS容易出现误区的操作符
      • JS深拷贝
      • JS节流与防抖
      • ES5实现原生/ES6方法
    • TS
      • 声明文件
      • 项目配置
    • CSS
      • CSS引入方式以及优先级计算
      • BFC神奇背后的原理-文摘
      • 回流reflow与重绘repaint
      • 三栏式布局
      • 垂直居中
      • 清除浮动的方法
      • 移动端适配方案
      • 纯CSS斜切角实现
      • CSS揭秘
      • 背景图片轮播
      • CSS绘制序列帧动画
      • transform实现一个多面体
    • HTML
  • ES6
  • Node.js
    • xxx
  • 前端框架
    • Vue.js
      • Vue双向数据绑定原理
      • Vue-Router原理及实现
    • React
    • AngularJS
  • 工程构建
    • Webpack
      • 01-webpack概述及背景
      • 03-webpack热更新原理
      • 04-splitChunks原理分析
      • 05-webpack工作流程
      • 07-webpack构建流程
      • 07-webpack构建流程
      • 10-webpack 如何进行性能分析
    • Gulp
    • Lint
      • ESLint
      • TSLint
    • Bable
  • 工程化
    • 模块化
    • 组件化
    • 规范化
      • 编码规范
    • 自动化
  • 运维
    • Nginx
    • GIT
    • CDN
    • VPS
    • DBA
  • 小程序
  • 跨端
  • 测试
  • 计算机技术
    • 计算机网络
      • 同源策略到前端跨域解决方案
      • TCP数据传输
      • TCP和UDP的区别
      • HTTP协议概述
      • HTTP缓存详解
      • HTTPS以及SSL建立过程
      • HTTPS的七个误解(译文)
      • cookie与Session机制区别以及Cookie SessionStorage LocalStorage异同
      • HTTP状态码Status
      • DNS原理入门
      • 网络攻击与防御
      • HTTP转发与重定向
      • 登录认证设计
    • 操作系统
      • shell脚本命令
    • Linux
      • Linux命令大全
      • vim命令
    • 浏览器
      • 浏览器内核、JS 引擎、页面呈现原理及其优化
      • 九种浏览器端缓存机制概览
      • 性能优化-网络请求方面
      • webkit解析CSS过程详解
  • 前端面试
    • 算法
Powered by GitBook
On this page
  • 背景图片轮播
  • 参考
  1. 语言
  2. CSS

背景图片轮播

背景图片轮播

由于<img>标签不能实现固定高度的宽度不失真拉伸,采用CSS3background属性去实现! 如果是使用<img>的话,使用bootstrap的轮播器器!

1、全屏背景切换

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>全屏背景切换</title>
    <script src="http://api.asilu.com/cdn/jquery.js,jquery.backstretch.min.js" type="text/javascript"></script>
</head>
<body>
<script type="text/javascript">
    $.backstretch([
        'http://api.asilu.com/cdn/img/bg/444.jpg',
        'http://api.asilu.com/cdn/img/bg/445.jpg',
        'http://api.asilu.com/cdn/img/bg/446.jpg',
        'http://api.asilu.com/cdn/img/bg/447.jpg',
        'http://api.asilu.com/cdn/img/bg/448.jpg'
    ], {
        fade : 1000, // 动画时长
        duration : 2000 // 切换延时
    });
</script>
</body>
</html>

实现炫酷的页面整个背景覆盖切换

自定义背景图片切换

html只有一个div

<div id="img-body">
    <div id="img-background"></div>
</div>

css样式

#img-body div {
  width: 100%;
  height: 650px;
  position: relative;
  min-width: 1000px;
  background-image: url("../../../SchoolDesign/images/bg1.jpg");
  background-position: center !important;
  background-repeat: no-repeat !important;
  background-size: cover !important;
  background-color: #515256 !important;
  opacity:1 ;
  transition: opacity 1s cubic-bezier(0, 0, 1, 1);
  transition-delay: 300ms;
}

JS

//背景轮播
// 定义图片路径 {num} 为 可变的图片序号
var bgImgUrl = '../../SchoolDesign/images/bg{num}.jpg', bgNum,
    bgImgArr = [],
    bgDiv = $('#img-background');
// 图片循环序号
for (var i = 1; i <= 2; i++) {
    bgImgArr.push(bgImgUrl.replace('{num}', i));
    console.log(bgImgArr);
}
setBGimg();
function setBGimg(d) {
    if (!bgNum || bgNum >= bgImgArr.length) bgNum = 0;
    // bgDiv.style.opacity = 0.1;
    bgDiv.css('opacity', '0.01');
    // bgDiv.fadeIn(1000);
    setTimeout(function () {
        // bgDiv.style.backgroundImage = 'url(' + bgImgArr[bgNum] + ')';
        bgDiv.css('background', 'url(' + bgImgArr[bgNum] + ')');
        bgNum++;
        // bgDiv.style.opacity = 1;
        bgDiv.css('opacity', '1');
    }, 1000);
    if (typeof d == 'undefined')
        setInterval(function () {
            setBGimg(true);
        }, 6000);
    // 上一行的 6000 是背景图片自动切换时间(单位 毫秒)
}

显示效果不如fade淡入淡出,肯定在transition的样式没有设置好!

其他示例

参考

PreviousCSS揭秘NextCSS绘制序列帧动画

Last updated 3 years ago

级纯CSS3写的超炫3D页面切换
简爱博客-为网页添加动态背景