CSS3实现图片渐入效果
很多网站都有那种图片渐入的效果,如:http://www.mi.com/minote/,这种效果用css3和一些js实现起来特别简单。
拿我之前做的页面来说一下怎么利用css3来实现图片渐入效果。
下面是页面中的一段html:
<div class="features">
<div class="container">
<div class="inner feature">
<div class="content">
<h2 class="title"><img src="./imgs/title1.png" alt=""/></h2>
<p class="text">256位SSL加密安全连接,手机短信验证、谷歌两步验证、资金密码、邮箱验证四重验证保障安全,钱包分布式离线冷存储</p>
</div>
<img class="icon" src="./imgs/feature-icon1.png" alt=""/>
</div>
</div>
<div class="container middle">
<div class="inner feature">
<div class="content">
<h2 class="title"><img src="./imgs/title1.png" alt=""/></h2>
<p class="text">256位SSL加密安全连接,手机短信验证、谷歌两步验证、资金密码、邮箱验证四重验证保障安全,钱包分布式离线冷存储</p>
</div>
<img class="icon" src="./imgs/feature-icon2.png" alt=""/>
</div>
</div>
<div class="container">
<div class="inner feature">
<div class="content">
<h2 class="title"><img src="./imgs/title1.png" alt=""/></h2>
<p class="text">256位SSL加密安全连接,手机短信验证、谷歌两步验证、资金密码、邮箱验证四重验证保障安全,钱包分布式离线冷存储</p>
</div>
<img class="icon" src="./imgs/feature-icon3.png" alt=""/>
</div>
</div>
</div>
首先,需要先定位图片,把图片定位在渐入后最终停留的位置:
.feature .icon {
position: absolute;
top: 100px;
}
接着,利用css3的transform属性和translate()方法实现图片的偏移,还有就是将图片透明度设为0(即完全透明):
.feature .icon {
position: absolute;
top: 100px;
transform: translate3d(0, 0, 150px);
-ms-transform: translate3d(0, 150px, 0);
-webkit-transform: translate3d(0, 150px, 0);
-o-transform: translate3d(0, 150px, 0);
-moz-transform: translate3d(0, 150px, 0);
opacity: 0;
}
这边需要加上各浏览器的前缀来兼容一些低版本浏览器。这些属性和方法的具体用法这边就细讲了。
然后,要用到的是css3的transition属性:
.feature .icon {
position: absolute;
top: 100px;
transform: translate3d(0, 0, 150px);
-ms-transform: translate3d(0, 150px, 0);
-webkit-transform: translate3d(0, 150px, 0);
-o-transform: translate3d(0, 150px, 0);
-moz-transform: translate3d(0, 150px, 0);
opacity: 0;
transition: transform 1s ease 0s, opacity 1s ease 0s;
-moz-transition: -moz-transform 1s ease 0s, opacity 1s ease 0s;
-webkit-transition: -webkit-transform 1s ease 0s, opacity 1s ease 0s;
-o-transition: -o-transform 1s ease 0s, opacity 1s ease 0s;
-ms-transition: -ms-transform 1s ease 0s, opacity 1s ease 0s;
}
transition属性是一个过渡属性,当元素从一种样式变换为另一种样式时为元素添加效果。
到这还没有效果。我们要达到的效果是:当网页往下滚动,图片出现或将要出现在视窗时,我们来触发这个过渡效果,就像大家看到的下面这张图片一样。这个做法就像图片的惰性加载,图片还没出现在视窗中时,先不加载,出现时再去加载图片,这样的效果就是用户访问页面的速度提升了。

