循序渐进BootstrapVue,开发公司门户网站(2)--- 使用wow.js动画组件以及自定义的CSS样式处理动态效果
在我们开发的页面中,让页面有一些动画效果,可以让页面更加有吸引力,只要不是处理太过,一般人还是希望有一些动态效果,如滚动动画加载,悬停处理变化等效果,本篇随笔介绍使用wow.js动画组件以及自定义的CSS样式处理动态效果,增加公司门户网站页面的动画效果。
1、使用wow.js动画组件
WOW.js 依赖 animate.css,所以它支持 animate.css 多达 60 多种的动画效果,你可以改变动画设置喜欢的风格、延迟、长度、偏移和迭代等,能满足您的各种需求。
我们使用的时候,使用npm安装它,并导入相应的动画样式文件即可。
npm install wowjs --save-dev
安装后,在vue项目的main.js中全局引入样式文件
//引入wowjs所需
import 'wowjs/css/libs/animate.css' //此处就是wowjs中自带的animate的位置
HTML页面代码使用动画的时候,添加对应的类属性即可,如下所示。
<section class="wow slideInLeft"></section>
<section class="wow slideInRight"></section>
如我们实际很多页面都用了动画效果,代码如下所示,红框部分就是WOW动画所需的一些属性设置。

类名前面的wow是每一个带动画的元素都要加的,slideInLeft就是说明动画样式。后面的data-wow-duration(动画持续时间)、data-wow-delay(动画延迟时间)、data-wow-offset(元素的位置露出后距离底部多少像素执行)和data-wow-iteration(动画执行次数)这四个属性可选可不选。
data-wow-duration:更改动画持续时间
data-wow-delay:动画开始前的延迟
data-wow-offset:开始动画的距离(与浏览器底部相关)
data-wow-iteration:动画的次数重复(无限次:infinite)
| wow rollIn | 从左到右、顺时针滚动、透明度从100%变化至设定值 | 
| wow bounceIn | 从原位置出现,由小变大超出设定值,再变小小于设定值,再回归设定值、透明度从100%变化至设定值 | 
| wow bounceInUp | 从下往上、窜上来以后会向上超出一部分然后弹回去、透明度为设定值不变 | 
| wow bounceInDown | 从上往下、掉下来以后会向下超出一部分然后弹跳一下、透明度为设定值不变 | 
| wow bounceInLeft | 从左往右、移过来以后会向右超出一部分然后往左弹一下、透明度为设定值不变 | 
| wow bounceInRight | 从右往左、移过来以后会向左超出一部分然后往右弹一下、透明度为设定值不变 | 
| wow slideInUp | 从下往上、上来后固定到设定位置、透明度为设定值不变(up是从下往上)(如果元素在最下面,会撑开盒子高度) | 
| wow slideInDown | 从上往下、上来后固定到设定位置、透明度为设定值不变 | 
| wow slideInLeft | 从左往右、上来后固定到设定位置、透明度为设定值不变(left却是从左往右) | 
| wow slideInRight | 从右往左、上来后固定到设定位置、透明度为设定值不变 | 
| wow lightSpeedIn | 从右往左、头部先向右倾斜,又向左倾斜,最后变为原来的形状、透明度从100%变化至设定值 | 
| wow pulse | 原位置放大一点点在缩小至原本大小、透明度为设定值不变(配合动画执行次数属性效果更佳) | 
| wow flipInX | 原位置后仰前栽、透明度从100%变化至设定值 | 
| wow flipInY | 原位置左右旋动、透明度从100%变化至设定值 | 
| wow bounce | 上下抖动、透明度为设定值不变(配合动画执行次数和动画持续时间属性可以实现剧烈抖动亦或是慢慢抖) | 
| wow shake | 左右抖动、透明度为设定值不变(配合动画执行次数和动画持续时间属性可以实现剧烈抖动亦或是慢慢抖) | 
| wow swing | 从右往左、头部先向右倾斜,又向左倾斜,最后变为原来的形状、透明度为设定值不变 | 
| wow bounceInU | 原位置不变、直接从不显示到显示(无过过渡效果) | 
| wow wobble | 原位置不变、类似于一个人站在那左右晃头、透明度为设定值不变 | 
WOW的脚本初始化,有些人放在了main.js里面定义WOW变量,也有些人在具体页面中定义WOW变量,并初始化,都可以实现效果。
WOW可以用import也可以用require进行导入定义使用。
if (process.browser) { // 在这里根据环境引入wow.js
  var { WOW } = require('wowjs')
}
或者
 import {WOW} from 'wowjs'   
