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 相关文章推荐
JQuery 应用 JQuery.groupTable.js
Dec 15 Javascript
JavaScript传递变量: 值传递?引用传递?
Feb 22 Javascript
jquery图片放大镜功能的实例代码
Mar 26 Javascript
js中window.open()的所有参数详细解析
Jan 09 Javascript
js 去除字符串第一位逗号的方法
Jun 07 Javascript
node.js中的fs.writeFile方法使用说明
Dec 14 Javascript
原生js和jQuery写的网页选项卡特效对比
Apr 27 Javascript
基于jquery编写的放大镜插件
Mar 23 Javascript
最原始的jQuery注册验证方式
Oct 11 Javascript
Bootstrap基本组件学习笔记之input输入框组(9)
Dec 07 Javascript
bootstrap timepicker在angular中取值并转化为时间戳
Jun 13 Javascript
详解如何构建Promise队列实现异步函数顺序执行
Oct 23 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
一个简单php扩展介绍与开发教程
2010/08/19 PHP
解析PHP缓存函数的使用说明
2013/05/10 PHP
CodeIgniter框架过滤HTML危险代码
2014/06/12 PHP
PHP实现图片自动清理的方法
2015/07/08 PHP
基于thinkPHP实现的微信自定义分享功能示例
2016/09/23 PHP
PHP学习记录之常用的魔术常量详解
2019/12/12 PHP
JavaScript中常用的运算符小结
2012/01/18 Javascript
关于jQuery参考实例 1.0 jQuery的哲学
2013/04/07 Javascript
又一款MVVM组件 构建自己的Vue组件(2)
2017/03/13 Javascript
JS传参及动态修改页面布局
2017/04/13 Javascript
js es6系列教程 - 基于new.target属性与es5改造es6的类语法
2017/09/02 Javascript
浅谈React 服务器端渲染的使用
2018/05/08 Javascript
jQuery实现购物车的总价计算和总价传值功能
2018/11/28 jQuery
js字符串倒序的实例代码
2018/11/30 Javascript
javascript获取select值的方法完整实例
2019/06/20 Javascript
JS实现单张或多张图片持续无缝滚动的示例代码
2020/05/10 Javascript
Python进程间通信Queue实例解析
2018/01/25 Python
Python多层装饰器用法实例分析
2018/02/09 Python
pandas.DataFrame选取/排除特定行的方法
2018/07/03 Python
用Python和WordCloud绘制词云的实现方法(内附让字体清晰的秘笈)
2019/01/08 Python
对DataFrame数据中的重复行,利用groupby累加合并的方法详解
2019/01/30 Python
更新修改后的Python模块方法
2019/03/03 Python
python挖矿算力测试程序详解
2019/07/03 Python
S’well Bottle保温杯官网:绝缘不锈钢水瓶
2018/05/09 全球购物
黄色火烈鸟:De Gele Flamingo
2019/03/18 全球购物
2019史上最全Database工程师题库
2015/12/06 面试题
入党自我鉴定范文
2013/10/04 职场文书
简历自我评价怎么写呢?
2014/01/06 职场文书
中医临床专业自我鉴定范文
2014/01/15 职场文书
艺术学院毕业生自我评价
2014/03/02 职场文书
管理部副部长岗位职责范文
2014/03/09 职场文书
经济贸易系毕业生求职信
2014/05/31 职场文书
水利水电建筑施工应届生求职信
2014/07/04 职场文书
2014年城市管理工作总结
2014/12/02 职场文书
2015年大学迎新晚会总结
2015/07/16 职场文书
Java获取字符串编码格式实现思路
2022/09/23 Java/Android