(function (win) {
$(function(){
$(win).scroll(function() {
var windowPageYOffset = window.pageYOffset,
windowPageYOffsetAddHeight = windowPageYOffset + window.innerHeight;
var imgOffsetTop = $(".transImg").offset().top;
if (imgOffsetTop >= windowPageYOffset && imgOffsetTop < windowPageYOffsetAddHeight) {
$(".transImg").css({
"transform": "translate3d(0, 0, 0)",
"-ms-transform": "translate3d(0, 0, 0)",
"-o-transform": "translate3d(0, 0, 0)",
"-webkit-transform": "translate3d(0, 0, 0)",
"-moz-transform": "translate3d(0, 0, 0)",
"opacity": 1
});
}
})
})
}(window))
</script>
当页面往下滚动时,用js判断图片在什么时候触发动画:
(function (win) {
$(function(){
$(win).scroll(function() {
// 浏览器窗口的高度
var windowPageYOffset = win.pageYOffset;
// 浏览器窗口的高度 + 页面滚动的距离
var windowPageYOffsetAddHeight = windowPageYOffset + window.innerHeight;
// 该值越小,越早触发效果,自己随便设置
var sensitivity = 0;
var imgOffsetTop = $(".transImg").offset().top;
if (imgOffsetTop >= windowPageYOffset && imgOffsetTop < windowPageYOffsetAddHeight + sensitivity) {
// 达到一定位置,触发效果,透明度变为1
$(".transImg").css({
"transform": "translate3d(0, 0, 0)",
"-ms-transform": "translate3d(0, 0, 0)",
"-o-transform": "translate3d(0, 0, 0)",
"-webkit-transform": "translate3d(0, 0, 0)",
"-moz-transform": "translate3d(0, 0, 0)",
"opacity": 1
});
}
})
})
}(window))
到这里就完了。
完整代码可以查看:https://github.com/lwzhang/practice/tree/gh-pages/biteduo
DEMO:https://lwzhang.github.io/practice/biteduo/index.html
CSS3实现图片渐入效果的更多相关文章
- CSS3之图片3D翻转效果(网页效果--每日一更)
今天,带来的是纯CSS3的效果--图片3D翻转. 请看效果:亲,请点击这里 这个效果主要还是运用了CSS3的transform变形属性,与上个效果不同的是,这次并不是动画,所以没有采用animatio ...
- js、css3实现图片的放大效果
今天看网易的网站上,当我把鼠标放上去的时候发现图片放大,移开图片缩小,于是自行尝试,结果如下. 方法一:使用js和css3 效果如图: 这样的实现非常简单,就是利用js的mouseover和 mous ...
- css3轮播渐显效果 2016/11/29
css3因为其兼容性的问题,被我忽略很久,这次正好做到一个轮播渐显的效果,想了想,正好复习下css3的相关内容,废话不多说,直接上代码. <ul class="cb-slideshow ...
- 以“图片渐入渐出”为例讲述jQuery插件的具体实现
首先声明,此代码以网友“斯迈欧”原创作为此例的讲解: 在这之前我们先看看我们要做的效果是什么样的: 解析下面的样式:我们要图片在过“一定时间”后自动切换,在右下角处有小方块似数字1,2,3,4,这些数 ...
- CSS3特效----图片动态提示效果
需掌握的知识点: 1.掌握两个HTML5新标签figure以及figcaption的用法 2.掌握transform的属性特点,并能熟练运用 3.学会通过transition及transform配合, ...
- CSS3 banner图片的标签效果
放body看,你懂的:)
- css内容渐入效果实现
.fade-in-section { opacity: 0; transform: translateY(20vh); visibility: hidden; transition: opacity ...
- 在FL Studio中如何做出渐入的人声效果
当我们在拿到一段人声并想把它加入歌曲中时,如果我们发现人声没有渐入的效果,直接加入到歌曲里出现会变得很突兀的话,我们就需要用到这篇文章所介绍的方法,给人声加上一个渐入的效果. 1. 找到我们需要处理的 ...
- css3鼠标悬停图片渐显飞入效果
body程序: <div id="bei"> <div id="img"><img src="xianzi.png&qu ...
随机推荐
- MySQL Workbench 6.3CE 菜单汉化 xml
找了很多 CSDN都要积分 直接自己搞了个 MySQL8.0亲测可以 https://pan.baidu.com/s/1Mwbye2tUj2u3RMdR_oW7rQ
- 剑指Offer_编程题之用两个栈实现队列
题目描述 用两个栈来实现一个队列,完成队列的Push和Pop操作. 队列中的元素为int类型.
- Java基础之File类的使用
Java基础之File类的使用 1.File类的构造方法和常用方法 2.对File中listFile(FileNameFilter name)学习 3.与File文件类相关的实现 File类的构造方法 ...
- 【Linux】管理文件系统
文件系统概念: 文件系统是指文件的组织与管理结构,是一个有关于磁盘中各种有用信息的记录——即是保存以下信息的结构记录表 当前所使用磁盘的容量信息 磁盘的可用信息,包括已占用和剩余的空间: 文件与目录的 ...
- 3.Hadoop测试Yarn和MapReduce
Hadoop测试Yarn和MapReduce 1.配置Yarn (1)配置ResourceManager 生产环境中,一般是重开一台机器作为ResourceManager,这里我们以Master机器代 ...
- python财经数据接口包Tushare pro的入门及简单使用方式(大数据,股票数据接口)
最近在做一个项目,需要用到股票的数据,我在网上查了很久,最终发现在股票数据上面还是tushare比较专业,而且对于将来做金融行业的大数据这一块的,tushare绝对是你的一个好帮手,所以下面我就简单介 ...
- hive错误排查一:hive中执行 drop table命令卡住,删除表不成功
起因 公司用的AWS EMR上的hive,突然不能删除表了. 经过 分析来看,估计是元数据那块出了问题.从元数据入手,元数据存在mysql的hive数据库中 直接使用hive配置文件hive-site ...
- SDR软件无线电知识要点(三)EVM
SDR软件无线电知识要点(三)EVM 信号质量如何评估 Noise Figure (NF) or sensitivity and Error Vector Magnitude (EVM) provid ...
- 机器人操作系统ROS-工作空间的建立
运行例子为重德智能的github中的robot_sim_demo 创建一个robot_ws工作空间 1. mkdir -p robot_ws/src #创建catkin 工作空间 2. cd ro ...
- go VS NET 字符串操作能力
今天拿golang 与 NET4.0 做了在字符串方面的性能比较,看看谁牛! 一.读取txt文本文件 GO的代码: readbuf, _ := ioutil.ReadFile(userFile) st ...