热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

微信小程序自定义组件,图片加载出来之前的默认图或者默认loading动画

一、自定义组件image-loaderimage-loader.wxml

一、自定义组件 image-loader
image-loader.wxml

<view wx:if&#61;"{{!finishLoadFlag}}" class&#61;"defaultImg" style&#61;"{{width ? &#39;width:&#39; &#43; width : &#39;&#39;}};{{height ? &#39;height:&#39; &#43; height : &#39;&#39;}}" ><view class&#61;"loadEffect" hidden&#61;"{{errorFlag}}"><view class&#61;"span">view><view class&#61;"span">view><view class&#61;"span">view><view class&#61;"span">view><view class&#61;"span">view>view><view class&#61;"loadEffectError" style&#61;"{{height ? &#39;line-height:&#39; &#43; height : &#39;&#39;}};" hidden&#61;"{{!errorFlag}}">加载失败view>
view>
<image mode&#61;"{{mode}}" class&#61;"originImg {{finishLoadFlag ? &#39;&#39; : &#39;before-load&#39;}}" src&#61;"{{originalImage}}" bindload&#61;"finishLoad" binderror&#61;"errorLoad" style&#61;"{{finishLoadFlag && width ? &#39;width:&#39; &#43; width : &#39;&#39;}};{{finishLoadFlag && height ? &#39;height:&#39; &#43; height : &#39;&#39;}}" />

image-loader.wxss

.before-load {width : 0;height : 0;opacity: 0;vertical-align: middle;
}
.defaultImg{display:inline-block;vertical-align: middle;background:rgba(254,200,92,0.1);
}
.originImg{vertical-align: middle;
}
.loadEffect{width:100%;height:100%;display:flex;justify-content: space-around;align-items:center;
}
.loadEffectError{text-align:center;width:100%;height:100%;color:#FB9541;
}
.loadEffect .span{display: inline-block;width: 22rpx;height: 22rpx;border-radius: 50%;background: rgba(254,200,92,0.7);-webkit-animation: load 1.04s ease infinite;animation: load 1.04s ease infinite;
}
/* .loadEffect span:last-child{margin-right: 0rpx;
} */

&#64;-webkit-keyframes load{0%{opacity: 1;}100%{opacity: 0;}
}
&#64;keyframes load{0%{opacity: 1;}100%{opacity: 0;}
}
.loadEffect .span:nth-child(1){-webkit-animation-delay:0.13s;animation-delay:0.13s;
}
.loadEffect .span:nth-child(2){-webkit-animation-delay:0.26s;animation-delay:0.26s;
}
.loadEffect .span:nth-child(3){-webkit-animation-delay:0.39s;animation-delay:0.39s;
}
.loadEffect .span:nth-child(4){-webkit-animation-delay:0.52s;animation-delay:0.52s;
}
.loadEffect .span:nth-child(5){-webkit-animation-delay:0.65s;animation-delay:0.65s;
}

image-loader.json

{"component": true,"usingComponents": {}
}

image-loader.js