如果需要自定义配置,可如下使用:
var wow = new WOW({
    boxClass: 'wow',
    animateClass: 'animated',
    offset: 0,
    mobile: true,
    live: true
});
要页面出现动画效果,那么就必须初始化WOW
一般的初始化代码如下所示,这个放在mounted函数里面,就是需要等待所有页面组件完成加载后出现动画,或者鼠标滚动到指定的模块,也出现相应的动画效果。
  mounted () {
    //为了避免异步无法刷新,使用了同步方式await
    this.$nextTick(() => {
      if (process.browser) {
        new WOW({ live: false }).init()
      }
    })
  },
图片动画效果如下所示

2、自定义的CSS样式处理动态效果
除了借助类似WOW的第三方动画组件外,有时候我们在CSS样式里面,也可以定义一些动画效果,这个我们不深入探讨,毕竟CSS也是一门深奥的学问,我们借助一些hove的处理达到选择悬停的效果处理即可,这个Hover的处理也是比较常见的方式的。
1)悬停的时候,蒙版效果

其中HTML代码如下所示
<b-card class="overflow-hidden my-2">
<b-row no-gutters>
<b-col cols="4" class="px-2">
<b-card-img :src="item.icon" class="rounded-circle"></b-card-img>
</b-col>
<b-col cols="8">
<b-card-body class="p-2">
<b-card-title class="text-truncate">{{item.title}}</b-card-title>
<b-card-text class="card-body-text text-muted text-justify">{{item.desc}}</b-card-text>
</b-card-body>
</b-col>
</b-row>
<!-- 蒙版 -->
<div class="mask">
<b-button variant="outline-info" class="mx-auto d-block my-btn" @click="handleDetail(item.id)">了解更多</b-button>
</div>
</b-card>
CSS定义代码如下所示,悬停的时候,显示class=“mask”中的蒙版内容,移开则隐藏。
.card {
  position: relative;
  .mask {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    display: none;
    align-items: center;
    text-align: center;
    background: rgba(0, 0, 0, 0.8);
  }
}
.card:hover {
  box-shadow: 0 0 10px #ccc;
  .mask {
    display: flex !important;
  }
}
2)悬停的时候,增加边框
边框增加影子效果,如下所示

CSS 效果定义,hover的时候,box-shadow增加10px的边框
.card {
  border: none;
}
.card:hover {
  // background: #F1F1F1;
  box-shadow: 0 0 10px #ccc;
}
或者下面效果

其中hover的CSS代码如下
.single_about:hover {
  box-shadow: 0 3px 45px 0 rgba(0, 0, 0, 0.2);
  z-index: 999;
}
3、图片变换(比例放大)

CSS效果代码如下
<style scoped>
.card img {
width: 100%;
-webkit-transform: scaleY(1);
-moz-transform: scaleY(1);
-o-transform: scaleY(1);
-ms-transform: scaleY(1);
transform: scaleY(1);
-webkit-transition: all 0.7s ease-in-out;
-moz-transition: all 0.7s ease-in-out;
-o-transition: all 0.7s ease-in-out;
-ms-transition: all 0.7s ease-in-out;
transition: all 0.7s ease-in-out;
}
.card img:hover {
-webkit-transform: scale(1.5);
-moz-transform: scale(1.5);
-o-transform: scale(1.5);
-ms-transform: scale(1.5);
transform: scale(1.5);
}
</style>
当然还有很多其他的效果,如渐变等,下面这样一张图片,叠加上一个从透明到黑色的渐变,

应用了 mask 之后,就会变成这样:

