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封装的textarea操作方法集合(兼容很好)
Nov 16 Javascript
jquery自定义滚动条插件示例分享
Feb 21 Javascript
不得不分享的JavaScript常用方法函数集(上)
Dec 23 Javascript
利用Vue.js实现checkbox的全选反选效果
Jan 18 Javascript
jQuery Ajax向服务端传递数组参数值的实例代码
Sep 03 jQuery
JS验证码实现代码
Sep 14 Javascript
Vue数据绑定简析小结
May 07 Javascript
vue element中axios下载文件(后端Python)
May 10 Javascript
基于elementUI使用v-model实现经纬度输入的vue组件
May 12 Javascript
通过实例解析js简易模块加载器
Jun 17 Javascript
高效jQuery选择器的5个技巧实例分析
Nov 26 jQuery
如何利用JavaScript实现二叉搜索树
Apr 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
PHP学习笔记 IIS7下安装配置php环境
2012/10/29 PHP
用 Javascript 验证表单(form)中的单选(radio)值
2009/09/08 Javascript
浅析onsubmit校验表单时利用ajax的return false无效问题
2013/07/10 Javascript
PHP+jQuery+Ajax实现多图片上传效果
2015/03/14 Javascript
JavaScript获取一个范围内日期的方法
2015/04/24 Javascript
举例讲解jQuery对DOM元素的向上遍历、向下遍历和水平遍历
2016/07/07 Javascript
JavaScript高仿支付宝倒计时页面及代码实现
2016/10/21 Javascript
Bootstrap笔记—折叠实例代码
2017/03/13 Javascript
vuejs 单文件组件.vue 文件的使用
2017/07/28 Javascript
解决option标签selected=&quot;selected&quot;属性失效的问题
2017/11/06 Javascript
在Vue methods中调用filters里的过滤器实例
2018/08/30 Javascript
vue-router 实现导航守卫(路由卫士)的实例代码
2018/09/02 Javascript
Intellij IDEA搭建vue-cli项目的方法步骤
2018/10/20 Javascript
Vue 封装防刷新考试倒计时组件的实现
2020/06/05 Javascript
[00:35]DOTA2上海特级锦标赛 Newbee战队宣传片
2016/03/03 DOTA
python中使用enumerate函数遍历元素实例
2014/06/16 Python
对Python新手编程过程中如何规避一些常见问题的建议
2015/04/01 Python
Ubuntu下安装PyV8
2016/03/13 Python
总结网络IO模型与select模型的Python实例讲解
2016/06/27 Python
使用Turtle画正螺旋线的方法
2017/09/22 Python
pyqt5的QWebEngineView 使用模板的方法
2018/08/18 Python
使用 Python 实现微信群友统计器的思路详解
2018/09/26 Python
将string类型的数据类型转换为spark rdd时报错的解决方法
2019/02/18 Python
更新pip3与pyttsx3文字语音转换的实现方法
2019/08/08 Python
python接口自动化如何封装获取常量的类
2019/12/24 Python
Pytorch 搭建分类回归神经网络并用GPU进行加速的例子
2020/01/09 Python
Expedia挪威官网:酒店、机票和租车
2018/03/03 全球购物
哄娃神器4moms商店:美国婴童用品品牌
2019/03/07 全球购物
澳大利亚在线床零售商:Bedworks
2020/09/01 全球购物
食品营养与检测应届生求职信
2013/11/08 职场文书
党员实事承诺书
2014/03/26 职场文书
离婚上诉状范文
2015/05/23 职场文书
微信小程序中使用vant框架的具体步骤
2022/02/18 Javascript
Arthas排查Kubernetes中应用频繁挂掉重启异常
2022/02/28 MySQL
Python的代理类实现,控制访问和修改属性的权限你都了解吗
2022/03/21 Python
SpringBoot使用AOP实现统计全局接口访问次数详解
2022/06/16 Java/Android