/*** 图片预加载组件*/
Component({options: {styleIsolation: &#39;isolated&#39;},properties: {//默认图片defaultImage: String,//原始图片originalImage: String,width: String,height: String,finishLoadFlag:{type:Boolean,value:false},errorFlag:{type:Boolean,value:false},//图片剪裁mode&#xff0c;同Image组件的modemode: {type:String,value:&#39;scaleToFill&#39;}},methods: {finishLoad: function (e) {let finishLoadFlag &#61; true;let errorFlag &#61; false;this.triggerEvent(&#39;changeFlag&#39;,{finishLoadFlag,errorFlag});},errorLoad(){let finishLoadFlag &#61; false;let errorFlag &#61; true;this.triggerEvent(&#39;changeFlag&#39;,{finishLoadFlag,errorFlag});}}
})

二、调用自定义组件
调用页面组件&#xff1a;
json 文件

"usingComponents": {"image-loader": "../../../components/image-loader/image-loader"
}

.xml 文件

<image-loader width&#61;"640rpx" height&#61;"360rpx" originalImage&#61;"{{imgPath}}" finishLoadFlag&#61;"{{finishLoadFlag}}" errorFlag&#61;"{{errorFlag}}" bind:changeFlag&#61;"changeFlag">image-loader>

js 文件

//定义&#xff1a;
data:{finishLoadFlag:false,errorFlag:false,imgPath:&#39;&#39;
}
//imgPath 为远程图片地址
//changeFlag 函数是切换远程图片地址要更改当前图片加载状态
changeFlag(e){let finishLoadFlag &#61; e.detail.finishLoadFlag;let errorFlag &#61; e.detail.errorFlag;this.setData({finishLoadFlag,errorFlag})
},


推荐阅读
  • 突破MIUI14限制,自定义胶囊图标、大图标样式,支持任意APP
    本文介绍了如何突破MIUI14的限制,实现自定义胶囊图标和大图标样式,并支持任意APP。需要一定的动手能力和主题设计师账号权限或者会主题pojie。详细步骤包括应用包名获取、素材制作和封包获取等。 ... [详细]
  • 本文介绍了使用kotlin实现动画效果的方法,包括上下移动、放大缩小、旋转等功能。通过代码示例演示了如何使用ObjectAnimator和AnimatorSet来实现动画效果,并提供了实现抖动效果的代码。同时还介绍了如何使用translationY和translationX来实现上下和左右移动的效果。最后还提供了一个anim_small.xml文件的代码示例,可以用来实现放大缩小的效果。 ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 本文讲述了如何通过代码在Android中更改Recycler视图项的背景颜色。通过在onBindViewHolder方法中设置条件判断,可以实现根据条件改变背景颜色的效果。同时,还介绍了如何修改底部边框颜色以及提供了RecyclerView Fragment layout.xml和项目布局文件的示例代码。 ... [详细]
  • C# WPF自定义按钮的方法
    本文介绍了在C# WPF中实现自定义按钮的方法,包括使用图片作为按钮背景、自定义鼠标进入效果、自定义按压效果和自定义禁用效果。通过创建CustomButton.cs类和ButtonStyles.xaml资源文件,设计按钮的Style并添加所需的依赖属性,可以实现自定义按钮的效果。示例代码在ButtonStyles.xaml中给出。 ... [详细]
  • 手把手教你使用GraphPad Prism和Excel绘制回归分析结果的森林图
    本文介绍了使用GraphPad Prism和Excel绘制回归分析结果的森林图的方法。通过展示森林图,可以更加直观地将回归分析结果可视化。GraphPad Prism是一款专门为医学专业人士设计的绘图软件,同时也兼顾统计分析的功能,操作便捷,可以帮助科研人员轻松绘制出高质量的专业图形。文章以一篇发表在JACC杂志上的研究为例,利用其中的多因素回归分析结果来绘制森林图。通过本文的指导,读者可以学会如何使用GraphPad Prism和Excel绘制回归分析结果的森林图。 ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • Webpack5内置处理图片资源的配置方法
    本文介绍了在Webpack5中处理图片资源的配置方法。在Webpack4中,我们需要使用file-loader和url-loader来处理图片资源,但是在Webpack5中,这两个Loader的功能已经被内置到Webpack中,我们只需要简单配置即可实现图片资源的处理。本文还介绍了一些常用的配置方法,如匹配不同类型的图片文件、设置输出路径等。通过本文的学习,读者可以快速掌握Webpack5处理图片资源的方法。 ... [详细]
  • Java序列化对象传给PHP的方法及原理解析
    本文介绍了Java序列化对象传给PHP的方法及原理,包括Java对象传递的方式、序列化的方式、PHP中的序列化用法介绍、Java是否能反序列化PHP的数据、Java序列化的原理以及解决Java序列化中的问题。同时还解释了序列化的概念和作用,以及代码执行序列化所需要的权限。最后指出,序列化会将对象实例的所有字段都进行序列化,使得数据能够被表示为实例的序列化数据,但只有能够解释该格式的代码才能够确定数据的内容。 ... [详细]
  • 本文介绍了在Linux下安装Perl的步骤,并提供了一个简单的Perl程序示例。同时,还展示了运行该程序的结果。 ... [详细]
  • 后台获取视图对应的字符串
    1.帮助类后台获取视图对应的字符串publicclassViewHelper{将View输出为字符串(注:不会执行对应的ac ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • Linux环境变量函数getenv、putenv、setenv和unsetenv详解
    本文详细解释了Linux中的环境变量函数getenv、putenv、setenv和unsetenv的用法和功能。通过使用这些函数,可以获取、设置和删除环境变量的值。同时给出了相应的函数原型、参数说明和返回值。通过示例代码演示了如何使用getenv函数获取环境变量的值,并打印出来。 ... [详细]
author-avatar
davidwzw2009413
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有