react实现一个优雅的图片占位模块组件详解


Posted in Javascript onOctober 30, 2017

前言

发现项目中的图片占位模块写得很不优雅,找了一圈,发现没找到自己想要的图片组件。于是自己写了一个,写了一个还算优雅的图片组件:mult-transition-image-view

截图:

react实现一个优雅的图片占位模块组件详解

功能简介

首先它是一个比较优雅的组件:用起来不头疼。

第二个它能实现以下场景:

  • 没有图片的时候,显示一个占位图(可以直接用css来写背景,方便自定义)
  • 希望在加载大图的时候,能先占位一张小图,然后再过渡到一张大图。类似上面的截图。

使用方法

安装npm 包

npm install react-mult-transition-image-view

代码部分

import ImageBoxView from 'react-mult-transition-image-view'

 <ImageBoxView img="#你的图片#"/>

当然 你可以设置其他属性

<ImageBoxView
 width="320" // 
 height="200" // 宽高,会转化成 style 属性
 mode="style" // 使用 style 去显示图片(默认:img)
 img="#你要的图片#"/> // 图片路径

小图过渡到大图的效果

<ImageBoxView
 animate="fade" // 会触发动画样式(见下方样式部分 )
 mode="style" // 使用 style 去显示图片(默认:img)
 img={['#小图地址#', '#大图地址#']}/> // img 传入数组形式。

实现随机显示图片

当有很多图片的时候,可以让图片随机时间显示,增加图片显示出来的体验
(一起出来真的有点丑)

<ImageBoxView
 delay="100" // 延迟加载(默认:0),可以传入一个随机数
 img="#你要的图片#"/> // 图片路径

幻灯片效果

因为 img 属性可以传入数组,所以 理论上可以加载很多图,实现幻灯片效果。
使用 wait 属性 来设置,每张图片加载后的等待时间

<ImageBoxView
 animate="fade" // 会触发动画样式(见下方样式部分 )
 wait="100" // 每张图片加载完后,继续加载下一张的时间(默认:0)
 mode="style" // 使用 style 去显示图片(默认:img)
 img={['#图片1#', '#图片2#', '#图片3#']}/> // img 传入数组形式。

样式部分

别忘了样式部分

.c-img-box{
 display:inline-block;
 width: 320px;
 height: 200px;
 background: #f7f6f5;
 position: relative;
 .img-hold{
 overflow: hidden;
 background-size: cover;
 background-repeat: no-repeat;
 background-position: center;
 img{
  width:100%;
  height:100%;
 }
 &.img-animate{
  transition: opacity 0.5s;
 }
 }
 
 .img-cover{
 background: url('https://d.2dfire.com/om/images/menulist/7deb58da.default.png') no-repeat center/300px;
 background-color:#f0f0f0;
 }
 
 .img-cover,
 .img-hold,
 .img-hide{
 position: absolute;
 width: 100%;
 height: 100%;
 top:0;
 left:0;
 }
 
 .img-hide{
 opacity: 0;
 }
 
}

TODO

github: https://github.com/qilei0529/react-mult-transition-image-view

本地下载:http://xiazai.3water.com/201710/yuanma/react-mult-transition-image-view(3water.com).rar

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
js+css使DIV始终居于屏幕中间 左下 左上 右上 右下的代码集合
Mar 10 Javascript
JavaScript词法作用域与调用对象深入理解
Nov 29 Javascript
js的image onload事件使用遇到的问题
Jul 15 Javascript
jQuery统计指定子元素数量的方法
Mar 17 Javascript
JavaScript创建闭包的两种方式的优劣与区别分析
Jun 22 Javascript
基于jQuey实现鼠标滑过变色(整行变色)
Dec 07 Javascript
AngularJS中的Promise详细介绍及实例代码
Dec 13 Javascript
vue-resource 拦截器(interceptor)的使用详解
Jul 04 Javascript
JS实现非首屏图片延迟加载的示例
Jan 06 Javascript
Node.js readline模块与util模块的使用
Mar 01 Javascript
使用Node搭建reactSSR服务端渲染架构
Aug 30 Javascript
vue + node如何通过一个Txt文件批量生成MP3并压缩成Zip
Jun 02 Javascript
ES6 javascript中class类的get与set用法实例分析
Oct 30 #Javascript
原生JS与jQuery编写简单选项卡
Oct 30 #jQuery
简单实现jQuery弹窗效果
Oct 30 #jQuery
Bootstrap栅格系统的使用详解
Oct 30 #Javascript
ES6 javascript中class静态方法、属性与实例属性用法示例
Oct 30 #Javascript
用React实现一个完整的TodoList的示例代码
Oct 30 #Javascript
JavaScript实现精美个性导航栏筋斗云效果
Oct 29 #Javascript
You might like
基于session_unset与session_destroy的区别详解
2013/06/03 PHP
linux环境apache多端口配置虚拟主机的方法深入介绍
2013/06/09 PHP
PHP仿博客园 个人博客(1) 数据库与界面设计
2013/07/05 PHP
yii操作cookie实例简介
2014/07/09 PHP
Laravel框架路由和控制器的绑定操作方法
2018/06/12 PHP
使用 PHP Masked Package 屏蔽敏感数据的实现方法
2019/10/15 PHP
js实现ASP分页函数 HTML分页函数
2006/09/22 Javascript
网上应用的一个不错common.js脚本
2007/08/08 Javascript
jQuery中使用Ajax获取JSON格式数据示例代码
2013/11/26 Javascript
使用正则表达式的格式化与高亮显示json字符串
2014/12/03 Javascript
pc加载更多功能和移动端下拉刷新加载数据
2016/11/07 Javascript
懒加载实现的分页&amp;&amp;网站footer自适应
2016/12/21 Javascript
canvas滤镜效果实现代码
2017/02/06 Javascript
JS实现获取图片大小和预览的方法完整实例【兼容IE和其它浏览器】
2017/04/24 Javascript
JS中mouseup事件丢失的原因与解决办法
2017/06/14 Javascript
JS表单传值和URL编码转换
2018/03/03 Javascript
修改npm全局安装模式的路径方法
2018/05/15 Javascript
Vue+Element实现网页版个人简历系统(推荐)
2019/12/31 Javascript
浅析微信小程序自定义日历组件及flex布局最后一行对齐问题
2020/10/29 Javascript
Python实现霍夫圆和椭圆变换代码详解
2018/01/12 Python
pytorch训练imagenet分类的方法
2018/07/27 Python
pycharm创建scrapy项目教程及遇到的坑解析
2019/08/15 Python
基于keras 模型、结构、权重保存的实现
2020/01/24 Python
使用Python合成图片的实现代码(图片添加个性化文本,图片上叠加其他图片)
2020/04/30 Python
python tqdm库的使用
2020/11/30 Python
关于CSS Tooltips(鼠标经过时显示)的效果
2013/04/10 HTML / CSS
CSS3媒体查询Media Queries基础学习教程
2016/02/29 HTML / CSS
乔丹诺(Giordano)酒庄德国官网:找到最好的意大利葡萄酒
2017/12/28 全球购物
Net Remoting把服务器端激活两种模式
2014/01/22 面试题
淘宝网店营销策划书
2014/01/11 职场文书
金融事务专业毕业生求职信
2014/02/23 职场文书
学习十八届四中全会精神思想汇报
2014/10/23 职场文书
2015年高一班主任工作总结
2015/05/13 职场文书
2015法院个人工作总结范文
2015/05/25 职场文书
母婴行业实体、电商模式全面解析
2019/08/01 职场文书
浅谈 JavaScript 沙箱Sandbox
2021/11/02 Javascript