mask: linear-gradient(90deg, transparent, #fff);
以上就是使用wow.js动画组件以及自定义的CSS样式处理动态效果,两者配合使用,可以实现比较活跃的页面效果,使得页面内容展示更加丰富多彩。
循序渐进BootstrapVue,开发公司门户网站(2)--- 使用wow.js动画组件以及自定义的CSS样式处理动态效果的更多相关文章
- 循序渐进BootstrapVue,开发公司门户网站(4)--- 使用b-carousel-slide组件实现图片轮播以及vue-awesome-swiper实现图片滑动展示
		在BootstrapVue组件库里面,提供了很多对Bootstrap同等类似的组件封装,其中图片轮播可以采用b-carousel-slide组件实现,而有一些小的图片,如客户/合作伙伴Logo或者友情 ... 
- 循序渐进BootstrapVue,开发公司门户网站(5)--- 使用实际数据接口代替本地Mock数据
		在我们开发一些门户网站功能的时候,有时候我们需要快速的创建数据模型来进行数据展示,因为数据结构可能处于不断的修正变化之中,因此服务端的接口我们可以暂时不开发,当我们基本完成数据结构和界面展示的时候,就 ... 
- 循序渐进BootstrapVue,开发公司门户网站(3)--- 结合邮件发送,收集用户反馈信息
		在我们公司门户网站里面,如果有需要,我们可以提供一个页面给用户反馈信息,以便获得宝贵的用户信息反馈或者一些产品咨询的记录,一般这个结合邮件发送到负责人的邮箱即可.本篇随笔结合后端发送邮件的操作,把相关 ... 
- 循序渐进BootstrapVue,开发公司门户网站(1)---基于Bootstrap网站模板构建组件界面
		在前面随笔<使用BootstrapVue相关组件,构建Vue项目界面>概括性的介绍了BootstrapVue的使用过程,其实选用这个主要就是希望能够用来构建一些公司门户网站的内容,毕竟基于 ... 
- 循序渐进BootstrapVue,开发公司门户网站(6)--- 门户网站后端内容管理
		我们在做门户网站的时候,如果网站的内容可以动态从后端进行管理,那么调整网站内容就非常方便,有时候如一些公司新闻.产品信息.轮播广告信息等都需要动态调整的,有一个方便的后端内容管理是非常方便的.本篇随笔 ... 
- 基于Vue开发的门户网站展示和后台数据管理系统
		基于Vue的前端框架有很多,这几年随着前端技术的官方应用,总有是学不完的前端知识在等着我们,一个人的精力也是有限,不可能一一掌握,不过我们学习很大程度都会靠兴趣驱动,或者目标导向,最终是可以以点破面, ... 
- nodejs 使用express开发获取其他网站引用本站点js文件的参数
		nodejs进行站点的开发其性能是很好的,在js 大行其道的天下,使用js基本上可以干好多只要我们能想到的东西,我们可以使用js文件进行用户验证等等. 这次我们就使用express 进行获取其他站点引 ... 
- 【前端开发】】ES6属性promise封装js动画
		如下是我写的demo源码: 可以直接复制用浏览器打开看到效果哦: <!DOCTYPE html> <html> <head> <meta charset=&q ... 
- wap开发使用jquery mobile之后页面不加载外部css样式文件/js文件
		场景: wap开发,使用jquery mobile之后不会加载外部自定义的css文件了,需要手动刷新才会加载,查看外部自定义的js文件也是一样. 解决办法: 1.在page下面添加css样式,就不要写 ... 
随机推荐
- MySQL备份脚本,应该这么写
			前言: 数据库备份的重要性不言而喻,特别是在生产环境,任何数据的丢失都可能产生严重的后果.所以,无论什么环境,我们都应该有相应的备份策略来定时备份数据库.在 MySQL 中,比较常用的逻辑备份工具是 ... 
- 使用BeanUtils.copyProperties踩坑经历
			1. 原始转换 提起对象转换,每个程序员都不陌生,比如项目中经常涉及到的DO.DTO.VO之间的转换,举个例子,假设现在有个OrderDTO,定义如下所示: public class OrderDTO ... 
- Spark大数据处理框架入门(单机版)
			导读 引言 环境准备 安装步骤 1.下载地址 2.开始下载 3.解压spark 4.配置环境变量 5.配置 spark-env.sh 6.启动spark服务 7.测试spark stay hungry ... 
- 搞清楚 硬件环境 os环境 网络环境 搞清楚测试工具 测试步骤 自己搭测试环境 自测
			1,遇事的第一反应要从变化情绪转变为做出判断.判断什么?判断这一件事对自己是否重要,是否关乎我的个人利益,是否影响我的人际关系等等等等.如果答案都是否,那就没必要着急忙慌了.如果答案是是 冷静,其实是 ... 
- kvm总结复习
			一.虚拟化概念 1.虚拟化技术:在计算机技术中,虚拟化(技术)或虚拟技术(英语:Virtualization)是一种资源管理技术,是将计算机的各种实体资源(CPU.内存.磁盘空间.网络适配器等),予以 ... 
- 013.Kubernetes认证授权
			一 Kubernetes认证系统介绍 1.1 访问控制 Kubernetes API的每个请求都会经过多阶段的访问控制之后才会被接受,这包括认证.授权以及准入控制(Admission Control) ... 
- IDEA 打包和导入 Jar 包
			Jar 包介绍 Jar 包 ( Java Archive,Java 归档文件) 是与平台无关的压缩文件格式,它允许将多个 Java 源文件编译生成的 class 文件(即字节码文件)打包成一个压缩文件 ... 
- linux命令--使用fsck修复文件系统
			使用fsck修复文件系统错误 1.问题描述 服务器maint_samba 由于服务器maint_samba (debian操作系统)没有正常关机,在重新启动过程中/dev/sdb1出现文件系统错误,需 ... 
- java 文件上传下载
			翻新十年前的老项目,文件上传改为调用接口方式,记录一下子~~~ java后台代码: //取配置文件中的上传目录 @Value("${uploadPath}") String pat ... 
- Go语言网络通信---连续通信的UDP编程
			Server: package main import ( "fmt" "net" ) func main() { //创建udp地址 udpAddr, _ : ... 
