`

简单的toast提示,确认弹窗,显示图片预览插件

 
阅读更多

JS

/**
*  team777 dialog plugins
*   author  eric
*   created  2016.1.21
**/
(function(win){
	'use strict';
	var Team777Dialog={
		/**
		 *  demo :   toast("上传成功!");
		     toast({close:false,closeTime:1000});
		**/
		curSelector:"",
		toast:function(){//
			var options={
				close:true,//是否自动关闭窗口 true为自动 false为不自动手动关闭
				closeTime:1000,//自动关闭窗口时间  默认1000ms 关闭
				msg:"toast消息提示窗!", //消息提示消息
				css:{"background":"#000",color:"#fff",width:"auto"},
				callback:function(){
					if(console){
						console.log("消息提示消息");
					}
				}
			}
			var args=arguments;
			if(args.length>0){
				if(typeof(args[0])==="string"){
					options["msg"]=args[0];
				}else if(isJson(args[0])){
					if(args[0]){
						for(var i in args[0]){
							options[i]=args[0][i];
						}
					}
				}
			}
			showToast(options);
		},
		//关闭toast
		closeToast:function(){
			var options={};
			if(arguments.length>0){
				options=arguments[0];
			}
			hideToast(options);
		},
		//关闭confirm
		closeConfirm:function(){
			var options={};
			if(arguments.length<1){
				options=arguments[0];
			}
			hideConfirm(options);
		},
		/**
		*  显示确认
		*/
		confirm:function(){
			var options={
				title:"确认窗口",//窗口标题
				msg:"config消息提示窗!", //消息提示消息
				close:false,//默认不显示关闭
				ok:true,//是否显示OK按钮
				okTxt:"Ok",//oK按钮文字
				cancel:true,//是否显示取消按钮
				cancelTxt:"Cancel",//取消按钮文字
				cancelCall:function(){
					if(console){
						console.log("取消按钮消息");
					}
				},
				okCall:function(){
					if(console){
						console.log("确认按钮消息");
					}
				}
			}
			var args=arguments;
			if(args.length>0){
				if(typeof(args[0])==="string"){
					options["msg"]=args[0];
				}else if(isJson(args[0])){
					if(args[0]){
						for(var i in args[0]){
							options[i]=args[0][i];
						}
					}
				}
			}
			showConfirm(options);
		},
		imgPreview:function(options){
			showImgPreview(options);
		},
		closeImgPreview:function(){
			var options={};
			if(arguments.length<1){
				options=arguments[0];
			}
			closePreview(options);
		}
	};

	/**
	判断是否为json对象
	*/
	function isJson(obj){
		var isjson = typeof(obj) == "object" && Object.prototype.toString.call(obj).toLowerCase() == "[object object]" && !obj.length;
		return isjson;
	}

	/**
	* 显示图片预览
	*/
	function showImgPreview(options){
		showCover();
		// var sc=$("body").scrollTop();
		Team777Dialog.curSelector=".art-img-preview";
		$(".art-img-prev").off("click");
		$(".art-img-next").off("click");
		if($(".art-img-preview").length>0){
			var htmlArr=[];
			var imgs=options.imgs;
			if(imgs){
				var len=imgs.length;
				for(var i=0;i<len;i++){
					htmlArr.push('<li><img src="'+imgs[i]+'" alt=""></li>');
				}
			}
			$("#slider").html(htmlArr.join(""));
			$(".art-img-preview").show();
		}else{
			var htmlArr=['<div class="art-img-preview">'];
			htmlArr.push('<div class="art-img-head">');
			htmlArr.push('<h3></h3>');
			htmlArr.push('<i class="ico-del">×</i>');
			htmlArr.push('</div>');
			htmlArr.push('<div class="art-img-body" id="sliderContainer">');
			htmlArr.push('<div class="art-img-prev">&lt;</div>');
			htmlArr.push('<div class="art-img-slider-box slider-box">');
			htmlArr.push('<ul class="art-img-slider" id="slider">');
			var imgs=options.imgs;
			if(imgs){
				var len=imgs.length;
				for(var i=0;i<len;i++){
					htmlArr.push('<li><img src="'+imgs[i]+'" alt=""></li>');
				}
			}
			htmlArr.push('</ul>');
			htmlArr.push('</div>');
			htmlArr.push('<div class="art-img-next">&gt;</div>');
			htmlArr.push('</div>');
			htmlArr.push('</div>');
			// htmlArr.push('<h3>'+options.msg+'</h3>');
			$("body").append(htmlArr.join(""));
			$(".art-img-preview").on("click",".ico-del",function(){
				if(options.cancelCall){
					options.cancelCall();
				}
				closePreview(options);
			});
		}
		// $(".art-img-preview").css("marginTop",sc);
		if(options.callback){
			options.callback();
		}
		var width=$(".art-img-preview").outerWidth(),height=$(".art-img-preview").outerHeight();
		// console.log("art-img-preview---width="+width+",height="+height);
		$(".art-img-preview").css({"marginTop":-height/2,"marginLeft":-width/2});
	}

	function closePreview(options){
		if(!options){
			options={};
		}
		$(".art-img-preview").fadeOut();
		if(!options.cover){
			hideCover();
		}
	}

	/**
	* 显示toast
	*/
	function showToast(options){
		Team777Dialog.curSelector=".art-toast";
		showCover();
		// var sc=$("body").scrollTop();
		$(".art-toast").off("click",".ico-del");
		if($(".art-toast").length>0){
			$(".toa-body h3").html(options.msg);
			if(options.close){
				//存在删除按钮则隐藏
				if($(".art-toast .ico-del").length>0){
					$(".art-toast .ico-del").hide();
				}
				//自动关闭
				setTimeout(function(){
					hideToast(options);
				},options.closeTime);
			}else{
				//不存在删除则创建出来
				if($(".art-toast .ico-del").length<1){
					$(".toa-body").append('<i class="ico-del">×</i>');
				}else{
					//若需要主动关闭 存在就显示出来
					$(".art-toast .ico-del").show();
				}
				$(".art-toast").on("click",".ico-del",function(){
					hideToast(options);
				});
			}
			$(".art-toast").show();
		}else{
			var htmlArr=['<div class="art-toast">'];
			htmlArr.push('<div class="toa-body">');
			htmlArr.push('<h3>'+options.msg+'</h3>');
			// htmlArr.push('<i class="ico-del">×</i>');
			htmlArr.push('</div></div>');
			$("body").append(htmlArr.join(""));
			if(options.close){
				setTimeout(function(){
					hideToast(options);
				},options.closeTime);
			}else{
				$(".toa-body").append('<i class="ico-del">×</i>');
				$(".art-toast").on("click",".ico-del",function(){
					hideToast(options);
				});
			}
		}
		if(options.icoCss){
			$(".art-toast .ico-del").css(options.icoCss);
		}else{
			$(".art-toast .ico-del").removeAttr("style");
		}
		if(options.dialogCss){
			$(".art-toast").css(options.dialogCss);
		}else{
			$(".art-toast").removeAttr("style");
		}
		if(options.bodyCss){
			$(".art-toast h3").css(options.bodyCss);
		}else{
			$(".art-toast h3").removeAttr("style");
		}
		var width=$(".art-toast").outerWidth(),height=$(".art-toast").outerHeight();
		// console.log("art-toast---width="+width+",height="+height);
		$(".art-toast").css({"marginTop":-height/2,"marginLeft":-width/2});
		// $(".art-toast").css("marginTop",sc);
		// return html;
	}

//关闭toast
	function hideToast(options){
		if(!options){
			options={};
		}
		if(!options.cover){
			hideCover();
		}
		$(".art-toast").fadeOut();
		if(options.callback){
			options.callback();
		}
	}
//关闭背景
	function showCover(){
		if($(".art-bg-cover").length>0){
			$(".art-bg-cover").fadeIn();
		}else{
			var htmlArr=['<div class="art-bg-cover"></div>'];
			$("body").append(htmlArr.join(""));
			$(".art-bg-cover").on("click",function(){
				hideCover();
			});
		}
		$("body").css({"overflow":"hidden"});
	}
// 显示背景
	function hideCover(){
		$(".art-bg-cover").fadeOut();
		$("body").css({"overflow":"auto"});
		if(Team777Dialog.curSelector){
			$(Team777Dialog.curSelector).fadeOut();
		}
	}

//显示确认弹窗
	function showConfirm(options){
		showCover();
		Team777Dialog.curSelector=".art-dialog";
		// var sc=$("body").scrollTop();
		$(".art-dialog").off("click",".btn-ok");
		$(".art-dialog").off("click",".btn-cancel");
		if($(".art-dialog").length>0){
			if(options.title){
				if($(".dia-head").length>0){
					$(".dia-head h3").html(options.title);
				}else{
					$(".dia-body").before('<div class="dia-head"><h3>'+options.title+'</h3></div>');
				}
			}else{
				$(".dia-head").remove();
			}
			if($(".art-dialog .ico-del").length<1){
				$(".art-dialog .dia-head").append('<i class="ico-del">×</i>');
			}else{
				//若需要主动关闭 存在就显示出来
				$(".art-dialog .ico-del").show();
			}
			$(".dia-body").html(options.msg);
			$(".art-dialog").on("click",".ico-del",function(){
				hideConfirm(options);
			});
			if($(".dia-foot .btn-cancel").length>0){
				if(options.cancel){//存在cancel按钮
					$(".dia-foot .btn-cancel").html(options.cancelTxt).show();
				}else{
					$(".dia-foot .btn-cancel").hide();
				}			
			}else{
				if(options.cancel){
					$(".dia-foot").append('<button class="btn-cancel" type="button">'+options.cancelTxt+'</button>');
				}
			}
			$(".art-dialog").on("click",".btn-cancel",function(){
				hideConfirm(options);
				options.cancelCall();
			});
			if($(".dia-foot .btn-ok").length>0){
				if(options.ok){//存在cancel按钮
					$(".dia-foot .btn-ok").html(options.okTxt).show();
				}else{
					$(".dia-foot .btn-ok").hide();
				}
			}else{
				if(options.ok){
					$(".dia-foot").append('<button class="btn-ok" type="button">'+options.okTxt+'</button>');
				}
			}
			$(".art-dialog").on("click",".btn-ok",function(){
				hideConfirm(options);
				options.okCall();
			});
			$(".art-dialog").show();
		}else{
			var htmlArr=['<div class="art-dialog">']
			if(options.title){
				htmlArr.push('<div class="dia-head">');
				htmlArr.push('<h3>'+options.title+'</h3>');
				if(options.close){
					htmlArr.push('<i class="ico-del">×</i>');
				}
				htmlArr.push('</div>');
			}
			htmlArr.push('<div class="dia-body">');
			htmlArr.push(options.msg);
			htmlArr.push('</div>');
			htmlArr.push('<div class="dia-foot">');
			htmlArr.push('</div>');
			htmlArr.push('</div>');
			$("body").append(htmlArr.join(""));
			if(options.cancel){//存在cancel按钮
				$(".dia-foot").append('<button class="btn-cancel" type="button">'+options.cancelTxt+'</button>');
				$(".art-dialog").on("click",".btn-cancel",function(){
					hideConfirm(options);
					options.cancelCall();
				});
			}
			if(options.close){
				$(".art-dialog").on("click",".ico-del",function(){
					hideConfirm(options);
				});
			}
			if(options.ok){//存在ok按钮
				$(".dia-foot").append('<button class="btn-ok" type="button">'+options.okTxt+'</button>');
				$(".art-dialog").on("click",".btn-ok",function(){
					hideConfirm(options);
					options.okCall();
				});
			}
		}
		
		var css={};
		if(options.css){
			for(var i in options.css){
				if(i=="height"){
					height=options.css[i];
					css[i]=options.css[i];
				}else if(i=="width"&&options.css[i]==true){
					css[i]=$(window).width()*0.7;					
				}else{
					css[i]=options.css[i];	
				}
			}
		}else{
			$(".art-dialog").removeAttr("style");
		}
		// css.marginTop=-height/2;
		// css.marginLeft=-width/2;
		$(".art-dialog").css(css);
		var width=$(".art-dialog").outerWidth(),height=$(".art-dialog").outerHeight();
		// console.log("art-dialog,width="+width+",height="+height+JSON.stringify(css));
		if(!css.marginTop){
			css.marginTop=-height/2;
		}
		css.marginLeft=-width/2;
		$(".art-dialog").css({"marginTop":css.marginTop,"marginLeft":css.marginLeft});
	}

//关闭确认弹窗
	function hideConfirm(options){
		if(!options){
			options={};
		}
		if(!options.cover){
			hideCover();			
		}
		$(".art-dialog").fadeOut();
	}

	win["Team777Dialog"]=Team777Dialog;
})(window);

 css:

/*对话框样式 start*/
.art-bg-cover{
	background:rgba(255,255,255,.8);
	position:fixed;
	width:100%;
	height:100%;
	top:0;
	left: 0;
	filter(opacity:.8);
	opacity:.8;
	z-index:1051;
}

.art-dialog{
	max-width:500px;
	/*width:450px;*/
	margin:0 auto;
	z-index:1052;
	position: fixed;
	_position:absolute;
	top:50%;
	left:50%;
	/*transform:translate(-50%,-50%);*/
	padding:0 25px;
	border-radius:10px;
	box-shadow: 1px 1px 15px 1px #8888C3;
	background:#fff;
	/*父类修复子类放大问题 导致子类的文字 内容锯齿化*/
	/*-webkit-transform:translateZ(-23px);*/
}
.art-dialog .dia-head{
	position:relative;
	/*height:50px;*/
	/*line-height:50px;*/

}
.art-dialog .dia-head .ico-del{
	position: absolute;
    right: -10px;
    top: 10px;
    cursor: pointer;
    background: #7a8da0;
    border-radius: 10px;
    width: 20px;
    height: 20px;
    line-height: 20px;
    color: #fff;
    text-align: center;
}
.art-dialog .dia-head h3{
	padding:20px 0;
	/*text-align:center;*/
	font-size: 18px;
	border-bottom:1px solid #eee;
}

.art-dialog .dia-body{
	padding:15px 0;
	color:#808080;
	font-size:14px;
}
.art-dialog .dia-body .editor-upload-btn{
    padding: 10px 30px;
    color: #808080;
    border: 1px solid #dcdcdc;
    font-size: 14px;
    border-radius: 5px;
}
.art-dialog .dia-body .editor-file-txt{
	padding: 8px 40px;
    margin: 5px 5px 5px 10px;
}

.art-dialog .dia-foot{
	text-align: center;
	padding:20px 0;
}

.art-dialog .dia-foot button{
	color:#808080;
	padding:15px 0;
	border: 1px solid #dcdcdc;
	font-size: 14px;
	border-radius:5px;
	width:148px;
	/*min-width:148px;*/
	overflow:hidden;
	white-space:nowrap;
	text-overflow:ellipsis;
	margin: 0 10px;
}

.art-toast{
	max-width:500px;
	margin:0 auto;
	z-index:1052;
	position: fixed;
	_position:absolute;
	top:50%;
	left:50%;
	/*transform:translate(-50%,-50%);*/
	padding:0 25px;
	border-radius:10px;
	box-shadow: 1px 1px 15px 1px #8888C3;
	background:#000;
	text-align:center;
}
.art-toast .toa-body{
	position: relative;
}
.art-toast .toa-body h3{
	padding:20px 10px;
	color:#fff;
	font-size:14px;
}

.art-toast .toa-body .ico-del{
	position: absolute;
	right:-15px;
	top:5px;
	color:#fff;
	cursor:pointer;
}
/*对话框样式 end*/

 

 

使用方式:

Team777Dialog.toast("")  或  Team777Dialog.toast(msg)    

msg={

close:true,//是否自动关闭窗口 true为自动 false为不自动手动关闭

closeTime:1000,//自动关闭窗口时间  默认1000ms 关闭

msg:"toast消息提示窗!", //消息提示消息

css:{"background":"#000",color:"#fff",width:"auto"},

callback:function(){

if(console){

console.log("消息提示消息");

}

}

}

Team777Dialog.confirm(msg):  

msg={

title:"确认窗口",//窗口标题

msg:"config消息提示窗!", //消息提示消息

close:false,//默认不显示关闭

ok:true,//是否显示OK按钮

okTxt:"Ok",//oK按钮文字

cancel:true,//是否显示取消按钮

cancelTxt:"Cancel",//取消按钮文字

cancelCall:function(){

if(console){

console.log("取消按钮消息");

}

},

okCall:function(){

if(console){

console.log("确认按钮消息");

}

}

}    

 

分享到:
评论

相关推荐

    19种弹窗方式-JavaScript

    14. **图片预览**: 弹出一个窗口展示大图,常用于图片缩略图的预览。 15. **视频播放器**: 创建一个弹出式视频播放器,用户可以在弹窗内观看视频。 16. **表单验证**: 当表单提交时,弹出错误消息提示用户修正。 17....

    改进A星算法:实现多个机器人与AGV小车路径规划与动态避障的完整Matlab代码

    内容概要:本文介绍了如何利用改进的A星算法实现多个机器人和AGV小车的路径规划与动态避障。主要内容分为四个部分:首先是环境创建,通过矩阵表示地图并在特定位置设定障碍物;其次是机器人(小车)位置设置,指定起始点和目标点;然后重点讲解了改进后的A星算法,在原有基础上增加了对其他机器人位置和路径的考量,以避免碰撞;最后展示了路径规划的具体步骤以及结果显示方式。此外,文中还提供了详细的代码片段,涵盖从环境构建到路径规划的全过程,并讨论了一些优化技巧如路径冲突检测、动态权重调整等。 适合人群:从事机器人导航系统开发的研究人员和技术爱好者,特别是那些希望深入了解路径规划算法及其应用的人群。 使用场景及目标:适用于需要解决多机器人协作任务的企业和个人开发者,旨在提高自动化设备在复杂环境中的自主行动能力,确保高效且安全地完成预定任务。 其他说明:作者强调了该方法对于仓储物流等行业的重要性,并指出传统A星算法在此类应用场景中存在的局限性。同时提醒读者关注Matlab版本兼容性和实际部署时可能遇到的问题。

    【Windows系统管理】创建任务计划实现软件开机自启动:任务计划配置与BAT脚本自动化方法详解

    内容概要:本文档详细介绍了三种在Windows系统中创建任务计划以实现软件开机启动的方法。第一种方法是通过任务计划创建,包括打开任务计划、设置常规参数、触发器和操作,最终实现软件在系统重启后自动启动;第二种方法是通过降低用户权限来避免软件启动时出现UAC权限询问弹窗,具体步骤为调整用户账户控制设置到最低级别;第三种方法是利用bat脚本创建任务计划,提供了详细的脚本代码,包含管理员权限检查、可配置变量设置、创建任务命令以及相关辅助命令,同时提醒用户注意安全软件可能对任务创建或执行的限制。 适合人群:适用于有一定Windows操作系统使用经验,特别是需要设置软件开机自启动的计算机用户或IT运维人员。 使用场景及目标:①希望在系统重启后自动运行特定软件的用户;②希望通过脚本批量部署开机启动任务的企业IT管理员;③解决软件启动时UAC权限弹窗问题的用户。 阅读建议:对于想要深入了解任务计划创建机制和bat脚本编程的读者来说,建议仔细研究第三种方案中的脚本代码及其说明部分,并尝试在测试环境中进行实践操作。对于普通用户,则重点掌握前两种简单易行的方法即可。

    COMSOL实现双孔单渗透瓦斯抽采:分析煤层内裂隙与基质渗流及应力分布

    内容概要:本文详细介绍了如何使用COMSOL软件构建并实现双孔单渗透瓦斯抽采模型,探讨了煤层内部基质和裂隙的应力分布与渗透率之间的关系。文章首先解释了双孔单渗透模型的基础概念,即瓦斯在基质和裂隙中的流动特性。随后,逐步展示了如何在COMSOL环境中搭建几何模型、定义物理场以及设置材料属性,特别关注了裂隙和基质渗透率的定义及其随应力变化的影响。此外,文章还讨论了多物理场耦合的方法,如将固体力学与地下水流模块相结合,以模拟应力对裂隙渗透率的影响。最后,通过对不同渗透率条件下瓦斯流速和压力分布的模拟,揭示了优化瓦斯抽采方案的关键因素。 适合人群:从事煤矿安全工程、瓦斯抽采研究的专业人士和技术人员。 使用场景及目标:适用于希望深入了解煤层内瓦斯流动机制的研究人员,旨在提高瓦斯抽采效率,确保煤矿生产的安全性和经济性。 其他说明:文中提供了详细的建模步骤和代码片段,帮助读者更好地理解和复现实验结果。同时,强调了模型验证和优化的重要性,提出了若干实用技巧以应对常见的建模挑战。

    Rust高性能日志滚动:RollingFileAppender.pdf

    文档支持目录章节跳转同时还支持阅读器左侧大纲显示和章节快速定位,文档内容完整、条理清晰。文档内所有文字、图表、函数、目录等元素均显示正常,无任何异常情况,敬请您放心查阅与使用。文档仅供学习参考,请勿用作商业用途。 Rust 以内存安全、零成本抽象和并发高效的特性,重塑编程体验。无需垃圾回收,却能通过所有权与借用检查机制杜绝空指针、数据竞争等隐患。从底层系统开发到 Web 服务构建,从物联网设备到高性能区块链,它凭借出色的性能和可靠性,成为开发者的全能利器。拥抱 Rust,解锁高效、安全编程新境界!

    敏矽微ME32G030系列 keil 扩展包

    敏矽微ME32G030系列 keil 扩展包

    西门子S7-200 Smart PLC与台达MS300变频器及欧姆龙E5CC温控器通讯程序:昆仑通态触摸屏控制实现与扩展模块SB CM01通讯的集成方案

    内容概要:本文详细介绍了如何使用西门子S7-200 Smart PLC与台达MS300变频器和欧姆龙E5CC温控器进行Modbus RTU通讯的具体实现步骤。主要内容涵盖硬件连接、参数设置、PLC程序编写、触摸屏配置等方面。文中不仅提供了详细的参数配置指导,如波特率、数据格式等,还展示了具体的梯形图代码和注意事项,确保各个设备之间的稳定通讯。此外,还分享了一些常见的调试问题及其解决方案。 适合人群:具备一定PLC编程基础的技术人员,尤其是从事自动化控制系统集成工作的工程师。 使用场景及目标:适用于需要集成多种工业设备的自动化控制系统项目,帮助工程师快速掌握不同品牌设备间的通讯方法,提高系统集成效率,减少调试时间和成本。 其他说明:文中提到的所有设备均采用Modbus RTU协议进行通讯,硬件连接主要涉及RS485接口和以太网接口。对于初学者来说,建议先熟悉Modbus协议的基本概念和通讯机制,以便更好地理解和应用本文的内容。

    Rust内存安全指针:NonNull优化技巧.pdf

    文档支持目录章节跳转同时还支持阅读器左侧大纲显示和章节快速定位,文档内容完整、条理清晰。文档内所有文字、图表、函数、目录等元素均显示正常,无任何异常情况,敬请您放心查阅与使用。文档仅供学习参考,请勿用作商业用途。 Rust 以内存安全、零成本抽象和并发高效的特性,重塑编程体验。无需垃圾回收,却能通过所有权与借用检查机制杜绝空指针、数据竞争等隐患。从底层系统开发到 Web 服务构建,从物联网设备到高性能区块链,它凭借出色的性能和可靠性,成为开发者的全能利器。拥抱 Rust,解锁高效、安全编程新境界!

    大作业自媒体上传需要文档

    大作业自媒体上传需要文档

    基于id=0控制的电机定子参数辨识方法——通过递推最小二乘法对R, ψf, Ls的仿真研究

    内容概要:本文详细介绍了基于id=0控制的电机参数辨识方法,主要采用递推最小二乘法(RLS)对电机定子电阻R、永磁磁链ψf及dq轴电感Ls进行在线辨识。文章首先阐述了id=0控制策略及其优势,接着展示了RLS算法的具体实现过程,包括参数初始化、增益矩阵计算、参数更新和协方差矩阵更新。文中还讨论了采样频率的选择、积分环节的优化以及噪声处理等问题,并通过仿真实验验证了该方法的有效性和稳定性。此外,作者分享了一些实践经验,如针对不同厂家电机的适应性调整和在线参数校验技巧。 适合人群:从事电机控制及相关领域的研究人员和技术人员,尤其是对永磁同步电机参数辨识感兴趣的读者。 使用场景及目标:适用于需要精确辨识电机参数的场合,如高性能电机控制系统的设计与优化。目标是帮助读者掌握RLS算法在电机参数辨识中的应用,提高电机控制系统的性能和可靠性。 其他说明:文章提供了详细的代码示例和仿真结果,便于读者理解和实践。同时强调了物理直觉在参数辨识中的重要性,指出理论模型与实际情况可能存在差异,需灵活应对。

    基于单片机的智能大棚浇花花盆设计:光照、温度和土壤湿度监测与控制系统

    内容概要:本文详细介绍了一个基于单片机的智能大棚与花盆浇花系统的硬件和软件设计方案。硬件方面,系统集成了单片机、光敏电阻、A/D模块PCF8591、DS18B20温度传感器、土壤湿度传感器、1602液晶显示屏、按键、高亮LED灯、补温灯、风扇、继电器和水泵等多种组件。软件部分采用C语言编写,实现了光照、温度和土壤湿度的检测与控制。具体来说,通过光敏电阻和PCF8591进行光照检测与补光控制;利用DS18B20进行温度检测,并根据温度范围控制补温灯和风扇;通过土壤湿度传感器和继电器控制水泵进行精准浇水。此外,还提供了按键设置阈值等功能,确保系统的灵活性和实用性。 适合人群:对嵌入式系统和智能农业感兴趣的电子爱好者、学生和初学者。 使用场景及目标:适用于家庭园艺、小型农场等场合,旨在提供一种低成本、高效的自动化灌溉和环境控制系统,帮助用户更好地管理和维护植物生长环境。 其他说明:文中还提到了一些常见的硬件注意事项和技术细节,如I2C通信、单总线协议、延时处理等,有助于读者理解和调试系统。

    Rust跨语言异常传播:panic处理.pdf

    文档支持目录章节跳转同时还支持阅读器左侧大纲显示和章节快速定位,文档内容完整、条理清晰。文档内所有文字、图表、函数、目录等元素均显示正常,无任何异常情况,敬请您放心查阅与使用。文档仅供学习参考,请勿用作商业用途。 Rust 以内存安全、零成本抽象和并发高效的特性,重塑编程体验。无需垃圾回收,却能通过所有权与借用检查机制杜绝空指针、数据竞争等隐患。从底层系统开发到 Web 服务构建,从物联网设备到高性能区块链,它凭借出色的性能和可靠性,成为开发者的全能利器。拥抱 Rust,解锁高效、安全编程新境界!

    离合器外圈钻孔专用机床的设计与研究.pdf

    离合器外圈钻孔专用机床的设计与研究.pdf

    基于PLC控制的纯净水灌装生产饮料厂电控系统设计:梯形图程序、接线图与组态画面详解

    内容概要:本文详细介绍了基于PLC(三菱FX3U)的纯净水灌装线电控系统的设计与优化。首先解释了IO分配表的作用及其具体配置,接着深入剖析了梯形图程序的关键逻辑,包括启保停电路、灌装控制逻辑以及保护机制。此外,还探讨了硬件接线的注意事项,如传感器电源隔离、电机接触器保护等。组态画面设计方面,强调了操作便捷性和故障诊断功能。最后分享了一些调试过程中遇到的实际问题及解决方案,如电压骤降引起的随机波动、电磁阀关闭延迟等。 适合人群:从事工业自动化领域的工程师和技术人员,尤其是对PLC控制系统有兴趣的学习者。 使用场景及目标:适用于希望深入了解PLC控制系统设计原理及应用的技术人员。目标是掌握纯净水灌装线电控系统的完整设计流程,提高系统的稳定性和效率。 其他说明:文中提到的具体案例和实践经验有助于读者更好地理解和应对实际工程中的挑战。

    gaoliwei1102_multi_ML_emtion_analysis_csdn_2660_1746371732584.zip

    gaoliwei1102_multi_ML_emtion_analysis_csdn_2660_1746371732584

    Java企业级开发_SpringBoot_MyBatis_MySQL_Druid_Swagger_Lombok_FastJson_通用Mapper_分页插件_代码生成器_RESTf.zip

    Java企业级开发_SpringBoot_MyBatis_MySQL_Druid_Swagger_Lombok_FastJson_通用Mapper_分页插件_代码生成器_RESTf

    Delphi 12.3控件之RADStudio-12-3-29-0-55362-2017-KeyPatch.7z

    Delphi 12.3控件之RADStudio-12-3-29-0-55362-2017-KeyPatch.7z

    Go语言编译器优化:-gcflags参数深度解析手册.pdf

    文档支持目录章节跳转同时还支持阅读器左侧大纲显示和章节快速定位,文档内容完整、条理清晰。文档内所有文字、图表、函数、目录等元素均显示正常,无任何异常情况,敬请您放心查阅与使用。文档仅供学习参考,请勿用作商业用途。 编译闪电般迅速,并发性能卓越,部署轻松简单!Go 语言以极简设计理念和出色工程性能,成为云原生时代的首选编程语言。从 Docker 到 Kubernetes,全球顶尖科技企业都在采用 Go。点击了解 Go 语言的核心优势、实战窍门和未来走向,开启高效编程的全新体验!

    基于PLC与MCGS的S7-200小型水厂恒压供水系统方案:梯形图程序详解、接线与原理图图纸大全及IO配置与组态展示

    内容概要:本文详细介绍了基于西门子S7-200 PLC和MCGS组态软件构建的恒压供水系统的实现方法。首先阐述了硬件配置,包括CPU224XP、EM223扩展模块、压力变送器、变频器等设备的选择与连接方式。接着深入解析了PLC梯形图编程的关键部分,特别是PID控制回路的设计、归一化处理以及水泵切换逻辑。随后讨论了MCGS组态画面的具体制作步骤,如实时压力曲线展示、手自动切换按钮等功能的实现。最后分享了一些实用的调试经验和常见问题解决方案,如防止水锤效应、处理模拟量通道抖动等。 适合人群:从事工业自动化领域的工程师和技术人员,尤其是对PLC编程和组态软件有一定了解的人群。 使用场景及目标:适用于需要搭建或优化恒压供水系统的中小型工厂。通过学习本文,读者能够掌握完整的系统设计方案,提高系统的稳定性和可靠性,减少人工干预,提升工作效率。 其他说明:文中提供了丰富的实战案例和详细的代码片段,有助于读者更好地理解和应用相关技术和方法。同时强调了现场调试的重要性,提醒读者注意实际工况的特殊性。

    greyireland_algorithm-pattern_21552_1746371832226.zip

    greyireland_algorithm-pattern_21552_1746371832226

Global site tag (gtag.js) - Google Analytics