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 相关文章推荐
javascript XMLHttpRequest对象全面剖析
Apr 24 Javascript
容易被忽略的JS脚本特性
Sep 13 Javascript
js读取cookie方法总结
Oct 31 Javascript
javascript实现简单加载随机色方块
Dec 25 Javascript
jQuery toggle 代替方法
Mar 22 Javascript
Vue.js计算属性computed与watch(5)
Dec 09 Javascript
js 数组详细操作方法及解析合集
Jun 01 Javascript
vue安装和使用scss及sass与scss的区别详解
Oct 15 Javascript
小程序实现列表删除功能
Oct 30 Javascript
详解50行代码,Node爬虫练手项目
Apr 22 Javascript
详解Vue 项目中的几个实用组件(ts)
Oct 29 Javascript
Vue发布订阅模式实现过程图解
Apr 30 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中全面阻止SQL注入式攻击分析小结
2012/01/30 PHP
php 模拟post_验证页面的返回状态(实例讲解)
2013/10/28 PHP
php中sql注入漏洞示例 sql注入漏洞修复
2014/01/24 PHP
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 2611816 bytes)
2014/11/08 PHP
php基于dom实现读取图书xml格式数据的方法
2017/02/03 PHP
利用Homestead快速运行一个Laravel项目的方法详解
2017/11/14 PHP
Javascript下IE与Firefox下的差异兼容写法总结
2010/06/18 Javascript
ASP.NET jQuery 实例2 (表单中使用回车在TextBox之间向下移动)
2012/01/13 Javascript
node.js中的fs.mkdirSync方法使用说明
2014/12/17 Javascript
jQuery检测鼠标左键和右键点击的方法
2015/03/17 Javascript
深入解析JavaScript编程中的this关键字使用
2015/11/09 Javascript
JS基于clipBoard.js插件实现剪切、复制、粘贴
2016/05/03 Javascript
js实现当鼠标移到表格上时显示这一格全部内容的代码
2016/06/12 Javascript
基于MVC5和Bootstrap的jQuery TreeView树形控件(一)之数据支持json字符串、list集合
2016/08/11 Javascript
Bootstrap模态框插件使用详解
2017/05/11 Javascript
探究react-native 源码的图片缓存问题
2017/08/24 Javascript
JS实现json数组排序操作实例分析
2019/10/28 Javascript
vue 判断页面是首次进入还是再次刷新的实例
2020/11/05 Javascript
[02:28]DOTA2亚洲邀请赛附加赛 RECAP赛事回顾
2015/01/29 DOTA
[42:32]DOTA2上海特级锦标赛B组资格赛#2 Fnatic VS Spirit第二局
2016/02/27 DOTA
python+opencv实现动态物体追踪
2018/01/09 Python
使用tensorflow实现线性回归
2018/09/08 Python
python获取指定日期范围内的每一天,每个月,每季度的方法
2019/08/08 Python
用openCV和Python 实现图片对比,并标识出不同点的方式
2019/12/19 Python
HTML5 Canvas玩转酷炫大波浪进度图效果实例(附demo)
2016/12/14 HTML / CSS
美国狗旅行和户外用品领先供应商:kurgo
2020/08/18 全球购物
写好自荐信的几个要点
2013/12/26 职场文书
生产车间班组长岗位职责
2014/01/06 职场文书
服务质量承诺书
2014/03/27 职场文书
环保建议书400字
2014/05/14 职场文书
党员学习中共十八大报告思想汇报
2014/09/15 职场文书
政府班子四风问题整改措施
2014/10/04 职场文书
简易离婚协议书(范本)
2014/10/25 职场文书
小学教师师德师风自我评价
2015/03/04 职场文书
如何才能写好调研报告?
2019/07/03 职场文书
go语言-在mac下brew升级golang
2021/04/25 Golang