关于html5:什么是flash什么是html5

现在,HTML5 堪称如众星捧月个别,受到许多业内巨头的青眼。且不说谷歌、苹果等业内巨头把它描述为互联网体验的将来,即使是以不遵从规范著称的微软,也向它频频示好, 信心在 Internet Explorer 9 中退出对 HTML5 的大量反对。然而,HTML5的道路真的将一帆风顺么?本文将列举了一些在HTML5倒退和遍及过程中须要解决的问题。 什么是HTML5? 依据维基百科上的解释,HTML5 的前身是 Web Applications 1.0,由 WHATWG 于2004年提出。2007年,它被 W3C 接收,并于2008年1月22日公布第一份正式草案。 以下摘录自维基百科的文字介绍了 HTML5 的特点和与 HTML4 的差异: 新利用程序接口(API)即时二维绘图定时媒体播放贮存离线编辑拖放通信/网络后退按钮治理MIME 和协定处理程序时表头注销与 HTML 4 的不同之处新的解析程序新的元素:section, video, progress, nav, meter, time, aside, canvasinput 元素的新属性:日期和工夫,email, url新的通用属性:ping, charset, async全域属性:id, tabindex, repeat移除元素:center, font, u, strike, s, frameset, frame, applet 战败 Flash, HTML5 还须要什么? 决定输赢的因素很多,在此分为两局部剖析。 一、技术方面 HTML5 与 Flash 在性能上并不是齐全重叠的,比方对于摄像头等计算机硬件的调用,依然只能应用 Flash 或其余办法实现。然而 HTML5 却引入了一些让 Flash 不得不认真对待的元素。其中最为人所知的和最重要的即为 canvas 和 video 标签。在我看来,其余的新属性跟 Flash 的竞争关系很弱,只有此二者是真真正正要抢 Flash 的饭碗,而且一旦遍及,将粗浅的扭转整个互联网,堪称是 HTML5 的左膀右臂。 ...

March 2, 2024 · 2 min · jiezi

关于html5:Sovit2D快速构建智慧核电站工艺流程监控系统组态界面

前言 核电是以后仅次于水电的第二大低碳能源,能牢靠地供给电力并对不稳固的风电、太阳能发电等可再生能源造成很好的补充。核能作为清洁、低碳、平安、高效的优质能源,是我国应答气候变化、兑现减排承诺的重要保障。在“碳达峰”“碳中和”的大背景下,核电无望大规模代替传统化石能源的基荷电源。 场景展现成果展现目前世界上有超过60%的核电站是压水堆核电站,次要由反应堆、蒸汽发生器、汽轮机、发电机及其他设施组成。在核电站工作运行时,它次要是由核岛以及常规岛两局部组成的,包含核反应堆、蒸汽发生器、汽轮机、发电机等设施。因而,咱们利用数维图 自主研发的弱小 2D Web组态平台 - Sovit2D ,通过便捷的利落拽形式设计制作动画驱动的压水堆核电站发电的工作原理可视化零碎。 通过点击场景中部件,会弹出绝对应的信息面板,暗藏上一个显示的面板,名字做高亮解决,没有信息面板的只解决名字的高亮成果。 模仿动画在核电站中,反应堆的作用是进行核裂变。核反应堆通过本身的核能反馈来加热水,这就像是家里的锅炉一样,不过锅炉是焚烧木炭,而核反应堆是凭借原子核的裂变,冷水在核反应堆裂变产生的低温下,被加热成沸腾的低压水流,随后水流在蒸汽发生器中造成饱和热蒸汽,并做功于汽轮机,这样就实现了热能转变为机械能,再由发动机将机械能转成电能,如此一来便造成了一个残缺的回路。 反应堆 由核电站反馈原理能够理解到,反应堆次要作用加热水产生水蒸气带动汽轮机发电。利用可视化技术模仿水注入反应堆后加热的过程,水位的变动使得整个动画更加形象的展现出反应堆的工作状态。 主泵 它的功能是把冷却剂送进堆内,而后流过蒸汽发生器,以保障裂变反馈产生的热量及时传递进去。零碎设计中用闪动的亮光来展现其工作状态。 稳压器 稳压器又称压力平衡器,是用来管制反应堆零碎压力变动的设施。在失常运行时,起放弃压力的作用;在产生事变时,提供超压保护。压力回升过程中,用稳定的成果以展现稳压器内压力的变动。 蒸汽发生器 它的作用是把通过反应堆的冷却剂的热量传给二次回路水,并使之变成蒸汽,再通入汽轮发电机的汽缸作功。如图,上局部圆形转动时,气泡依据大小不同回升的速度也不雷同;两头传送带的走动更加清晰的展现了正在工作;底下水位升降时,水波也在动作,使整体成果更为贴切。 由蒸汽发生器产生的水蒸汽进入汽轮机收缩作功,将蒸汽的热能转变为汽轮机转子旋转的机械能。汽轮机转子与发电机转子两轴刚性相连,因而汽轮机间接带动发电机发电,把机械能转换为电能。作完功后的蒸汽(乏汽)被排入冷凝器,进行冷却凝固成水,而后由凝固水泵送入加热器预加热,再由给水泵将其输出蒸汽发生器,从而实现了汽轮机工质的关闭循环,咱们称此回路为二回路。循环冷却水二回路零碎与惯例火电厂蒸汽能源回路大致相同,故把它及其辅助零碎和厂房统称为常规岛(CI)。 凝固水泵 两头风扇转动示意工作正在进行,依据管道内静止方向来决定风扇的逆时针或者顺时针的转动状况。 碳酸箱 咱们减少了水的稳定成果,让动画更加形象的展现了这种类型的箱体的工作状态。同理展现的还有除盐水箱、化学药物混合罐、容控器等。 低压加热器 每个加热器的地位推达点不同,在视觉上更真切、更有科技感的成果,同理展现的还有低压加热器。 除氧器 下局部水位升降时带动水稳定,上局部的氧气依据形态的大小挪动速度也不雷同。 发展前景依据《“十四五”布局和2035近景指标大纲》,至2025年,我国核电运行装机容量达到7000万千瓦。此外,依据中国核能行业协会公布的《中国核能年度倒退与瞻望(2020)》中的预测数据显示,到2025年,我国在运核电装机达到7000万千瓦,在建3000万千瓦;到2035年,在运和在建核电装机容量共计将达到2亿千瓦;核电建设无望依照每年6至8台机组稳步推动。 实现价值核电是安全性、可靠性要求极高的简单发电零碎,积极探索推动数字化转型,可能无效进步核电厂的安全性、经济性和竞争力,有助于核工业高质量倒退。各大核电厂都在充沛利用5G、大数据、云计算、人工智能等先进信息通信技术,积极探索数字化转型。 放慢核电数字化过程,已成为核电产业高质量倒退的必由之路。在核电厂建设及运维治理中,面对简单的零碎布局、高精度的施工要求以及严格的安全监控规范,利用数维图 Sovit2D 可视化组态软件打造智慧核电站场景,进一步帮忙核电企业降本增效。 总的来说,智能核电站是一种利用先进技术和智能化管理手段,进步核电站运行安全性、经济性和可靠性的新型电站。点击查看智能核电站工艺流程组态可视化零碎 点击查看智能核电站工艺流程组态可视化零碎

February 29, 2024 · 1 min · jiezi

关于html5:2024年风电项目加速推进-Sovit3D快速构建智慧海上风电场系统

咱们常说地球是蓝色星球,那是因为陆地约占地球面积的71%。现在,我国正在向“双碳”指标一直奋斗,海上风电也作为一种后劲清洁能源,迸发出前所未有的生机,海上吹来的风成为将来清洁能源新方向。2024年海上风电我的项目减速推动 2023年中国风电新增吊装容量77.1GW,同比上涨58%,创历史新高。其中,陆上风电新增69.4GW,同比增长59%;海上风电新增7.6GW,同比增长48%。值得注意的是,2023年是中国风电市场在进行补贴新增风电我的项目后首年实现陆上海上双增长。 2024年开年从业内理解到,国家能源团体、国家电投等多个央国企海风我的项目陆续获批核准,2024年海上风电动工、建设、并网节奏放慢。此外,海南、福建等清洁能源大省相继颁布2024年重大海风我的项目投资打算,依靠海上风电资源,放慢倒退海上风电产业。业内人士预计,2024年海上风电并网规模仍将不断扩大,海上风电我的项目建设将放弃较快增长,需要开释将拉动海上风电产业出货量持续增长。 2024年智慧海上风电解决方案背景智慧化方面从国家层面而言,咱们国家的“十四五”布局以及新基建都明确提出在智慧能源方面的建设,同时也是心愿发展智慧能源建设帮忙企业进行智慧化转型。为了贯彻落实数字中国、数字经济和智慧能源等策略,2035策略为指引国家电投指标打造数字化国家电投,建设智慧能源体系,将数字化、智能化融入到能源生产经营通过数字化实现产业在布局、设计、建设、经营等环节提质降本增效的目标。 定义 智慧海上风电场利用大数据实时监控电量剖析,并通过数字可视化大屏进行信息展现,使参观总览、团体调度、近程运维状态高深莫测。此外,智慧海上风电场还具备海底电缆设计与智能运维核心技术,建设起风机、海缆等次要设施衰弱状态的预警模型,实现设施初期劣化和故障预警、诊断,无效避免设施欠保护和过保护。 体系架构智慧海上风电场旨在将整个风电场作为一个整体场景,对立设计风电机组及箱变、海上升压站、陆上站的各类子系统;采纳对立的标准化接口,使其能无缝交融在对立的信息数据交换平台上;应用对立的人机交互界面,进行对立的运行管制和治理保护。在陆上集控核心就可施行对全场景的近程实时可视化监控,并进行各类数据(如故障剖析与预测、设施治理、工单治理等)的对立智能化治理,实现海上无人值守、陆上少人集控的智慧化运维管理模式。 开发平台零碎基于WebGL规范下的B/S框架,前端采纳HTML5+JavaScript技术为根底,进入 Sovit2D/Sovit3D 可视化平台后,联合真实世界建设数字孪生三维场景(也可上传背景图),在线拖拽资源库中的风机、升压站、设施等组件,配置色彩、动画成果,可视化直观出现海上风场运行状态。通过对场景进行放大、放大平移等操作查看场景成果和细节。并将环境参数、实时发电指标、节能减排信息等数据接入 2D 面板,便于运维人员对整个风电场运行的无效掌控。 功能设计1.全局概览 展现海上风电场运维核心及风电场总体生产经营信息,包含实时指标、机组状态、环境参数、发电统计、风机数量等信息。 2.设施治理 智能设施是智慧海上风电场的数据根底。智能安装是智能设施层的根本元素,应应用规范通信接口和协定,实现数字化监测和网络化管制;应具备就地综合评估、实时状态报告、故障诊断等性能。 3.风机监测 在风机上采纳先进的状态监测、数据分析、智能控制技术,使机组精确地感知本身和外部环境,建设数据监测、异样告警机制,智能锁定故障地位。为风机匹配机械传动链、塔筒、根底、桨叶以及重要的螺栓载荷等重要元部件的状态监测,实现对机组参数突变、渐变事件的智能化故障预警与诊断。 4.海缆监测 海底电缆是海上风电场电能传输的关键部件,海底电缆的事变将导致极大的损失。有必要实时监测海缆的温度和应力变动。借助海缆中的光纤线芯,通过对接光纤分布式传感新技术,判断电缆是否受损及周围环境是否发生变化,并对海缆异样进行报警和定位。 5.环境监测 海上环境绝对更加简单,环境参量的在线监测显得尤为重要。通过对接传感器监测后果数据和高速传输介质,将海上风电经营区的海洋环境对立展现,实时测量并显示风速、风向、气温、相对湿度、气压;并对作业海区将来7天的天气现象、气压、风向、风力、气温、浪高、能见度等因素进行预报,安顿预警和预处理计划及出海作业策略。 6.智能巡检 鉴于海上风电场水域大、环境简单、保护难,在海上升压站、配电室等次要区域,以第一视角漫游巡检,实现 1:1 场景还原的智能巡检零碎,结合物联网、三维建模等技术,实现巡检以后状态数据展现,巡检摄像头实时监控信息回传,从治理、安防、节能、隐患排查等多维度对海上风电场施行动静监控及预警。 7.视频监控 依据风电场监控摄像头散布状况,在三维场景中设置视频监控点位,以摄像头图标展现其地位。反对场景交互来调取相应监控视频,对异样指标的主动抓拍、抓摄和留存,出现异常正告时,监控点位会有声光报警成果。满足运维人员对场景进行实时态势感知、历史数据回溯比对、应急解决预案等监测需要。 8.电子围栏 海上风电场水域电子围栏一旦有非法入侵时,智能跟踪球机立刻主动跟踪现场指标,并在现场和监控核心收回声光报警。通过对接船事零碎可获取到施工船只、渔船、非法入侵船只等相干信息,联合入侵工夫、来到工夫,可实时定位船舶地位(经度及纬度)和绘制历史轨迹,进步监控管理效率。 9.智能预警 建设预警触发机制,对风场设施、环境进行实时监控,在辨认到后盾状态数据时,将状态以差异化的模式出现在设施模型上,当设施状态为异样时,零碎将继续收回声光报警,并弹出异样警报。并联动视频监控将镜头聚焦,展现报警设施详情及地位,不便运维人员即时做出决策解决。 10.建设价值 利用数维图(SovitJs)利用自主研发的 Sovit2D、Sovit3D 产品,无缝交融 2D、3D 技术,搭建3D 可视化智慧海上风电场大数据管理平台。实现可交互式的 Web 二三维场景,基于多维感知、场景物联、物信交融的技术理念,不断丰富与欠缺海上风电场全面感知,实现设施设施智能巡检、环境危险监测预警,助力集控核心生产调度,辅助决策和全局掌控。 总结建设智慧海上风电场,实现海上风电场设施、资产的智慧化监控与治理,对进步风电场自动化程度和运维效率、升高运维老本、进步海上风电的径济和社会效益、进步抵挡危险的能力具备重要意义。

February 22, 2024 · 1 min · jiezi

关于html5:热门的19个JAVASCRIPT前端开发框架和库

JavaScript (JS) 是一种轻量级的解释(或即时编译)编程语言,是世界上最风行的编程语言。JavaScript 是一种基于原型的多范式、单线程的动静语言,反对面向对象、命令式和申明式(例如函数式编程)格调。JavaScript 简直能够做任何事件,更能够在包含物联网在内的多个平台和设施上运行。在WebGL库和SVG/Canvas元素的反对下,JavaScript变得惊人的弱小。简直能够为网络构建任何货色,包含基于浏览器的游戏和本地利用,许多最新的突破性性能都在3D上运行。 为此,「数维图小编」整顿了19个交互式3D Javascript库和框架,用于在Web上创立3D图形,心愿你的下一个我的项目用的上它们: Three.jsThree.js 是一个高级跨浏览器的3D JavaScript库和应用程序编程接口,用于应用WebGL在Web浏览器中创立和显示动画3D计算机图形。是最受欢迎的 3D WebGL 库之一,为有数 3D 体验提供反对。也是最好的 3D 库之一。ThreeJS次要解决画布元素,SVG元素和用于渲染的WebGL库。 D3.jsD3.js 是一个收费的开源 JavaScript 库,,用于在 Web 上创立图表、地图等可视化成果。D3.js(也称为 D3,数据驱动文档的缩写)是一个 JavaScript 库,用于在 Web 浏览器中生成动静、交互式数据可视化。它应用可缩放矢量图形 (SVG)、HTML5 和级联样式表 (CSS) 规范。 A frameA Frame 是一种风行的开源 Web 框架,用于在 Web 浏览器中构建虚拟现实体验。这个javascript框架为开发人员提供了开发虚拟现实设计的能力,能够在浏览器上渲染。 Babylon.jsBabylon.js 是一个基于 Web 的 3D 图形引擎,反对 WebGL 1.0 / 2.0 / WebGPU、场景图、物理、拾取、碰撞、动画、音频等。它建设在Web图形库之上,用于在Web浏览器中渲染图形。 ZdogZdog 是用于画布和 SVG 的 3D JavaScript 引擎。应用 Zdog,能够在 Web 上设计和渲染简略的 3D 模型。Zdog 是一个伪3D引擎。它的几何图形存在于 3D 空间中,但出现为立体形态。这使得 Zdog 不同凡响。 ...

February 20, 2024 · 1 min · jiezi

关于html5:Sovit2D组态设计-Web-Scada烟气脱硫工艺流程

前言我国是燃煤大国,燃煤排放的SO成为影响我国城市空气质量的次要污染物。因而,锅炉烟气脱硫是减排 SO 的重要伎俩。 建设背景在节能减排的大局势下,钢厂、电厂等烟气脱硫是实现二氧化硫减排工作的重点工作之一。烟气脱硫零碎具备很高的复杂性,目前很多脱硫零碎呈现运行故障多、不能与发电机组齐全同步运行或运行中脱硫效率达不到设计值或零碎运行老本低等问题。 随着可视化技术的飞速发展,利用先进的技术设计欠缺正当的烟气脱硫自动控制组态零碎,实现烟气脱硫过程的自动化、可视化、智能化。 开发技术数维图 Sovit2D 可视化组态编辑器基于 B/S 架构,通过对传统烟气脱硫工艺流程进行可视化拖拽设计,对接测点数据实现 Web 化跨平台拜访,关上浏览器即可随时拜访监控场景,通过数据驱动让新型Web组态界面得以应用 2D、3D 等不同模式进行多样化展现。 成果展现脱硫主动控制系统实现对整套脱硫工艺零碎的数据采集、管制、调节、报警、联锁、爱护、报表等性能,并通过组态画面将工艺流程中各种工艺参数、设施运行状态显示在人机系统上。脱硫主动控制系统可实现自动检测和调整PH值及各种浓度的石灰制浆及钠碱主动配置、主动计算并管制石灰乳及碱液投加量,石膏解决控制系统;记录脱硫设施次要设施运行和保护状况,机组负荷、烟气温度烟气流量、增压风杋电流和叶片开启度、氧化风机和密封风杋电流、脱硫剂输送泵电流、烟气旁路开启度、脱硫PH值、碱液及进口和进口硫化氢浓度。 工艺原理烟气脱硫技术品种有很多,示例展现为“石膏湿法烟气脱硫工艺”,该零碎包含烟气换热零碎、吸收塔脱硫零碎、脱硫浆液制备零碎、亚硫酸钙氧化零碎、石膏脱水零碎等几局部;该工艺是目前世界上最成熟利用最宽泛的技术。其脱硫过程为:烟气通过除尘器、换热零碎进入脱硫塔,在吸收塔与石灰乳浊液接触,浆液排汇烟气中的SO2.生成CaSO3.随后通过CaSO3氧化零碎被氧化成CaSO4.即石膏。本工艺脱硫效率能够达到95%以上,适用范围广,工艺成熟,运行稳固,是大中型煤电厂脱硫工艺的首选办法之一。 实现价值相较于 iFIX/WinCC 等传统组态软件产品,数维图基于 Web 的在线平台更适宜 C/S 向 B/S 转型的大趋势,轻松的设计模式、丰盛的可视化组件、快捷的数据绑定形式,可用于疾速创立和部署。为各类工业场景提供 2D、3D 多种好看的可视化展现服务。管理人员通过监控和数据采集系统软件对整个零碎进行监控和治理。可近程对脱硫零碎进行启/停管制、对系统的失常运行进行监督和调整、对异样与事变工况进行解决。

September 27, 2023 · 1 min · jiezi

关于html5:工业自动化国内外常用工业组态软件

随着工业自动化程度的迅速进步,计算机在工业畛域的广泛应用,人们对工业自动化的要求越来越高,品种繁多的管制设施和过程监控安装在工业畛域的利用,使得传统的工业控制软件已无奈满足用户的各种需要。 什么是工业组态软件?工业组态软件是实现采集数据和管制过程的专用软件,是主动控制系统监控层级的软件平台和开发环境。工业组态软件是工业自动化管制畛域实现人机交互的必不可少的工具。 有哪些工业组态软件?目前市场上的工控组态软件繁多,本文将为大家介绍排名靠前的工业组态软件。 国内工业组态软件ForceControl ForceControl 是一款通用型的人机可视化监控组态软件,是国内率先以分布式实时数据库技术作为内核的自动化软件产品。软件提供易用的配置工具和行业套件、良好的用户开发界面和简捷的工程实现办法,提供软、硬件全副接口实现与第三方的软、硬件系统集成。广泛应用于市政、水利、环保、配备制作、石油、化工、国防、冶金、煤矿、配电、新能源、制药、交通、教育等行业。 KingView kingview 即组态王开发监控系统软件,是新型的工业主动零碎,它以规范的工业计算机软、硬件平台形成的集成系统取代传统的封闭式零碎。具备适应性强、开放性好、易于扩大、经济、开发周期短等长处。充分利用Windows的图形编辑性能,不便地形成监控画面,并以动画形式显示管制设施的状态,具备报警窗口,实时趋势曲线等,可便当的生成各种报表。 Sovit2D Sovit2D 是一款功能强大的Web组态编辑器,由长沙数维图信息科技有限公司自主研发,采纳规范HTML5技术,基于B/S架构进行开发,反对 2D/3D图形组态,反对 MQTT 协定接入。配置界面可独自公布,可与企业自有平台无缝集成。Sovit2D具备宽泛的设计性能,提供丰盛的行业标准元器件图元库及多行业模板和组件,在浏览器端即可实现便捷的人机交互,简略的拖拽即可实现可视化页面的编排设计,可疾速构建现代化的SCADA、HMI、仪表板、IIOT零碎等,广泛应用于工业、水利、电力、能源、油气、环境、园区、交通等畛域。 HT for Web HT for Web 是Web组态编辑器网站,由厦门图扑软件科技有限公司创立;HT for Web有一套丰盛的 JavaScript 界面类库,能提供残缺的基于 HTML5 图形界面组件库。能够构建现代化的跨桌面和挪动终端的企业应用。提供监控可视化解决方案,可用于疾速创立和部署,高度可定制化,并具备弱小交互性能的拓扑图形及表盘图表等利用。HT for Web 实用于实时监控零碎的界面出现,广泛应用于电信网络拓扑和设施治理,以及电力、燃气等工业自动化 (HMI/SCADA) 畛域。 国外工业组态软件InTouch InTouch 是一款功能强大的组态软件,InTouch充沛开释了标签数量、有限读写网络拜访、集成历史记录、报告、开发工具(包含用于图形的云存储和通信驱动套件)的弱小性能。它简略易用的界面和高效的设计工具,使得用户能够轻松地创立本人的工业自动化控制系统。 iFIX iFIX 是寰球最当先的HMI/SCADA自动化监控组态软件,具备弱小的数据处理和图形显示性能,提供了生产操作的过程可视化、数据采集和数据监控。iFIX能够帮忙您准确地监督、管制生产过程,并优化生产设施和企业资源管理。被广泛应用于电力、化工、石油、制作等行业的监控和自动化管制中。 WinCC WinCC 是第一个齐全基于32位内核的过程监控零碎,是一款简单的SCADA(数据采集与监控)零碎,适宜所有工业畛域,反对多语言,全球通用。能够集成到所有自动化解决方案内,内置所有操作和治理性能,可简略、无效地进行组态。WinCC集生产自动化和过程自动化于一体,实现了相互之间的整合,实用于多种畛域,如汽车工业、化工和制药行业、印刷行业等等。 Ignition Ignition SCADA 是一种基于 Web 的解决方案,蕴含SCADA,IIoT,MES等工业利用。可用于近程管制流程。通过应用该软件,能够查看不同地位的数据。反对的协定 – Modbus、以太网、UDP 和 TCP。 GENESIS64™ GENESIS64™ 是业内第一个内核级全64位、基于.NET Framework、WPF和全矢量2D/3D的自动化系统监控和治理可视化平台。GENESIS64™ 通过OPC,BACnet,Modbus和凋谢规范数据库连贯提供无可比拟的性能。GENESIS64™ 提供从工厂车间SCADA和建筑设施到企业业务零碎的连贯。 GENESIS64™ 容许运营商、高管和IT业余人员将实时制作、能源和业务信息集成到平安对立的反对Web的可视化仪表板中。AVEVA EdgeAVEVA Edge 是一款高度可扩大、灵便的 HMI/SCADA 软件,旨在提供从高级 HMI 利用到小型嵌入式设施的所有性能。丰盛的功能集使用户可能为任何行业创立直观、平安且高度可保护的HMI / SCADA应用程序。 随着信息技术的一直倒退和控制系统要求的一直进步,组态软件的倒退也向着更高层次和更广范畴倒退,其向着集成化、定制化,性能向上、向下延申,监控、治理范畴及应用领域扩充的趋势倒退。

September 26, 2023 · 1 min · jiezi

关于html5:Angular-ModuleWithProviders-类型的使用场景介绍

import { ModuleWithProviders } from '@angular/core' 这行代码在Angular中有着重要的作用,它引入了 ModuleWithProviders 类型从 @angular/core 模块中。为了更好地了解这行代码的作用,咱们须要深入探讨Angular中模块(Modules)的概念以及如何应用 ModuleWithProviders 类型。 Angular模块的背景在Angular中,模块是一种组织和管理应用程序代码的形式。它们有助于将应用程序拆分成一些逻辑上相干的局部,每个局部都有本人的组件、服务和其余性能。Angular模块有两种次要类型:根模块(Root Module)和个性模块(Feature Module)。 根模块是应用程序的入口点,通常在 app.module.ts 文件中定义。它负责疏导应用程序并导入其余模块,以及设置应用程序的全局配置。个性模块是功能性的模块,用于组织和管理应用程序的不同个性或性能。每个个性模块都能够蕴含本人的组件、指令、服务等。Angular的模块零碎容许咱们以模块的形式组织和封装应用程序的不同局部,使得代码更加可保护和可扩大。 ModuleWithProviders 类型的作用ModuleWithProviders 是Angular中的一个重要概念,它用于解决模块(Module)的配置和服务提供商(Provider)的注册。这个类型通常与模块的 forRoot 办法一起应用。为了具体阐明其作用,让咱们剖析以下示例: import { NgModule, ModuleWithProviders } from '@angular/core';import { CommonModule } from '@angular/common';import { UserService } from './user.service';@NgModule({ imports: [CommonModule], providers: [UserService]})export class UserModule { static forRoot(): ModuleWithProviders<UserModule> { return { ngModule: UserModule, providers: [UserService] }; }}在这个示例中,咱们创立了一个名为 UserModule 的个性模块,该模块负责用户相干的性能。让咱们具体解释这段代码的作用: 咱们首先导入了 NgModule 和 ModuleWithProviders 类型以及一些其余Angular模块和服务。在 UserModule 中,咱们应用 @NgModule 装璜器定义了模块。这里咱们导入了 CommonModule 并将 UserService 注册为模块的提供者。接下来,咱们定义了一个静态方法 forRoot。这个办法通常用于在根模块中导入个性模块时配置模块并提供服务。在 forRoot 办法中,咱们返回了一个对象,该对象蕴含两个属性: ...

September 24, 2023 · 2 min · jiezi

关于html5:工业40乙烯裂解工艺监控系统2D组态界面

前言乙烯工业是石油化工产业的外围,乙烯产品占石化产品的75%以上,在国民经济中占有重要的位置,被称为“石化工业之母”。乙烯的工业用处宽泛,是合成树脂、合成纤维、合成橡胶(14245. -110.00. -0.77%)、医药、染料、农药、化工新资料和日用化工产品的根本原料,这些化工产品对促成国民经济倒退和改善人民生存程度具备重要作用。 建设背景工业 4.0 重塑了企业设计、制作和分销产品的形式。工业物联网 (IIoT)、云连贯、人工智能和机器学习等技术现已深刻融入制作流程。这种对立和集成的制作办法使产品、工厂和资产相互连接和智能。智能化监测管制“乙烯裂解安装”具备重要的经济价值,传统裂解安装大都采纳人工监控巡检形式,不仅耗时费劲,还易出错。而在工业4.0 时代,很多企业都开始了数字化转型之路,明天咱们的案例就来介绍下利用数维图 Sovit2D 可视化组态编辑器 搭建进去的“乙烯裂解塔监控零碎”。 开发技术数维图 Sovit2D 可视化组态编辑器基于 B/S 架构,通过对传统乙烯裂解生产工艺进行可视化拖拽设计,对接测点数据实现 Web 化跨平台拜访,关上浏览器即可随时拜访监控场景,突破了只能在固定场地管制监控现场的局限,通过数据驱e动让新型Web组态得以应用 2D/3D 等不同模式实现多样化展现。成果展现乙烯裂解工艺监控零碎基于Sovit2D 组态编辑器进行 2D 可视化设计,依据工艺流程设计好所需的图元组件,再在编辑器中进行利落拽布局设计,即可轻松构建出组态监控零碎,联合接入测点后监测到的实时数据,直观出现工艺流程和工艺设备的运行状态及运行数据。 工艺原理乙烯裂解是通过在低温和低压条件下将乙烯分子分解成较短的低碳烯烃分子的化学反应。其中,低温和低压是实现乙烯分子裂解所必须的条件,通常须要在温度为600-900°C和压力为1-4MPa的条件下进行。反馈还须要一个催化剂的存在,常见的催化剂包含铝烷类和氧化铝等。在低温和低压的条件下,乙烯分子首先吸附在催化剂外表,而后产生分子间合成反馈。这个过程中,每个乙烯分子将被断裂成两个低碳烯烃分子,其中一个是乙烯分子,而另一个则是一种短链烯烃,如丙烯、丁烯、戊烯等。这些低碳烯烃分子能够被收集和用于生产各种有机化合物。 实现价值乙烯裂解是一种常见的工业化学反应,其原理是将长链烃分子分解成较短的低碳烯烃分子。反馈过程须要低温、低压和催化剂的存在,并受到多种因素的影响。因而,利用古代技术构建乙烯裂解工艺的组态界面,实现裂解工艺流程的近程管制、数据通明、实时监测、全域感知,从而进步生产效率、降低生产危险。总结裂解柴油和裂解燃料油是烃类裂解制乙烯时的副产物,由裂解气拆散过程中的分馏塔侧线抽出。

September 21, 2023 · 1 min · jiezi

关于html5:基于Web的智慧煤矿2D组态系统

前言随着智能科技的一直倒退,矿山企业谋求高质量高水平倒退的需要愈发迫切,我国也逐步开始了对智慧矿井的建设。作为新型生产力的智能科技也成为产业改革的重要驱动力。 传统的组态零碎所展现出的矿井组态界面已无奈满足以后多样化的展现需要。随着基于Web的可视化技术飞速发展,不少矿山企业也追随数字化潮流更新降级零碎,这将进步矿井的精密作业、集中管控、数据通明成为刚需。 开发技术数维图 Sovit2D 可视化组态编辑器基于 B/S 架构,通过对传统矿井内组态图进行重构设计,对接测点数据实现 Web 化跨平台拜访,关上浏览器即可随时拜访监控场景,突破了只能在固定场地管制监控场景的局限,通过数据驱动让新型Web组态得以应用 2D/3D 等不同模式实现多样化展现。 成果展现本期案例介绍的是对矿井井内的次要采矿流程进行 2D 可视化设计,依据业务单元“掘进设施监测零碎”、“膏体充填控制系统”、“通风管道监测零碎”进行分类设计,联合接入测点后监测到的实时数据,直观出现工艺流程和工艺设备的运行状态。 智慧矿山智慧矿山是从数字矿井的根底上倒退而来,其概念及外延依然在一直倒退和欠缺,目前较为认可的定义是:以物联网、人工智能、云计算、5G等技术为根底,联合各类传感技术实现对物理矿井数字化、模型化、可视化和智能化治理,行将矿井的采掘、运输、生产、环境、平安等因素实现全面综合的智能化治理,将智能采矿技术与传感器技术、可视化技术、主动控制技术与网络通信技术等紧密结合,形成人与人、人与矿井、矿井与矿井互相联动的矿井网络,管理者能实时动静地监测管制矿井平安生产与经营的全过程,保障矿井的生态稳固和经济可持续增长。 膏体充填控制系统 充填开采也叫置换采矿,实现采矿固废“从哪里来回哪里去”,而膏体充填开采技术,是最先进的充填开采技术,合乎我国采矿平安、环保发展趋势和要求。膏体充填主动控制系统是用来集中搅拌充填膏体并通过充填管路将充填膏体泵送到充填点的联结机械安装,波及充填膏体原材料上料、计量、搅拌、卸料和泵送等充填膏体制备及泵送的整个过程,对充填膏体的品质影响极大,是整个膏体充填零碎的外围局部。 数维图 Sovit2D 可视化组态界面中,次要展现了出料仓、蓄水池、搅拌主机、配料安装、卸料安装等。其中通过绑定搅拌机电流、运行混工夫等来监测生产数据。另外,可通过界面下发指令,实现近程管制搅拌机的目标;整体组态零碎中的各类阀门,可通过后端传输的接口,展现出各种相干数据,同时可切换手动与主动模式;要害管路上还可监控压力、实时流速等数据。 掘进设施监控零碎 根据实时采集的掘进设施数据,实在反映现场掘进设施的位姿及运行状态;基于掘进机的位姿测量、截割头定位、掘进速度,变频器的频率、电机电流,便于近程人员实时监控、操纵和指挥。 掘进设施监控零碎界面次要展现了掘进机设施的相干参数,要害节点变频器的理论频率、牵引电机电流、截割电机电流、泵电机电流、掘进机速度及摇臂温度等,次要掘进机反对切换手动与主动模式启停。 矿井通风零碎 矿井通风是保障矿工平安的重要措施,通风零碎是矿井通风的重要局部。在煤矿生产过程中,应增强对通风零碎的监测和保护,及时检修风机、通风管道、风门等设施,维持其失常运行。 矿井通风零碎 2D 组态界面,通过数维图 Sovit2D 组态编辑器,实现组态图元晦涩的动态效果开发。该“矿井主通风零碎”组态界面展现了 2 条通风管道的工作流程,固定面板的展现各风机组的要害元件的温度及运行速率等实时数据。 实现价值以上是数维图新一代基于Web的矿山/矿井2D组态监控零碎案例,示例仅仅展现了整个矿山/矿井生产体系的一部分。零碎接入各类设施、管线等的实时监测数据,对其进行对立监测、管制和调度。建设各类工艺模型构建智慧矿山/矿井解决模块,使采煤、掘进、供电、运输、通风、给排水等生产零碎生态运行过程更具体化,实现了物与人的近程交换。 总结矿山/矿井数字化建设转型将是矿企新的产业增长点,实现减人增效,通过设施化换人、自动化减人、智能化提质增效来晋升企业的全面竞争力。

September 19, 2023 · 1 min · jiezi

关于html5:百亿补贴通用H5导航栏方案-京东云技术团队

背景在挪动端页面中,因为屏幕空间无限,导航条扮演着十分重要的角色,提供了疾速导航到不同页面或性能的形式。用户也通常会在导航条中寻找他们感兴趣的内容,因而导航条的曝光率较高。在这样的背景下,提供一个动静灵便的导航条,为产品赋能,变得尤其重要。 应用原生导航栏现状拿iOS原生导航条为例,导航条作为页面进出栈的根视图连接器,以及生命周期的管理器。尤其是在作为webView Controller的父容器的时候,面对webview中h5页面灵便的的路由属性,以及一些难料的异常情况,原生很难也不便于频繁操作根试图容器,因而也产生了一些性能差、体验差、开发成本高、测试场景难笼罩等问题。安卓也有相似状况。 1、性能问题•ssr预渲染时,无奈对原生导航条进行预加载。对于百亿,便宜包邮等应用ssr预渲染的频道,因为原生导航栏无奈进行预加载,导致上屏较慢等问题。 2、开发/测试老本高•原生导航条生命周期耦合。原生导航条作为webviewController的根容器,一旦操作机会不当,很可能影响到线上页面,而且最大的问题在于这种场景测试很难笼罩。比方:window.href.url应用这种形式更新以后页面时,因为不同频道操作同一根导航条,会引发不可预知的问题; •场景无限。站外场景无奈应用原生导航条,一些业务方往往须要独自解决站内外,造成开发资源节约。 3、体验差•webview初始化时会预置一个默认的导航条,而后依据前端配置,再去设置导航条的不同款式,无奈防止的存在一个过渡期,体验较差。 •window.location.reload()刷新以后页面的时候,即使是在js中暗藏了导航条,webview为了兼容一个线上问题,执行reload时此时会先展现原生导航条,直到执行了js的暗藏逻辑,才会被暗藏,体验较差。 4、难扩大造成营销资源节约•无奈扩大交互动效。得益于挪动端页面中,导航条得天独厚的地位,产品往往心愿有更活泼的交互性,来进步曝光、粘性、流动触达率等。比方导航栏上挂载搜寻框、以及吸顶、延长动画、沉迷式、炫酷的营销icon等等。遗憾的是原生零碎导航条不能全副反对,其实无论从视图层级上来说,还是从导航条职责上来说,apple并不心愿过多操作导航栏上的元素。也就造成了高曝光地位的资源节约。 5、依赖性强•因为要依赖原生JS桥,就肯定会存在版本限度问题。造成需要迭代慢,甚至随着工夫的推移,版本卡口起因无迹可寻,代码调整战战兢兢,版本审核慢、周期长等问题。 解决方案基于原生导航条现状,百亿补贴频道积淀出了通用H5导航条组件@pango/navigation-bar,具备以下劣势: 1、性能好•反对ssr预渲染,上屏较快。 2、开发/测试成本低•人力节俭百分之90%以上,以plus 95折为例,对接只需0.5/人日。 •无场景限度。可用于站内外,ssr以及csr场景,无需站内外屡次开发。 •可配置。 @pango/navigation-bar应用config的模式配置item,这么做的益处是一旦业务需要改变,只需调整配置,无需调整组件逻辑,极大升高开发和测试老本。另外如果你应用主站的webview并且配置了config,那么只须要简略的改变config,代码迁徙成本低。 •导航条在频道内和其余一般楼层无异,生命周期隔离清晰,不会影响别的页面,测试成本低。 •单向数据流设计,内部数据变动,组件UI及时响应,不存在原生的操作窗口问题,开发体验佳; 3、用户体验好•生命周期和其余楼层放弃同步,躲避了原生容器和H5页面人造的生命周期无奈同步的问题,也就不存在两者之间的过渡问题,体验佳。 4、灵便定制•采纳左、中、右、状态栏、导航栏分层设计的模式,反对传入React.ReactElement,比原生定制性更强,可灵便定制目前站内绝大部分导航条款式以及交互动画,正当高效利用导航条资源; 5、机型、零碎兼容性好•参考原生导航栏异形屏适配计划,参考原生相对布局思路,完满适配折叠屏、异形屏。 •iOS9 - 最新 、Android5 - 最新均兼容性良好,未发现线上兼容异样。 6、不对外依赖纯手工打造,未应用第三方库,不会对宿主造成依赖抵触,随时改变随时公布不存在版本控制,最大水平的升高和隔断对原生容器的版本依赖。 异样解决原生导航条作为根试图容器,容器内子视图异样不会影响根试图的展现,所以不必非凡解决html下载失败,js执行异样,服务挂掉等异常情况。然而H5导航条遇到这些异常情况,也要保障用户能够点击返回按钮返回上一页。 百补计划目前计划已和通天塔以及hybrid团队买通,计划如下: 异样场景1:业务js执行异样。 • @pango/navigation-bar组件应用a标签渲染返回按钮,保障js执行异样时仍然展现返回按钮,并且能失常响应返回事件。 •业务展现兜底谬误页时,会应用导航条兜底数据渲染导航条确保可返回上一级。 异样场景2:webview加载html失败。 为了打消下面提到的过渡问题,业务链接中新增了qurey参数hideNavi=1 ,原生webview会通过该字段在webview呈现之前暗藏导航条。然而因而也引发了一个危险:html加载失败时,会造成无头的问题。因而须要webview配合革新,一旦监测到html加载失败,原生webview要展现原生导航条。 异样场景3:通天塔服务异样。 同样是场景2中的问题,须要通天塔配合革新通天塔服务异样的场景:根据链接中hideNavi字段增加返回按钮或者告诉webview展现默认导航条。 竞品和兄弟频道比照察看多个竞品以及兄弟频道,发现在上述的异样场景2、3下,均未做特地解决,展现无头谬误页。如果此时原生禁用了右滑返回手势,页面将无奈返回上一级,这无异是一个十分重大的缺点(事实上有些竞品页面以及咱们某些频道的确无奈返回上一级)。 线上我的项目目前应用该组件的我的项目:百亿补贴、月黑风高、PLUS95折。 线上成绩展现 设计思路参考原生navigationBar的设计思路,把整个导航栏分为左、右、中三个区域,左、右区域依据内容自适应宽度,残余空间为两头区域。左右区域承受items数组,可依据item接口协议设置左右的items,协定可自定义图片、尺寸、事件、间距、下拉菜单、是否动画响应等,已默认蕴含了关注、返回、更多、频道logo等罕用元素,当然如有须要也能够自定义一个React.ReactElement。两头区域只承受React.ReactElement,你能够自在定制元素,传入navigation-bar即可,一张图片一段文字,或者是一个搜寻框……不论是伸缩或者是上滑吸顶,都可自定义。 @pango/navigation-bar该组件应用react + ts开发,大小只有4.1K。 文件构造: 应用形式装置npm i @pango/navigation-bar --registry=http://registry.m.jd.com配置你能够自在配置items除了"follow", "more","back","logo",这些已知的元素外还能够设置type:"common",是一个通用类型的item; scrollCallBack会回调上滑比例,可依据该比例做交互动画; import { BACK_ICON, FEEDBACK_ICON, FEEDBACK_URL, INavigationParams, MORE_ICON, RULE_ICON, SHARE_ICON,} from "@pango/navigation-bar";setH5NavigationButton = (headerData) => { const extend = headerData?.navigationBar?.extend; const followInfo = headerData?.navigationBar?.followInfo; const follow = { type: "follow", collectionId: String(followInfo?.themeId), gapWidth: 12, width: 55, height: 22, }; const moreItem = { type: "more", menuBackgroundColor: "white", img: MORE_ICON, title: "更多", menuList: [], }; moreItem.menuList.push({ icon: RULE_ICON, title: "规定页", menuEventData: extend?.guideUrl, }); moreItem.menuList.push({ icon: SHARE_ICON, title: "分享", type: "share", menuEventData: extend?.share, }); const backItem = { type: "back", img: BACK_ICON, canClick: !margicWindow, title: "返回", }; const backLogo = { type: "logo", img: DEFAULT_LOGO, isAnimation: true, gapWidth: 5, width: 176, height: 34 }; const navBarParams: INavigationParams = { leftItems: [], rightItems: [], backgroundColor: "#FD4D00", navHeight: this.status.navHeight, }; navBarParams.leftItems.push(backItem, backLogo); navBarParams.rightItems.push(moreItem, follow); navBarParams.titleImgItem = TitleSearch({}); navBarParams.scrollCallBack = (scale) => { this.setStatus({ navigationBarParams: Object.assign(this.status.navigationBarParams, { titleImgItem: TitleSearch({ isCollapse: scale === 1 }) }) }); } return navBarParams; };titleImgItem特地留神titleImgItem,这个属性是导航条两头区域的展现内容,TitleSearch是百亿补贴的搜寻框,你能够参考该元素自定义两头区域。 ...

August 28, 2023 · 2 min · jiezi

关于html5:WebGL智慧粮仓3D可视化物联网系统

仓廪实、天下安。民之所需,行之所至。 建设背景古往今来,食粮问题从来是安邦定国的头等大事。“食粮”作为人类生存的生命之源,在人们的日常生活中起着决定性的作用。播种的食粮归仓,仓储工作是稳固“大国粮仓”的重要环节,当食粮收买后,如何让丰登成绩颗粒归仓,缩小损失,并确保食粮储备品质平安就成了最初的压轴战。 零碎概述 “智慧粮仓”是一种联合现代科技与传统农业的新型粮仓零碎。它依靠5G、物联网、大数据等技术手段,对粮仓内温湿度、气体浓度、食粮品质等信息进行实时监测和治理。并通过云端平台实现对食粮贮存、防虫防霉、机械设备等全方位的智能管制和监控,实现食粮贮存环境的科学化治理,进步食粮品质和保鲜期,缩小食粮损耗。 零碎性能粮仓三维概览 零碎利用数字孪生技术,对真实世界中的整个粮仓环境,如园区、仓库、设施等进行1:1数字化三维建模,实现对实体粮仓的精准映射,清晰残缺地展示整个粮仓环境。 环境监测零碎 零碎实时主动监测每个仓库中食粮温度、湿度、霉变、氮气、压力等状况,构建不同的智能控制系统,实现高温生态储粮、升高储粮能耗和平安生产事变,并通过相应的主动气调零碎,实现智能调节。 出入库管理系统 零碎综合应用RFID、传感器、智能图像识别等技术,建设疾速注销零碎、主动扦样零碎、疾速化验零碎、主动称重零碎、出入仓确认零碎,主动采集粮仓作业数据,保障粮仓出入库数量信息的准确性。 智能安防零碎系统对进入库区的人员车辆进行治理,借助库区视频监控零碎,近程对入库人员车辆进行监管,同时,通过视频监控、人工巡逻、门禁治理和消防查看等形式来保障库区和食粮的平安。 智能通风零碎零碎依据仓内外温湿度传感器检测的后果,近程自动控制风机、仓窗、离心风机、谷物冷却机、水源热泵等设施,进行排积热通风、降温通风、降水通风,无效升高通风能耗及老本,进步通风效率和准确度。 智能气调零碎通过对粮情变动状况的智能剖析,联合食粮储备过程中的品质检测状况,通过氮气储粮等形式管制粮情变动,改善食粮储备的生态环境,缩小虫害的产生和减缓食粮品质的变动,以更稳固的形式进行食粮储备。 虫情监测零碎 基于虫害传感器以及智能图像视频剖析技术,主动实时监控仓储食粮虫情数量、品种等。从而对整个粮仓的害虫散布以及害虫将来的发展趋势进行精确的预测并提出精确的防治措施或倡议,缩小因虫害造成食粮损失,确保储粮平安。 智能烘干零碎零碎通过传感器检测到热风温度、进出粮的水分和温度、烘干塔排粮速度,依据不同食粮种类的烘干管制模型,对变频器发出信号,管制排粮轮的转速从而管制排粮速度,管制出粮的水分含量,升高烘干能耗。智能控制系统零碎蕴含管制智能通风管制、智能空调控温管制、智能氮气气调管制、智能环流熏蒸管制、照明管制能性能,使管制流程集中到一个平台中,不便各点管制。 智能告警零碎智慧报警零碎通过软件中设置的点位阈值进行判断,可通过大屏上的动画、声音等形式报警,响应迅速,安全可靠。日志查看零碎智慧粮仓零碎中蕴含残缺的系统日志,包含温湿度走势、报警日志、出入库日志、气体浓度走势、巡检日志、能耗剖析、数据导入导出等性能,为粮仓治理报表需要提供无力反对。…… 开发平台智慧粮仓三维可视化管理系统利用Sovit3D可视化开发平台,将 “园区、仓库、设施、修建”等因素,通过三维建模综合映射到智慧粮仓数字孪生可视化零碎中,构建粮情数字化、标准化、智慧化、一体化的3D可视化平台,实现视频监控、粮情监测、智能保粮、出入库治理、智能告警等可视化性能。实现粮仓宏观尽在把握、宏观可视化出现的成果。 通过Sovit3D实现可交互式的 Web三维场景,可进行缩放、平移、旋转、翻转,场景内各设施能够响应交互事件。2D、3D 无缝连接,完满交融。 建设价值智慧粮仓的作用不仅仅局限于食粮贮存环境的监控和调控,它还能够通过大数据分析和人工智能算法,提供食粮贮存的优化计划。依据不同种类的食粮和不同的贮存条件,智慧粮仓能够自动控制通风、制冷、加热等设施,优化食粮贮存环境,缩短食粮的保鲜期,进步食粮的商业价值,对鼎力推动食粮行业信息化倒退具备重要意义。 总结随着智慧农业的一直倒退,智慧粮仓的利用前景将会越来越广大,各地继续推动智慧粮库建设,强化食粮库存动静监管,用科技赋能储粮管粮全过程,牢牢稳住粮食安全的“压舱石”。 本文次要介绍了Sovit2D和Sovit3D在食粮贮存智慧化零碎开发中的实际利用,从智慧粮仓综合治理平台零碎的Web组态、三维可视化等多方面,进行疾速高效的可视化开发,为智慧粮仓/粮库解决方案提供商及软件开发公司提供全面的技术支持。

August 24, 2023 · 1 min · jiezi

关于html5:点餐系统源码微信点餐外卖系统开发

 点餐外卖零碎一种小型程序,能够在微信平台中间接开启,为顾客提供在线点餐、外卖等服务,不便顾客须要时在线订餐、外卖,从而减少了餐厅的支出,进步了工作效率。它具备交互性、速度快、用户体验好等长处,因而备受消费者和商家欢送。当初,咱们来介绍一下微信微信点餐外卖零碎的源码实现。 点餐外卖功能模块实现 基于零碎设计,在该餐外卖零碎中,咱们须要实现以下几个功能模块。 1.用户治理模块 用户治理模块次要实现顾客的用户信息管理,包含登录、注册、批改明码等性能。 首先,咱们须要在后端设计好User实体类和UserMapper DAO接口,并以Restful接口方式裸露。 User实体类代码: public class User { private Integer id; private String username; private String password; private String phone; //getters and setters} UserMapper接口代码: public interface UserMapper { User findByUsername(String username); void save(User user); void updatePassword(User user);} 而后,咱们须要实现前端的用户治理界面,包含登录、注册、批改明码等性能,应用Vue.js、Axios等技术实现交互逻辑和与后端的通信。 2.菜单治理模块 菜单治理模块次要实现菜单的治理和展现性能,包含菜品的增加、删除、更新,菜单的展现等。 首先,咱们须要在后端设计好Food实体类和FoodMapper DAO接口,并以Restful接口方式裸露。 Food实体类代码: public class Food { private Integer id; private String name; private Double price; private String imgUrl; //getters and setters} FoodMapper接口代码: ...

June 20, 2023 · 1 min · jiezi

关于html5:什么是HMI和SCADA两者有什么区别

前言几十年来,工业控制系统在工业自动化中施展了重要作用,它容许过程制造商从生产车间采集、剖析、解决数据。 在当今瞬息万变的工业环境中,制造商和公用事业公司必须采纳古代HMI/SCADA和数字化转型,以跟上变动的步调,应答一直增长的经营挑战并放弃竞争力。 HMI/SCADA软件在世界各地运行工业工厂,帮忙操作员做出运行机械的要害决策。 应用新型高性能HMI/SCADA软件的操作员能够更快地找到要害数据,并进步生产率。 技术创新正在重塑工业格局。这些翻新包含便宜的传感器、能够传输大量数据的高速网络基础设施、前所未有的计算能力,以及基于规范的互操作性凋谢生态系统。该生态系统包含基于 Web 的技术、用于连贯的 API、机器学习和工业 AI。 什么是SCADA?数据采集与监督控制系统(SCADA) 是一个由软件和硬件元素组成的零碎,容许工业组织: 在本地或近程地位管制工业流程监控、收集和解决实时数据通过人机界面 (HMI) 软件间接与传感器、阀门、泵、电机等设施交互将事件记录到日志文件中SCADA零碎对于工业组织至关重要,因为它们有助于放弃效率,解决数据以实现更理智的决策,并传播零碎问题以帮忙缩小停机工夫。 根本的SCADA架构从可编程逻辑控制器(PLC)或近程终端单元(RTU)开始。PLC和RTU是微型计算机,它们与一系列对象(如工厂机器,HMI,传感器和终端设备)进行通信,而后应用SCADA软件将信息从这些对象路由到计算机。SCADA软件解决、散发和显示数据,帮忙操作员和其余员工剖析数据并做出重要决策。 例如,SCADA零碎疾速告诉操作员一批产品呈现高错误率。操作员暂停操作并通过HMI查看SCADA零碎数据,以确定问题的起因。操作员查看数据并发现机器呈现故障。SCADA零碎可能告诉操作员问题,这有助于他解决问题并避免进一步的产品损失。 什么是HMI?人机界面 (HMI) 是一种用户界面,容许人类操作员与机器或过程进行交互。HMI通常用于工业环境,容许操作员监督和管制过程,例如工厂或发电厂中的过程。 HMI 能够采纳多种形式,包含计算机上的图形用户界面 (GUI)、触摸屏或带有按钮和显示器的物理控制面板。它们用于向操作员出现过程数据,容许操作员输出命令和设定值,以及提供警报和其余信息。 HMI通常连贯到可编程逻辑控制器(PLC),PLC负责依据现场HMI和传感器的输出来管制过程。HMI只是向操作员提供信息,并容许他们输出命令,而后将其发送到PLC进行施行。 在工业环境中,HMI可用于: 直观地显示数据跟踪生产工夫、趋势和标签监督要害绩效指标监控机器输出和输入工厂车间操作员可能会应用 HMI 来检查和管制工业水箱的温度,或者查看设施中的某个泵以后是否正在运行。 根本的HMI包含机器、显示器和内置屏幕,但无论它们的格局或应用哪个术语来指代它们,它们的目标是提供对机械性能和进度的见解。 SCADA和HMI的区别HMI和SCADA零碎执行相似的工作,监督和管制某些过程,但HMI和SCADA之间的次要区别在于: HMI仅限于一个或两个过程/零碎,其监测和管制在本地执行。SCADA通常用于管制和监控位于更宽泛区域的更简单的零碎,并且须要先进的管制工具和技术。总之,HMI能够是SCADA的一部分,但SCADA不能成为HMI的一部分。SCADA和HMI开发工具人机界面(HMI)是人类与机器交互的形式。 在工业环境中,HMI 是一种控制面板,只需在 Sovit2D 开发平台中利落拽图形即可轻松设计、施行和批改。应用 Sovit2D软件设计 HMI 能够节俭三分之二的开发、批改工夫。Sovit2D 遵循HTML5规范,基于B/S架构,无需装置客户端,反对2D、3D的画面组态,轻松实现3D可视化性能及数字孪生,反对本地/云端部署,可轻松与用户自有系统集成为综合利用平台。使用户能依据本人的管制对象和管制目标的任意组态,实现最终的自动化控制工程。

June 16, 2023 · 1 min · jiezi

关于html5:App端自动播放H5视频配置

iOS 自动播放配置 1、须要在初始化的地位配置下// 是否容许内联或应用本机全屏控制器,默认是NO。 wkWebConfig.allowsInlineMediaPlayback = YES;if (@available(iOS 10.0, *)) { wkWebConfig.mediaTypesRequiringUserActionForPlayback = WKAudiovisualMediaTypeNone;} else { wkWebConfig.mediaTypesRequiringUserActionForPlayback = NO;}2、如果有些视频设置了上述代码还不会自动播放,配置WKWebview代理(_wkwebView.navigationDelegate = self;)在加载实现后代理办法里手动调用下 // 页面加载实现之后调用 - (void)webView:(WKWebView *)webView didFinishNavigation:(WKNavigation *)navigation { [self playVideo];}- (void)playVideo{ NSString *script = @"var videos = document.querySelectorAll(\"video\"); for (var i = videos.length - 1; i >= 0; i--) { var ivideo = videos[i]; ivideo.setAttribute(\"webkit-playsinline\",\"\"); ivideo.play(); };"; [_wkwebView evaluateJavaScript:script completionHandler:nil]; }Android 自动播放配置WebSettings webSetting = webView.getSettings();高版本https问题 webSetting.setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);webSetting.setSupportMultipleWindows(false);webSetting.setBlockNetworkImage(true);//解决图片不显示webSetting.setJavaScriptEnabled(true); // 是否开启JS反对webSetting.setAllowFileAccess(true); // 是否容许拜访文件webSetting.setDomStorageEnabled(true); // 是否节点缓存webSetting.setDatabaseEnabled(true); // 是否数据缓存webSetting.setAppCacheEnabled(true); // 是否利用缓存webSetting.setMediaPlaybackRequiresUserGesture(false); // 是否要手势触发媒体 重点webSetting.setTextZoom(100); // 设置文本缩放的百分比webSetting.setLoadsImagesAutomatically(true); // 是否主动加载图片webSetting.setDefaultTextEncodingName("UTF-8"); // 设置编码格webSetting.setBlockNetworkLoads(false); // 是否从网络获取资源webView.loadUrl("https://xxx"); ...

June 16, 2023 · 1 min · jiezi

关于html5:什么是组态软件

组态软件,又称监控组态软件,译自英文SCADA,即upervision,Control and Data Acquisition(数据采集与监督管制),组态软件的应用领域很广,它能够利用于电力系统、给水零碎、石油、化工等畛域的数据采集与监督管制以及过程管制等诸多畛域。 在电力系统以及电气化铁道上又称远动系统(RTU System,Remote Terminal Unit)。简略的讲,组态就是用应用软件中提供的工具、办法、实现工程中某一具体任务的过程。 与硬件生产绝对照,组态与组装相似。如要组装一台电脑,当时提供了各种型号的主板、机箱、电源、CPU、显示器、硬盘、光驱等,咱们的工作就是用这些部件拼凑成本人须要的电脑。当然软件中的组态要比硬件的组装有更大的施展空间,因为它个别要比硬件中的“部件”更多,而且每个 “部件” 都很灵便,因为软部件都有外部属性,通过扭转属性能够扭转其规格(如大小、性状、色彩等)。 在组态概念呈现之前,要实现某一工作,都是通过编写程序(如应用BASIC,C,FORTRAN等)来实现的。编写程序岂但工作量大、周期长,而且容易犯错误,不能保障工期。组态软件的呈现,解决了这个问题。对于过来须要几个月的工作,通过组态几天就能够实现。 组态软件是有专业性的。一种组态软件只能适宜某种畛域的利用。组态的概念最早呈现在工业计算机控制中。如DCS(集散控制系统)组态,PLC(可编程控制器)梯形图组态。人机界面生成软件就叫工控组态软件。其实在其余行业也有组态的概念,人们只是不这么叫而已。 如AutoCAD,PhotoShop,办公软件(PowerPoint)都存在类似的操作,即用软件提供的工具来造成本人的作品,并以数据文件保留作品,而不是执行程序。组态造成的数据只有其制作工具或其余专用工具能力辨认。然而不同之处在于,工业管制中造成的组态后果是用在实时监控的。组态工具的解释引擎,要依据这些组态后果实时运行。从外表上看,组态工具的运行程序就是执行本人特定的工作。 尽管说组态就是不须要编写程序就能实现特定的利用。然而为了提供一些灵活性,组态软件也提供了编程伎俩,个别都是内置编译系统,提供类BASIC语言,有的甚至反对VB。 组态软件是指一些数据采集与过程管制的专用软件,它们是在主动控制系统监控层一级的软件平台和开发环境,应用灵便的组态形式,为用户提供疾速构建工业主动控制系统监控性能的、通用档次的软件工具。 组态软件应该能反对各种工控设施和常见的通信协议,并且通常应提供分布式数据管理和网络性能。对应于原有的HMI(人机接口软件,Human Machine Interface)的概念,组态软件应该是一个使用户能疾速建设本人的HMI的软件工具或开发环境。 在组态软件呈现之前,工控畛域的用户通过手工或委托第三方编写HMI利用,开发工夫长,效率低,可靠性差;或者购买专用的工控零碎,通常是关闭的零碎,抉择余地小,往往不能满足需要,很难与外界进行数据交互,降级和减少性能都受到重大的限度。 组态软件的呈现,把用户从这些窘境中解脱进去,能够利用组态软件的性能,构建一套最适宜本人的利用零碎。随着它的疾速倒退,实时数据库、实时控制、SCADA、通信及联网、凋谢数据接口、对I/O设施的广泛支持曾经成为它的次要内容,随着技术的倒退,监控组态软件将会一直被赋予新的内容。 更多内容,请关注BY组态案例:http://94.191.39.192:8080/byzt-s/example.html官网地址:http://www.hcy-soft.com

June 9, 2023 · 1 min · jiezi

关于html5:HTML5智慧化工数字孪生WebGL三维可视化系统

前言作为寰球化学品第一生产大国,我国危险化学品规模总量大、波及种类多、利用范围广、治理链条长、平安危险高,从来是防备化解重大平安危险的重点畛域。危险化学品畛域频繁产生的典型事变,暴露出传统平安危险管控伎俩问题突出。 建设背景石油石化行业是国家重要的支柱行业,具备生产规模大,生产线长,数据模型大,物料危险性低等特点。非凡的作业环境、偏僻的厂区地位,使得工作人员作业值守难度大、老本高、效率低。随着5G、云计算、人工智能等新技术的倒退,信息化、数字化以锐不可当之势,渗透到各行各业中,为解决上述难题,传统能源企业开始打造智慧化石油化工调度指挥核心,寻求数字化转型。 零碎概述智慧化工是指利用云计算、大数据、物联网、人工智能等信息技术和设施监控技术增强信息管理服务,分明把握生产流程、进步生产过程的可控性、缩小生产线上人工的干涉、即时正确地采集生产线数据,实现化工厂的设施智能化、生产高效化、平安监测预警等,在传统的化工场景上附加了人工智能技术,实现了智能信息化转型的化工场景,属于化工自动化的高级阶段。 三维场景搭建通过 Sovit3D 构建 Web 化工厂数字孪生治理平台。以厂区整体现场取景照片、卫星图、CAD 图等材料,利用数字孪生技术对厂区进行 1:1 三维实景展现,实在还原厂区修建及散布,打造三维仿真化工厂三维场景。 二维组态设计将传统的 SCADA 设施组态图进一步丑化降级,绘制出形象的设施平面图元,将设施与设施相连,使用带有介质流动 UV 动画成果展现出工艺走向。综合看板模块反对基于地理信息系统,对厂房的地位、散布、边界进行监测,整合工厂现有数据资源,对生产进度、设施运维、能效治理、仓储物流、安防治理等各畛域的运行提醒进行综合监测剖析,辅助管理者全面掌控厂区运行态势。 生产治理监测反对以实在生产线场景为根底,对各个工段、重要设施、运行流程等进行实在复现,对生产流程、运行状态、生产进度、生产数据等进行监测和剖析,辅助管理者实时把握生产进度,进步生产效率。 设施管理系统设施资源及管制层包含传感器、仪器仪表、条码、射频辨认、机器、机械和安装等物联网硬件设施。通过三维建模,实在复现设施设施外观、构造、运行详情,并对设施运行环境、运行状态等进行实时监测,反对设施运行异样实时告警,可点击查看设施的详细信息、培修记录、视频监控画面、告警详情等,辅助管理者直观把握设施运行状态,通过设施资源的管制,把握化工厂进行的生产流动技术。 安防管理系统反对集成厂区平安防备管理系统数据,提供平安态势监测一张图,反对对厂区重点部位、人员、车辆、告警事件等因素进行实时监测,安防报警事件疾速显示、定位,实时调取事件周边监控视频,辅助管理者无效晋升厂区平安管控效劳。 能耗管理系统反对整合厂区内能耗数据,对厂区供暖、供排水、能源能耗、供电等各个子系统生产运行态势进行实时监控和多维度剖析,反对能耗趋势剖析、能耗指标综合考评,帮忙管理者实时理解园区能耗情况,为资源正当调配、厂区节能减排提供无力的数据根据。 视频监控零碎反对无缝交融视频监控性能,对厂区及周边开展安防动静监测,并且和火灾报警、门禁系统、人员治理等零碎进行联动,进行精准的定位视频摄像头查看,反对多摄像头窗口的并行查看。与视频安防监控零碎进行集成,管理人员通过实时视频查看现场状况,运维人员对厂区进行实时化、透明化、流程化、全局化的可视化治理。 电子围栏零碎对厂区或重要区域设置电子围栏,采纳区域入侵智能剖析技术,达到一旦有人进入戒备区域,智能跟踪球机立刻主动跟踪现场指标,并在现场和监控核心立刻产生声光报警,及在监控客户端和电视墙上显示现场报警视频等。以及采纳视频拼接技术实现四周围墙区域的大范畴监控,防止查看多个画面而导致脱漏景象的产生。同时,对于雾霾天气较多的监所,可采纳智能透雾摄像机进行监控,全方位保障厂区生产平安。 主动巡检零碎基于智慧化工厂三维可视化零碎,当时预设巡检路线,以第三人称形式在该路线上的监控设施进行轮询查看,达到线上巡检的目标。同时能够实时查看设施运行状态以及实时数据,进步巡检的效率和成果。 人员管理系统对于厂区生产作业人员,依靠智能穿戴设施实时把握人员、地位、轨迹信息,联动电子围栏,实现视频联动追踪监督,防止人员进入非法受控区域。建设人员治理模块,对于长期的外来人员,可监测生产区域流动人员的数量和地位,联合电子围栏,实现实时预警非法人员地理位置,保障厂区平安生产和人员平安。 消防管理系统通过API接口,接入消防系统,实时对烟感、探头、喷淋喷头等设施进行监管,当产生异样(火灾、爆炸、气体扩散等)异样情况时,可联动事变左近摄像头弹窗,显示实时监控画面,并调取人员逃生路线,有序进行撤退,保障人员生命安全、财产损失。 异样数据管理反对采集报警信息,列出报警设施信息,点击报警信息能主动定位到设施处,疾速查看设施的报警状况,并且在报警设施处显示醒目报警标签,并能够通过点击告警提醒进行数据穿透,查看对应设施状态、告警零碎信息、对应监控信息。 ……(以上性能仅供参考,更多零碎性能以理论需要为准) 开发技术以化工厂全貌照片为底本,通过数字孪生技术建设3D模型,高度还原厂区实在三维场景,对化工厂的设施、人员、修建、环境、安防等因素进行实时监控。进行数据与三维场景的联动和数据交互展现,买通了数据壁垒,实现数据共享,通过Web 2D/3D组态界面,灵便、高效、牢靠的实现对厂区设施的实时监测、自动控制、智能调节、决策分析等综合治理性能,让生产管制与数字化深度交融,实现近程产线运行治理、可视化治理集中化,不便各部门高效协同。从而达到数据层面人、机、料、法、环的互联互通,一屏高效治理厂区生产制作。 建设价值智慧化工三维可视化零碎利用旧设施实现智能化革新降级,链接各类物联网设施和自动化工控零碎,充分考虑层级建设、各零碎交融、数据安全、高效生产等多方面因素,实现智能视频剖析、危险隐患全生命周期治理、智慧化作业流程、智慧检培修、数字孪生工厂等性能,全天候、多角度进行危险和生产管控,以“平安生产”为主线,实现数字化转型、智能化降级,强化平安生产根底和技术创新能力,构建“工业互联网+危化平安生产”技术体系和利用生态系统,晋升平安生产危险感知评估、监测预警和响应处理能力,排查化解潜在危险,保障化工厂24小时平安生产。 总结智慧化工三维可视化管理系统利用云计算、物联网、大数据等信息化技术和通信技术,实现一整套整合化工厂平安、环保、应急、消防、安防、能源、物流及利用为一体的智慧治理平台。实现设施数字化、故障预知化、生产智能化、作业标准化、治理规范化、经营信息化、决策科学化,晋升安全监控程度和企业管理效率,助力化工行业智能制作提速倒退。 以上就是对于“智慧化工三维可视化治理平台”的全部内容,数维图只提供储能站数字化所需的2D/3D可视化编辑器平台,想理解2D、3D可视化开发引擎,欢送拜访数维图官网(www.SovitJs.com)或官网微信公众号(SovitJs)。

June 6, 2023 · 1 min · jiezi

关于html5:BY组态低代码web可视化组件

简介BY组态是贵州九元四方科技齐全自主研发的集实时数据展现、动静交互等一体的全功能可视化平台。帮忙物联网、工业互联网、电力能源、水利工程、智慧农业、智慧医疗、智慧城市等场景疾速实现数字孪生、大屏可视化、Web组态、SCADA等解决方案。具备实时监控、多样、变动、动静交互、高效、可扩大、反对主动算法、跨平台等特点,最大水平缩小研发和运维的老本,并致力于一般业务人员 0 代码开发实现数字孪生、大屏可视化、Web组态、SCADA等解决方案。在线体验:http://94.191.39.192:8080/byzt-s/example.html 特点丰盛的组态能力· 拖拽编辑,简略易用· 数据绑定,实时动态数据显示,数据下发,双向数据通信,条件、格式化显示· 逐帧动画和轨迹动画,条件告警动画等· 事件、音讯,组态联动· 组合、自定义状态、开关、报表、弹框、视频等· 丰盛外观、格局刷性能 0代码数据通信· 反对 mqtt 动态数据监听· 反对 websocket 动态数据监听· 反对 http 自主申请动静更新数据· 反对静态数据创立,导入 组态的利用· 导入导出组态图· 导出HTML、Vue、React等离线部署包· 反对组态图环境迁徙能力· 反对通过API对组态进行创立、查问、删除、复制、公布等治理能力· 反对组态设计页面内嵌集成到第三方平台· 反对组态查看页面内嵌集成到第三方平台· 提供离线部署装置形式,反对云端部署 多端适配能力· 反对Chrome、Firefox、Edge等支流浏览器。· 反对挪动端webview形式拜访 弱小的扩大能力· 图形库扩大:自定义图形库扩大,格局反对js、svg、jpg、iconfront· 数据显示扩大:条件显示、数据格式显示、自定义函数扩大等· 交互事件扩大:零碎音讯、自定义音讯、生命周期hook、零碎接口函数等· 智能算法扩大:反对自定义拖拽智能算法,自定义连线算法等· 动画扩大:节点逐帧定义动画、自定义算法动画· 排版扩大:反对自定义排版布局算法 谋求卓越性能· 稳固,零碎交互中断不影响零碎运行· 可反对10000-20000节点· 反对绑定1000-2000数据点。1000数据点30ms实现刷新· 反对 1000+动画播放 丰盛的组件库资源· 电力系统,能源零碎,物联网,智慧水务,智能制作,数字大屏,图表控件,视频流监控一共4000多个组件· 反对自定义扩大宽泛的 利用场景反对· 电力能源、水利水务、变电站、光伏零碎、火电厂、化工厂、废气治理、炼钢厂、风电、矿山、煤矿零碎等· 物联网、工业互联网、电信机房核心、数据中心、采暖系统、制冷系统、近程监控零碎等· 智慧工厂、智慧楼宇、智慧园区、智慧交通、智慧城市、智慧港口、智慧停车、智慧医疗、智慧农业等· 大屏展现、看板展现、数据报表、安防监控、IT 运维等· 架构图、拓扑图、UML图、脑图等 源码交付、自主可控· 公司自主潜心研发五年,把握核心技术和知识产权,可能做到齐全自主可控,且产品放弃继续迭代优化 行业案例 分割咱们联系方式:15285092394单干邮箱:shenmingoll3@163.com公司地址:贵州省贵阳市高新区科技大厦B座1楼  

May 16, 2023 · 1 min · jiezi

关于html5:textContentinnerTextinnerHTML的区别

innerHTML与两者区别很大,获取HTML文本解构内容。innerText获取指定节点及其后辈节点的文本内容,然而暗藏的元素、style、script标签的内容获取不到!textContext获取的是指定节点的所有子节点的内容,即使是暗藏元素、style、script标签的内容也能获取。设置方面:textContext不会引起重排reflow,而innerText则会。(这里其实我也很蛊惑!)参考:https://www.cnblogs.com/yunkong/p/4460344.html

March 15, 2023 · 1 min · jiezi

关于html5:利用mkdocs部署静态网页至GitHub-pages

Info:官方网站:MkDocs我的集体网站成绩:http://wcowin.work/ 一、筹备工作1.下载Github Desktop 2.有一个GitHub账号 二、Creating your site参考教程: 网站制作 - Wcowin的集体网站 与以往教程不同,我首先倡议先在Github创立一个名为你的名字+github.io的仓库 而后关上github Desktop 克隆到本地 关上Wcowin.github.io目录进入终端运行: mkdocs new mkdocs-site呈现下图的几个文件 docs文件下是当前网站的内容,mkdocs.yml是配置文件(配置主题,目录,插件等) 你在这个目录下写的任何货色都能够通过github Desktop 上传到github上 以VScode为例咱们关上具体看看外面的货色 (倡议先执行上面的代码增加一个GitHub Workflow) 1.$ mkdir .github2.$ cd .github3.$ mkdir workflows4.$ cd workflows5.$ vim PublishMySite.yml目录树状图: $ tree -a.├── .github│ ├── .DS_Store│ └── workflows│ └── PublishMySite.yml├── docs│ └── index.md└── mkdocs.yml三、配置欠缺关上mkdocs.yml 把以下的内容输出进去(最简略配置) site_name: 网站名字site_url: site_author: 你的名字theme: name: material #主题具体mkdocs.yml配置见Changing the colors - Material for MkDocs 下次我会具体谈谈这个问题 在下方终端运行能够在浏览器看到实时网站 mkdocs serve ...

March 5, 2023 · 1 min · jiezi

关于html5:现代图片性能优化及体验优化指南-缩放精细化展示及避免布局偏移拉伸

本文是系列第三篇。系列文章: 古代图片性能优化及体验优化指南 - 图片类型及 Picture 标签的应用古代图片性能优化及体验优化指南 - 响应式图片计划图片资源,在咱们的业务中堪称是占据了十分大头的一环,尤其是其对带宽的耗费是非常微小的。 对图片的性能优化及体验优化在明天就显得尤为重要。本文,就将从各个方面论述,在各种新个性满头飞的明天,咱们能够如何尽可能的对咱们的图片资源,进行性能优化及体验优化。 图片的宽高比、裁剪与缩放OK,上面进入到咱们的第三个模块,图片的宽高比、裁剪与缩放。咱们会介绍 4 个新的个性: aspect-ratioobject-fitobject-positionimage-rendering应用 aspect-ratio 防止布局偏移很多时候,只能应用固定尺寸大小的图片,咱们的布局可能是这样: 对应的布局: <ul class="g-container"> <li> <img src="http://placehold.it/150x100"> <p>图片形容</p> </li></ul>ul li img { width: 150px;}当然,万一假如后端接口呈现一张非正常大小的图片,上述不加爱护的布局就会出问题: 所以对于图片,咱们总是倡议同时写上高和宽,防止因为图片尺寸谬误带来的布局问题: ul li img { width: 150px; height: 100px;}同时,给 <img> 标签同时写上高宽,能够在图片未加载之前提前占住地位,防止图片从未加载状态到渲染实现状态高宽变动引起的重排问题。 当然,到明天,咱们还能够应用 aspect-ratio 设定图片的高宽比。 aspect-ratio CSS 属性为容器规定了一个期待的宽高比,这个宽高比能够用来计算主动尺寸以及为其余布局函数服务。 像是下面的代码,咱们就能够替换成: ul li img { width: 150px; aspect-ratio: 3 / 2;}当然,有的时候,咱们的布局是响应式动静在变动的,容器的宽度也是不确定的,因而,有了 aspect-ratio 之后,咱们的写法就能够更佳的难受。 ul li img { width: 100%; aspect-ratio: 3 / 2;}这里,容器基于 Flex 弹性布局或者响应式布局,其宽度是不固定的,然而图片的宽高比是固定的,应用 aspect-ratio: 3 / 2 就能十分好的适配这种状况。 ...

February 23, 2023 · 2 min · jiezi

关于html5:免费视频直播点播H5播放器SkeyeWebPlayer多屏九宫格双击分屏放大缩小拖动拖入分屏播放等功能的使用

免费视频直播、点播H5播放器SkeyeWebPlayer多屏(九宫格)、双击分屏放大放大、拖动(拖入分屏播放)等性能的应用。1.SkeyeWebPlayer多屏(九宫格)布局切换,个别采纳1、4、9、16、25、36屏等分屏布局 点击分屏按钮进行屏幕宰割,下拉更多抉择分屏形式能够切换 2.分屏双击分屏放大放大 在分屏区域内双击可放大整个区域,再双击可还原分屏。--vue--<div class="grid-col__border" ref="gridCol" :class="[{active:playerIndex===index}]" @click.stop="playerIndex = index" @dblclick.stop="dbClickHandler($event,index)" @mouseup.prevent="onMouseup($event,index)"> <!--播放器组件--> <VSLivePlayer v-if="item.cameraId" :key="item.cameraId" :item="item" :index="index" @closeStream="closeChannel(index)"> </VSLivePlayer> </div>--js--// 双击放大放大dbClickHandler(e, index) { if (this.isDoubleClick) { this.isDoubleClick = false this.$refs.gridCol[index].style.position = '' this.$refs.gridCol[index].style.top = '' this.$refs.gridCol[index].style.left = '' this.$refs.gridCol[index].style.height = '' this.$refs.gridCol[index].style.width = '' this.$refs.gridCol[index].style.backgroundColor = '' this.$refs.gridCol[index].style.zIndex = '' } else { this.isDoubleClick = true this.$refs.gridCol[index].style.position = 'absolute' this.$refs.gridCol[index].style.top = '0' this.$refs.gridCol[index].style.left = '0' this.$refs.gridCol[index].style.height = '100%' this.$refs.gridCol[index].style.width = '100%' this.$refs.gridCol[index].style.backgroundColor = '#000' this.$refs.gridCol[index].style.zIndex = 10 }},在全屏模式下也能够双击放大,在全屏模式下双击放大时单个分屏全屏显示,如图: ...

February 17, 2023 · 2 min · jiezi

关于html5:关于h5-input标签模拟点击唤起摄像头拍照-移动端无效的问题

公司须要做人脸识别的兼容性,须要应用到input type为file的标签唤起相机,代码如下: <input type="file" accept="images/*" capture="user" id="input" />/* capture -> user 为前置摄像头 capture -> camera 为后置摄像头 accept -> image 为拍照 accept -> video 为录像*/window.onload = function() { document.getElementById('input').click()}在PC端的话能够间接唤起文件上传,然而在挪动端网页则无奈唤起,什么反馈都没有,看了一遍文章,写的也不是很具体,但至多解决了 https://blog.csdn.net/logan_L... 解决方案:将主动触发点击事件放到异步函数setTimeout里 window.onload = function() { setTimeout(() => { document.getElementById('input').click() // 挪动端能够唤起摄像头拍照 }) }

February 14, 2023 · 1 min · jiezi

关于html5:H5直播技术起航

作者:京东科技 吴磊音视频基本概念视频格式就是通常所说的.mp4,.flv,.ogv,.webm等。简略来说,它其实就是一个盒子,用来将理论的视频流以肯定的程序放入,确保播放的有序和完整性。 视频压缩格局和视频格式具体的区别就是,它是将原始的视频码流变为可用的数字编码。因为,原始的视频流十分大,打个比方就是,你间接应用手机录音,你会发现你几分钟的音频会比市面上呈现的 MP3 音频大小大很多,这就是压缩格局起的次要作用。 首先,由原始数码设备提供相干的数字信号流,而后经由视频压缩算法,大幅度的缩小流的大小,而后交给视频盒子,打上相应的dts,pts字段,最终生成可用的视频文件。 DTS(Decoding Time Stamp):即解码工夫戳,这个工夫戳的意义在于通知播放器该在什么时候解码这一帧的数据。 PTS(Presentation Time Stamp):即显示工夫戳,这个工夫戳用来通知播放器该在什么时候显示这一帧的数据。 视频编码视频实际上就是一帧一帧的图片,拼接起来进行播放而已。而图片自身也能够进行相干的压缩,比方去除反复像素,合并像素块等等。不过,还有另外一种压缩办法就是,静止预计和静止弥补压缩,因为相邻图片肯定会有一大块是类似的,所以,为了解决这个问题,能够在不同图片之间进行去重。 所以,总的来说,罕用的编码方式分为三种: 变换编码:打消图像的帧内冗余<!----> 静止预计和静止弥补:打消帧间冗余<!----> 熵编码:进步压缩效率熵编码即编码过程中按熵原理不失落任何信息的编码。信息熵为信源的均匀信息量(不确定性的度量)。常见的熵编码有:香农(Shannon)编码、哈夫曼(Huffman)编码和算术编码(arithmetic coding)。直播当初,罕用的直播协定有 RTMP,HLS,HTTP-FLV。最罕用的还是 HLS 协定,因为反对度高,技术简略,然而提早十分重大。这对一些对实时性比拟高的场景,比方静止赛事直播来说十分的不敌对。这里来细分的看一下每个协定。 协定比照协定劣势劣势延时HLS支持性广延时巨高10s 以上RTMP延时性好,灵便量大的话,负载较高1s 以上HTTP-FLV延时性好,游戏直播罕用只能在手机 APP 播放2s 以上HLSHLS 全称是 HTTP Live Streaming。这是Apple提出的直播流协定。 HLS 由两局部形成,一个是.m3u8文件,一个是.ts视频文件(TS 是视频文件格式的一种)。整个过程是,浏览器会首先去申请.m3u8的索引文件,而后解析m3u8,找出对应的.ts文件链接,并开始下载。 他的应用形式为: <video> <source src="http://..../xxxx.m3u8" type="application/x-mpegURL" /> </video>间接能够将m3u8写进src中,而后交由浏览器本人去解析。当然也能够采取fetch来手动解析并获取相干文件。HLS 具体版的内容比下面的简版多了一个playlist,也能够叫做master。在master中,会依据网络段实现设置好不同的 m3u8 文件,比方,3G/4G/wifi 网速等。比方,一个 master 文件中为: #EXTM3U#EXT-X-VERSION:6#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=2855600,CODECS="avc1.4d001f,mp4a.40.2",RESOLUTION=960x540live/medium.m3u8#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=5605600,CODECS="avc1.640028,mp4a.40.2",RESOLUTION=1280x720live/high.m3u8#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1755600,CODECS="avc1.42001f,mp4a.40.2",RESOLUTION=640x360live/low.m3u8#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=545600,CODECS="avc1.42001e,mp4a.40.2",RESOLUTION=416x234live/cellular.m3u8大家只有关注BANDWIDTH(带宽)字段,其余的看一下字段内容大抵就分明了。如果这里抉择high.m3u8文件,那么,外面内容为: #EXTM3U#EXT-X-VERSION:6#EXT-X-TARGETDURATION:10#EXT-X-MEDIA-SEQUENCE:26#EXTINF:9.901,http://media.example.com/wifi/segment26.ts#EXTINF:9.901,http://media.example.com/wifi/segment27.ts#EXTINF:9.501,http://media.example.com/wifi/segment28.ts留神,其中以ts结尾的链接就是在直播中真正须要播放的视频文件。该第二级的m3u8文件也能够叫做media文件。该文件,其实有三种类型: live playlist: 动静列表。顾名思义,该列表是动态变化的,外面的 ts 文件会实时更新,并且过期的 ts 索引会被删除。默认,状况下都是应用动静列表。<!----> event playlist: 动态列表。它和动静列表次要区别就是,原来的 ts 文件索引不会被删除,该列表是不断更新,而且文件大小会逐步增大。它会在文件中,间接增加 #EXT-X-PLAYLIST-TYPE:EVENT 作为标识。<!----> VOD playlist: 全量列表。它就是将所有的 ts 文件都列在 list 当中。如果,应用该列表,就和播放一整个视频没有啥区别了。它是应用 #EXT-X-ENDLIST 示意文件结尾。https://developer.apple.com/l...HLS 缺点HLS 缺点就是提早性太大了。HLS 中的延时包含: ...

January 11, 2023 · 3 min · jiezi

关于html5:HTML小游戏3-机器人总动员附完整源码

网站举荐:【神级源码资源网】【摸鱼小游戏】 有趣风趣的前端学习课程:28个案例趣学前端 想寻找独特学习交换、摸鱼划水的小伙伴,请点击【摸鱼学习交换群】 收费且实用的计算机相关常识题库:进来逛逛给大家安利一个收费且实用的前端刷题(面经大全)网站,点击跳转到网站。 本节教程我会带大家应用 HTML 、CSS和 JS 来制作一个 机器人总动员小游戏 本节示例将会实现如下所示的成果: 在线演示地址:https://code.haiyong.site/moyu/bwjqr源码也可在文末进行获取 ✨ 前言️ 本文已收录于️100个HTML小游戏专栏:100个HTML小游戏 目前已有100+小游戏,源码在继续更新中,前100位订阅收费,先到先得。 订阅专栏后可浏览100个HTML小游戏文章;还可私聊进支付一百个小游戏源码。✨ 我的项目根本构造大抵目录构造如下(共204个子文件): ├── css│ └── style.css├── js│ └── script.js├── images│ ├── back1.png│ ├── ball.png│ ├── circle1.png│ ├── elem1.png│ ...│ └── unit.png└── index.html HTML源码 <body> <div id="main_container"> <div id="progress_container"> <table cellspacing="0" cellpadding="0"> <tbody> <tr> <td id="progress"> <div><a id="tt_load_logo_c" href="https://code.haiyong.site/" target="_blank"><img id="tt_load_logo" border="" src="logo.png"></a></div> <div id="tt_load_progress_cont"> <div id="tt_load_progress" >&nbsp;</div> </div> <div id="tt_load_play"><img id="tt_load_button" src="tt_load_button.png" height="55px"></div> </td> </tr> </tbody> </table> </div> <div id="screen_background_container" align="center"> <div id="screen_background_wrapper"><canvas id="screen_background"></canvas><canvas id="screen_background2"></canvas></div> </div> <div id="screen_container" align="center"> <div id="screen_wrapper"><canvas id="screen">You browser does not support this application :(</canvas><canvas id="screen2"></canvas></div> </div> </div> <div id="p2l_container" align="center"><img id="p2l" src="./robot_files/p2l.png" style="padding-top: 100px;"></div> CSS 源码body ...

November 17, 2022 · 2 min · jiezi

关于html5:H5小游戏1-是男人就下一百层附完整源码

网站举荐:【神级源码资源网】【摸鱼小游戏】 有趣风趣的前端学习课程:28个案例趣学前端 想寻找独特学习交换、摸鱼划水的小伙伴,请点击【摸鱼学习交换群】 收费且实用的计算机相关常识题库:进来逛逛给大家安利一个收费且实用的前端刷题(面经大全)网站,点击跳转到网站。 在线演示地址:https://code.haiyong.site/moyu/100/演示视频:https://www.bilibili.com/vide... 源码也可在文末收费获取 ✨ 我的项目根本构造目录构造如下: 这是一个简略的 H5小游戏 HTML<div style="display:inline-block;width:100%; height:100%;margin: 0 auto; background: black; position:relative;" id="gameDiv"> <canvas id="gameCanvas" width="480" height="640" style="background-color: #000000"></canvas></div>CSS 代码body { text-align: center; background: #000000; padding: 0; border: 0; margin: 0; height: 100%;}html{ -ms-touch-action: none; /* Direct all pointer events to JavaScript code. */}JS 代码因为代码过长,影响浏览体验,这里只提供局部的JS代码,残缺代码能够在文末下载。 egret_h5 = {};egret_h5.prefix = "";egret_h5.loadScript = function (list, callback) { var loaded = 0; var loadNext = function () { egret_h5.loadSingleScript(egret_h5.prefix + list[loaded], function () { loaded++; if (loaded >= list.length) { callback(); } else { loadNext(); } }) }; loadNext();}egret_h5.loadSingleScript = function (src, callback) { var s = document.createElement('script'); if (s.hasOwnProperty("async")) { s.async = false; } s.src = src; s.addEventListener('load', function () { this.removeEventListener('load', arguments.callee, false); callback(); }, false); document.body.appendChild(s);}源码下载1.CSDN资源下载:https://download.csdn.net/download/qq_44273429/867949472.从海拥资源网下载(价格更优惠):https://code.haiyong.site/358/ ...

November 4, 2022 · 1 min · jiezi

关于html5:canvas-图片刮刮卡

一、效果图 二、上代码<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <style> #canvas{ background: url(https://image-static.segmentfault.com/464/827/464827894-6363d955ba2a5_fix732); background-size: 100%; } </style></head><body> <canvas id="canvas" width="480" height="720"> 你的浏览器不反对 canvas,请降级你的浏览器。 </canvas> <script> const canvas = document.getElementById('canvas') let ctx = canvas.getContext("2d") ctx.beginPath(); ctx.fillStyle = '#9c9fb3'; ctx.fillRect(0, 0, canvas.width, canvas.height); ctx.globalCompositeOperation = 'destination-out'; ctx.lineWidth = 60; ctx.lineCap = 'round'; canvas.onmousedown = function(e) { var event = e || window.event; var x = event.clientX; var y = event.clientY; ctx.moveTo(x, y); } canvas.onmousemove = function(e) { var event = e || window.event; var x = event.clientX; var y = event.clientY; ctx.lineTo(x, y); ctx.stroke(); } </script></body></html>三、重点globalCompositeOperation用法 ...

November 3, 2022 · 1 min · jiezi

关于html5:零基础教你学前端22单元格属性

单元格是表格的重要组成部分,如何只润饰一个单元格?单元格 td又有哪些属性?先筹备一个表格。关上编辑器,新建一个 table_td.html 文件,筹备好根底代码,在body外面编写 Emmet 语句,  table>tr3>td3,创立一个 3 行 3列的表格,在每一个 td 里增加对应的数字。 为了让表格看起来更加的好看,给 table 标签增加一些属性,宽度为300,高度为300,边框线,宽度为 1 。alt + b 在浏览器中关上页面,带有数据和边框线的表格曾经做好了! 咱们发现——目前在没有给单元格设置宽度和高度的状况下,每个单元格的宽高会平均分配整个表格的宽高。和表格行 tr 一样,咱们能够给 td 增加 width——单元格宽度,height——单元格高度,bgcolor——单元格背景色.回到编辑器,在第一行的第一个单元格上增加 width,等于,引号,把单元格的宽度设置成 150,保留。回到浏览器,刷新,咱们看到:每一行第一个单元格的宽度都变成了150。 可见,调整任何单元格的宽度,都会影响该单元格所在列的所有单元格的宽度。 返回编辑器,为 td 增加第二个属性,高度 (height) 。在第一行的第一个单元格上再增加一个属性 height,等于,引号,把单元格的高度也设置成150,保留。回到浏览器,刷新,咱们看到:单元格所在行的   所有单元格的高度    都变成了150。 可见    调整任何单元格的高度    都会影响该单元格所在行的每个单元格的高度返回编辑器,为 td 增加第三个背景色彩 (bgcolor) 属性。给这个单元格 td,再增加 bgcolor,等于,引号,背景色彩设置为red,红色,保留。 回到浏览器,刷新,第一个单元格呈现了背景色彩。  可见,同样的 bgcolor 属性,增加在 tr 下面的时候,会设置一整行单元格的背景色彩,增加在 td 下面的时候,只会设置该单元格的背景色彩。单元格 td,还能够增加 align 属性,用来设置单元格外面内容的程度对齐形式 ,它的值有三个    别离是——left 程度左侧对齐;right 程度右侧对齐;center 程度居中对齐。绝对应,也能够增加 valign 属性,用来设置单元格外面内容的垂直对齐形式,它的值也有三个,别离是——top 垂直顶部对齐;bottom 垂直底部对齐;middle 垂直居中对齐。 ...

October 31, 2022 · 1 min · jiezi

关于html5:浏览器是如何通过-defer-与-async-属性优化页面加载速度的

前言在面试的时候,常常会遇到一道经典的面试题: 如何优化网页加载速度?惯例的答复中总会有一条: 把 css 文件放在页面顶部,把 js 文件放在页面底部。那么,为什么要把 js 文件放在页面的最底部呢? 咱们先来看下这段代码: <!DOCTYPE html><html lang="zh"> <head> <title>Hi</title> <script> console.log("Howdy ~"); </script> <script src="https://unpkg.com/[email protected]/dist/vue.global.js"></script> <script src="https://unpkg.com/[email protected]/dist/vue-router.global.js"></script> </head> <body> Hello ~ </body></html>他的执行程序是: 在控制台打印:Howdy ~申请并执行 vue.global.js申请并执行 vue-router.global.js在页面中展现:Hello ~触发 DOMContentLoaded 事件 浏览器的解析规定是:如果遇到 script 标签,则暂停构建 DOM,转而开始执行 script 标签,如果是内部 script,那么浏览器还须要始终期待其「下载」并「执行」后,再持续解析前面的 HTML。 如果申请并执行「vue.global.js」须要 3 秒,「vue-router.global.js」须要 2 秒,那么页面中的 Hello ~,则至多须要 5 秒以上才会展现进去。 能够看到,script 标签会阻塞浏览器解析 HTML,如果把 script 都放在 head 中,在网络不佳的状况下,就会导致页面长期处于白屏状态。 在很久以前,个别都是将这些外联脚本,放在 body 标签的最初面,确保先解析展现 body 中的内容,而后再一个个申请执行这些外联脚本。 那有没有其余更优雅的解决方案呢? 答案是必定的,当初 script 标签新增了 2 个属性:defer 和 async,就是为了解决此类问题,晋升页面性能的。 ...

October 27, 2022 · 2 min · jiezi

关于html5:零基础教你学前端15无序列表

这节课   来学习无序列表 。看一张图,这里有三个紧急的事件要解决:第一件: 家里的水壶烧开了,留神是老式的那种,不及时处理水就会溢出来;第二件:孩子睡醒了, 哭着要让你抱,很可能须要换尿布;第三件:家里的电话响了,不晓得是谁打来的, 很可能有急事; 这个案例常被用于做心理测试,如果是你, 你会先做哪一件事件呢?很显然每个人的抉择可能是不同的,解决三件事也没有规范的程序。这种无程序的内容,就能够应用无序列表来展现了, 所谓无序列表,就是指列表项中的内容是没有工夫、 空间、或者逻辑等程序要求的。无序列表的语法如图: 和 ol 一样,须要留神, ul 标签外面只能搁置 li 标签,如果须要嵌套其它标签的话, 须要搁置在 li 标签里。关上编辑器中, 新建一个 unorder_list.html 页面 , 补全根本代码,在body里书写ul标签  , 在 ul 标签外部,回车换行。在 ul 标签里定义三个 li 标签 , 在第一个 li 里写入: 抱孩子  。 第二个 li 标签里写入:关天然气。   第三个 li 里写入: 接电话 。保留。 在浏览器中关上页面,列表显示了,能够分明的看到, 列表的我的项目符号成果与有序列表不一样。无序列表的我的项目符号, 三个我的项目同为彩色的实心圆点, 表明该列表是没有程序的。 返回编辑器,替换两个 li 的地位, 通过应用剪切粘贴的办法来实现,大家发现这个操作比拟麻烦。你能够先将光标定位到某一行, 按下 Alt 键, 再点击键盘的高低箭头, 就能够挪动以后行了  。 两行替换结束后   保留。回到浏览器,刷新, 每个列表项的我的项目符号依然是彩色实心圆点, 但内容的程序曾经替换了。 ...

October 12, 2022 · 1 min · jiezi

关于html5:零基础教你学前端14有序列表

列表在各种页面内容展现模式中, 应用频率十分高。HTML中列表分为以下三种:右边咱们称之为有序列表,两头咱们称之为无序列表,左边咱们称之为自定义列表。这节课咱们先来学习有序列表。 看几个例子, markdown 文件中的目录, 购物购票指南, 仪器的应用操作步骤, 百度热搜榜等都是通过列表显示的。 咱们发现 这些列表有一个独特特点 每一条内容的后面,都有数字序号。在HTML中 把这些有程序的列表清单称为有序列表 它们能够表白显示程序操作步骤 排行等信息。有序列表由两个元素组成 元素 ol 和元素 li , 二者是父子关系。 li 标签必须被包裹在 ol 中应用,ol 是由order list 的缩写, 示意有序列表 li 是 list item 的缩写 示意列表, 两个都是双标签。 有序列表的语法是 这里再次强调 为了遵循 W3C 的语法规范,ol 外面只能嵌套 li 如果须要嵌套其余的标签 需搁置到 li 标签外面。这里在 li 标签中搁置一些文本。来做一个案例:要把大象装冰箱,总共分几步?3步! 关上编辑器, 新建 order_list.html文件, 补全根本代码, 在body 外面应用 ctrl + 斜杠( / ) 实现一个正文, 在正文外面增加, 这是有序列表的介绍。本案例须要应用一个ol , 外面包裹三个li, 别离把三个步骤的内容, 输出到对应的 li 标签外面, 把冰箱门关上, 把大象装进去, 把冰箱门带上, 保留。在浏览器中关上页面, 分明的看到, 三个步骤后面都主动的增加了序号 1 2 3 ...

October 11, 2022 · 1 min · jiezi

关于html5:前端之video实用技巧

video对于自动播放检测是否能够自动播放 video.play().then(() => { console.log("自动播放") }).catch((error) => { console.log("不能自动播放", error) })如何自动播放设置静音<video muted></video>挪动端全屏解决<video playsinline="true"></video>

October 10, 2022 · 1 min · jiezi

关于html5:h5中使用javascript在客户端对图片进行压缩和尺寸处理附ts代码

有时候咱们有这样的需要,就是对前端选中的图片进行压缩解决。这样解决的起因可能是。 缩小带宽占用率,提高效率。对图片进行裁剪合乎上传需要。(当初手机拍照分辨率很高,间接拿来用比拟大。)前端对图片进行压缩次要应用到的API有: CanvasImageFileBlobFileReader 如图,设置三个办法 toImagetoCanvastoFile/**次要办法*/async function miniImage(params:{ url?:string, file?:File, quality?:number, fileName?:string, size?:{width:number,height:number}, fitLength?:number }={quality:1,fileName:'压缩图片'} ){ console.assert(params.url||params.file,'url和file必填其一') console.assert(params.quality<=1&&params.quality>0,'quality的取值范畴是0-1') const img = await toImage({file:params.file,url:params.url}) const canvas = toCanvas({img,size:params.size,fitLength:params.fitLength}) return await toFile(canvas,{quality:params.quality,fileName:params.fileName})} toImage办法该办法次要是应用Image以及File、FileReader来进行转换,传参如果是file,则应用后者,如果只是url,则间接应用Image。其中留神FilerReader的用法,在h5的开发中很多中央都会应用到。 /**转换成图片 */async function toImage (params: {file?: File, url?: string}): Promise<HTMLImageElement> { return new Promise((reso, rej) => { const {file, url} = params const img = new Image() img.onload = () => { return reso(img) } // 文件形式 if (file) { const reader = new FileReader() reader.onload = (e) => { img.setAttribute('src', e.target?.result as string) } reader.readAsDataURL(file) } else if (url) { img.setAttribute('src', url) } else { console.error(`解析图片出错`) } })} ...

October 9, 2022 · 2 min · jiezi

关于html5:xcode打包导出ipa

家喻户晓,在开发苹果利用时须要应用签名(证书)能力进行打包装置苹果 IPA,作为刚接触ios开发的同学,只是学习ios app开发内测,并没有上架 appstore需要,对于苹果开发者账号认证须要领取688,真的是极大的节约,使 用appuploader,只须要注册苹果一般的账号,不须要688认证,就能够打包自 己开发的ios利用,本人真机测试,上面是具体教程: 第一步:注册苹果开发者账号拜访以下网址,依照提醒注册即可,因为不须要支 付688认证苹果开发者,所以没什么好讲的。 注册地址:Apple Developer https://developer.apple.com/cn/ 第二步:下载APP Uploader下载地址: Appuploader官网--IOS ipa上传公布 工具,证书制作工具跨平台版,windows,linux,mac零碎都可用 (applicationloader.net) http://www.applicationloader....我这里 是VMware虚拟机装置的mac零碎,所以下载了mac安装包,间接解压,双击 appuploader即可启动,看下图:增加形容主界面如下:增加形容简略介绍一下,这块工具的应用办法: 1、登录,因为没有领取688认 证,所以登录的时候,留神勾选未领取688:增加形容 2、性能介绍,我这里次要应用了工具的三个性能局部:增加形容证书局部:次要是通过工具生成.p12证书文件,前面这个证书要导入 mac零碎。 形容文件:这个文件次要蕴含了证书,公钥,设施信息等,和app绑定。 测试设施:次要是录入要内测的ios手机,次要是udid,udid能够了解为设施的 一个惟一标识码,iphone手机udid的获取,能够装置驱动后通过appuploader 工具主动获取其余功能模块我这也没有用到,具体能够通过工具软件的帮忙文档 具体理解,帮忙文档也列出了常见的问题以及解决办法: Appuploader常见问 题 (applicationloader.net), 下载链接:http://help.applicationloader...第 三步:应用xcode打包导出ipa文件,供其他人内测1、mac零碎导入 appuploader生成的p12证书,导入办法入下图:双击下载到的p12 文件,零碎 提醒输出明码之类的,依照提醒输出明码即可。增加形容2、要害局部,xcode应用这个p12证书,进行打包ipa:xcode增加好了 苹果开发者账号,集体p12证书有了,接下来就是xcode打包ios利用:增加形容记得勾销勾选automatically manage signing增加形容增加形容增加形容xcode编译没有问题,就会弹出一下界面增加形容增加形容正在加载增加形容在Products目录下,把xxx.app文件拷贝进去,新建 Playload文件夹,压缩Playload文件夹,失去Playload.zip文件,批改 Playload.zip文件为Playload.ipa文件,至此ios利用安装文件就弄好了.

September 27, 2022 · 1 min · jiezi

关于html5:周易算命源码算命源码php风水算命源码h5

 一个交互式的图形资源——以及对易经的解读——在其中你能够解码占卜的二进制,并仔细阅读学术解释。 源码及演示:m.appwin.top 安裝套件 pip install kintaiyi pip install --upgrade sxtwl, numpy, ephem, cn2an 起课形式 from kintaiyi import kintaiyi # 0 為年計;1 為月計;2 為日計:3 為時計 #公元前 Taiyi(-202,9,16,23,14).pan(1) {'太乙計': '月計', '公元日期': '-202年9月16日23時', '干支': ['戊戌', '辛酉', '庚戌', '丙子'], '農曆': {'年': -202, '月': 8, '日': 15}, '年號': '西漢高帝劉邦 高帝四年', '紀元': '第三紀第一甲子元', '時局': {'文': '陽遁十局', '數': 10}, '太乙': 4, '文昌': '丑', '太歲': '子', '合神': '丑', '計神': '寅', '始擊': '子', '定目': '子', '主算': [4, ['無天', '無地', '雜陽']], '客算': [11, ['無地', '陰中重陽']], '定算': [11, ['無地', '陰中重陽']], '九宮': {8: '大游', 3: '客參定參', 4: '主將太乙', 9: '', 5: '五風', 2: '主參八風', 7: '三風', 6: '', 1: '客將定將飛鳥小游'}, '十六宮': {'子': ['太歲', '始擊', '定目'], '丑': ['文昌', '合神', '四神'], '艮': [], '寅': [], '卯': [], '辰': ['君基'], '巽': ['五福'], '巳': ['民基'], '午': ['飛符', '太尊'], '未': ['臣基', '地乙'], '申': [], '坤': [], '酉': [], '戌': ['直符'], '乾': ['帝符'], '亥': ['天乙']}} #公元 Taiyi(658,5,31,0,14).pan(0) {'太乙計': '時計', '公元日期': '658年5月31日0時', '干支': ['戊午', '丁巳', '丙子', '戊子'], '農曆': {'年': 658, '月': 4, '日': 24}, '年號': '唐高宗李治 永徽九年', '紀元': '丙子元第二紀', '時局': '陽遁37局', '太乙': 6, '文昌': '坤', '太歲': '子', '合神': '丑', '計神': '寅', '始擊': '未', '定目': '未', '主算': [7, ['無天', '雜陰']], '客算': [8, ['無天', '雜陽']], '定算': [8, ['無天', '雜陽']], '九宮': {8: '客將定將大游', 3: '五風', 4: '客參定參', 9: '', 5: '', 2: '八風', 7: '主將三風', 6: '太乙', 1: '主參飛鳥小游'}, '十六宮': {'子': ['太歲', '太尊'], '丑': ['合神'], '艮': [], '寅': [], '卯': [], '辰': ['君基', '臣基', '帝符'], '巽': [], '巳': [], '午': [], '未': ['始擊', '定目'], '申': ['民基'], '坤': ['文昌'], '酉': [], '戌': [], '乾': ['五福'], '亥': []}} kintaiyi.py ...

September 25, 2022 · 15 min · jiezi

关于html5:随笔移动端input-type|语义与IOS按键

基于iOS对web页面的规定,input的type为不同值时软键盘的弹出规定尤其是右下角按键名就十分值得注意。 以<input type="search /">为例,在安卓段展现失常,右下角是一个蓝白“搜寻图标”。但iOS依然遵循默认“换行”成果。以至于不少人会这么做: <input type="search" v-model="searchName" xxx @keypress="onHandleSearch($event)" />onHandleSearch(e) { if(e.keyCode == 13) { e.preventDefault(); //解决业务搜寻逻辑 }}点击按钮的时候监听,如果按下的是enter(就是右下角蓝色的按键),则是咱们须要的。然而接下来须要先禁止默认事件 —— 换行操作。 这样在逻辑上仿佛没有什么问题,但没有思考用户体验,到了视觉那里大概率还是被一言打回的。 有两种办法能够解决这个问题: form与input第一种办法当然是“外援”。将input外层包裹form标签并保障有一个 action 属性。就能让按键依照咱们想要的成果展现。就像这样: <form action="javascript: void(0);" @submit="onHandleSearch"> <input type="search" v-model="searchName" xxx /></form> type 为其它值时也能失常展现了,而且这时并不需要在办法中额定禁止默认操作!这一点笔者并没有找到相干阐明。然而有一个猜想:form是原生 HTML 向后端进行数据交互筹备的计划,如果有携带action的form标签包裹input标签,个别会认为要向接口提供数据。这一步随同有跳转操作,是与iOS原生的换行操作是对抗的,所以 iOS 对这里进行了校验,勾销原有逻辑而进步开发者提供的type值权重进行展现图标并执行后续逻辑。与之佐证的是这个场景: <form action="." > <input type='search' /></form>在输入框中按下回车时,页面会主动刷新。要防止此状况,能够在增加一个暗藏的input —— 如果你非要这么用的话: <form action="." > <input id="iptSearch" type='search' /> <input type="text" style="display:none;"/></form>通过试验,咱们能够总结如下: 如果只应用input type="search",而不放到form标签中,则仍显示“回车符号”;如果放到form中,然而应用type="text",则显示“返回”;如果放到form中,应用input type="search",但没有action属性,Android不会有问题,但在 IOS8 以上的零碎中,键盘上仍不会显示“搜寻”,而是显示“换行符号”inputmode与软键盘类型下面的计划没有很好的关照到另一个场景:日益标准的“语义化”。比方在电商中通常有“仅可输出数字”的 UI。但 <input type="number"> number 类型的输入框是能够呼起数字键盘的,但语义却是不合乎的,会影响辅助设施的辨认。 tel 类型也是一样的情理。但inputmode属性能够,而且兼顾到了 iOS 中按键的体现,体现堪称十分亮眼。 inputmode 通常有如下属性值: none:不应用虚构键盘,这个时候页面须要应用自定义的键盘代替text:默认值,会显示规范输出键盘decimal:小数示意键盘,除了数字之外可能会有小数点 . 或者千分符逗号 ,numeric:显示 0-9 的数字键盘tel:手机数字键盘,而且有星号 * 或者井号 # 键search:提交按钮会显示 'search' 或者 ‘搜寻’email:键盘上会有 @ 符号键url:键盘上会有斜杠 / 符号键咱们拿最常见也是实测后最实用的属性值来看下: ...

September 19, 2022 · 1 min · jiezi

关于html5:羊了个羊无限通关哦周日亲测可用

昨天给大家分享的羊了个羊改代码的形式通关曾经不可用了,明天换种办法通关,并且能够有限通关哦~ 话不多说,连忙往下看 筹备工作Windows桌面版微信3.6.0版本抓包工具FiddlerHTTP申请工具Postman,或者Java、Python代码下面所用工具都曾经打包好了,关注公众号卷福同学,发送羊了个羊获取 装置工具装置微信 装置微信3.6.0桌面版,留神只能用这个版本,新版本的微信曾经不能抓包了 装置fiddler fiddler官网下载地址:https://www.telerik.com/fiddler 留神下载Fiddler Classic版本才是收费应用的 装置Postman 官网下载地址:https://www.postman.com/ 下载安装Windows版本即可 通关攻略1.抓包关上Fiddler关上微信桌面版,玩一把 羊了个羊 小游戏在Fiddler搜寻cat-match找到刚调的接口 如图提醒地位,找到 t的值,拷贝下来 2.申请通关前面这步就有多种形式了,只有发个HTTP申请过来就行,小白能够用Postman的形式,高级点的用代码的形式 Java代码也已放到公众号里了,发送羊了个羊获取 Postman申请申请URL写: http://cat-match.easygame2021.com/sheep/v1/game/game_over?rank_score=1&rank_state=1&rank_time=15&rank_role=1&skin=1Headers里加上Cookie参数,值写t=下面刚拷贝的t的值,如图所示 最初上面返回值err_code为0阐明申请胜利了 下面所用工具都曾经打包好了,公众号卷福同学内发送羊了个羊获取 卷福明天曾经试过2次了,小伙伴们趁着还能用的时候赶快试试吧

September 18, 2022 · 1 min · jiezi

关于html5:零基础教你学前端0什么是网页

当初开始,咱们要正式进入大前端的技能学习了。先来意识什么是网页。不论你是不是小白,是否理解前端, 在日常生活中,这些货色你肯定常常接触,比方网站,手机APP,微信小程序,智能电视,数据可视化大屏,地图利用,网页游戏。这些咱们看到的界面,其实全部都是网页,咱们也会发现一个特点:咱们所看到的所有网页,他们都有一个独特的载体, 这个载体就是咱们的浏览器,没有浏览器,咱们的网页就不能执行,这就如同咱们平时应用的APP一样,他们要依赖于咱们的手机操作系统,如果没有手机操作系统,这些APP软件就不能执行,他们的存在就没有任何价值了,那浏览器如何获取这些网页呢?以电脑浏览器为例,当你在浏览器中输出千锋教育网址,浏览器应用这个网址,通过互联网去向千锋服务器发动申请,服务器失去申请之后, 再通过互联网会向浏览器中返回一个文件,这个文件在浏览器中运行,它就生成了一个网页。 网页的的组成次要就是三个局部内容,别离是 :HTML、CSS 和 JavaScript。什么是HTML呢?它决定了网页里显示什么内容, 比方在网页中显示一个按钮;什么又是CSS呢? 它能够润饰每一个内容的外观,包含大小、色彩、 地位等内容, 比方CSS能够把按钮变成带有圆角并且红色背景的款式。那什么是JavaScript呢? 它次要是负责网页中一些动静的成果, 例如:当你点击这个按钮的时候,就会播放一段视频。接下来用一个案例来验证一下HTML,CSS,JavaScript的作用,当初咱们看到的是这个网页的成果: 有内容 、有款式、并且能够交互接下来,咱们把 HTML 的内容删除掉,会看到浏览器中什么内容都没有了 而后,咱们保留 HTML,同时把 CSS 去掉,咱们发现,网站变得俊俏了。 只有HTML的文本 文字链接和图片了, 显的横七竖八。 最初,咱们把 JavaScript 去掉,只保留 HTML和CSS,看起来页面如同没有什么变动, 还是老样子,然而咱们在应用搜索引擎的时候, 原有的交互成果都曾经不见了。 当初,你了解HTML\CSS\JAVASCIPT 的作用了吗?形成网页的这三个部门相辅相成 缺一不可。接下来 咱们从 HTML 开始学习如何制作网页了, 网页技术的倒退始终离不开 HTML从1993年HTML的诞生 到2014年HTML5的问世 短短的十几年工夫 技术由原来的只关注电脑端页面技术倒退 缓缓波及挪动设施畛域 对于她和CSS的联合再也不容忽视 时至今日 HTML5曾经给咱们带来了前所未有的产品体验HTML 的摸索旅程行将开始 筹备和我一起扬帆 启航!

September 15, 2022 · 1 min · jiezi

关于html5:HTML5-地理定位地图-API计算用户到商家的距离

最近在做一个相似支付宝口碑商家的功能模块,其中有个性能就是计算出用户与商家的间隔,如下图:支付宝口碑商家页面截图 思路剖析1、商家选取店铺地址,将坐标经纬度存入数据库;2、挪动端定位以后用户坐标经纬度;3、将商家经纬度从数据库取出与以后用户经纬度进行计算;4、计算出的间隔显示在用户端; 用到的工具1、HTML5天文定位API;2、百度地图API; 百度地图API应用1、在百度地图开放平台注册开发者账号;2、登录开发者账号,在控制台中创立利用,如下图:留神:挪动web端的话,利用类型记得抉择浏览器端 代码实现1、创立seller.html文件,用来提供商家选取地址坐标经纬度;留神:代码中的ak="您的密钥",记得换成控制台中创立利用的AK密钥 <!DOCTYPE html><html><head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="viewport" content="initial-scale=1.0, user-scalable=no" /> <style type="text/css"> body, html{ width: 100%; height: 100%; margin:0; font-family:"微软雅黑"; font-size:14px; } #l-map{ height:300px; width:100%; } #r-result{ width:100%; } </style> <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=您的密钥"></script> <title>商家选取店铺地址</title></head><body> <div style="display: flex;"> <div style="width: 50%;height: 700px" id="l-map"></div> <div style="width: 50%"> <div id="r-result">请输出:<input type="text" id="suggestId" size="20" value="百度" style="width:150px;" /></div> <div id="searchResultPanel" style="border:1px solid #C0C0C0;width:150px;height:auto; display:none;"></div> </div> </div></body></html><script type="text/javascript"> // 百度地图API性能 function G(id) { return document.getElementById(id); } var map = new BMap.Map("l-map"); map.centerAndZoom("北京",12); // 初始化地图,设置城市和地图级别。 var ac = new BMap.Autocomplete( //建设一个主动实现的对象 {"input" : "suggestId" ,"location" : map }); var myValue; ac.addEventListener("onconfirm", function(e) { //鼠标点击下拉列表后的事件 var _value = e.item.value; myValue = _value.province + _value.city + _value.district + _value.street + _value.business; G("searchResultPanel").innerHTML ="onconfirm<br />index = " + e.item.index + "<br />myValue = " + myValue; setPlace(); }); function setPlace(){ map.clearOverlays(); //革除地图上所有覆盖物 function myFun(){ var pp = local.getResults().getPoi(0).point; //获取第一个智能搜寻的后果 map.centerAndZoom(pp, 18); map.addOverlay(new BMap.Marker(pp)); //增加标注 } var local = new BMap.LocalSearch(map, { //智能搜寻 onSearchComplete: myFun }); local.search(myValue); } //鼠标单击获取点击的经纬度 map.addEventListener("click",function(e){ alert('该点击区域的经纬度为:'+e.point.lng + "," + e.point.lat);//将该经纬度存入数据库中 });</script>seller.html运行效果图如下: ...

September 1, 2022 · 2 min · jiezi

关于html5:SAP-ABAP-OData-服务的分页加载数据集的实现Paging试读版

正如本教程的开篇介绍文章SAP OData 开发教程 - 从入门到进步(蕴含 SEGW, RAP 和 CDP)所提到的,SAP OData 服务开发,从实现技术上来说,能够分为三大类。因而本教程也分为三大部分,别离进行介绍。本文是本教程的文章目录。 作者简介Jerry Wang,2007 年从电子科技大学计算机专业硕士毕业后退出 SAP 成都研究院工作至今。Jerry 是 SAP 社区导师,SAP 中国技术大使。在长达 15 年的 SAP 规范产品开发生涯里,Jerry 已经先后参加 SAP Business ByDesign, SAP CRM, SAP Cloud for Customer, SAP S/4HANA, SAP Commerce Cloud(电商云)等规范产品的研发工作。 Jerry 对 SAP OData 服务的开发,测试,公布,部署,测试,及基于各种不同 SAP 技术实现的 OData 服务的幕后技术实现细节和应用场合,均有着深刻的钻研。 基于 SEGW - Gateway Service Builder 的开发教程1. 在 SAP ABAP 事物码 SEGW 里创立 SAP OData 我的项目2. 在 SAP ABAP 系统对事物码 SEGW 创立的 OData 服务进行配置并测试3. SAP ABAP OData 服务诊断工具 /IWFND/ERROR_LOG 的应用办法4. SAP ABAP OData 服务 Data Provider Class 的 GET_ENTITYSET 办法实现指南5. SAP ABAP OData 服务如何反对 $filter (过滤)操作6. 应用 Postman 工具高效治理和测试 SAP ABAP OData 服务7. SAP ABAP OData 服务如何反对 $orderby (排序)操作8. SAP ABAP OData 服务如何反对创立(Create)操作9. SAP ABAP OData 服务如何反对删除(Delete)操作10. SAP ABAP OData 服务如何反对批改(Update)操作11. 应用 HTTP PUT, PATCH 以及 MERGE 申请生产 SAP ABAP OData 服务批改操作的实现及其区别12. SAP ABAP OData 服务如何反对 $select 有选择性地仅读取局部模型字段值13. SAP ABAP OData 服务的分页加载数据集的实现(Paging)更多文章正在写作中,敬请期待应用 Restful ABAP Programming 编程模型(简称 RAP) 开发 OData 服务正在写作中,敬请期待应用 SAP Cloud Application Programming 编程模型开发 OData 服务正在写作中,敬请期待SAP UI5 利用的分页加载数据集,是一个极为重要的个性,须要 SAP UI5 前端和 OData 服务后端同时进行相应的开发工作,能力实现这个场景。 ...

August 12, 2022 · 2 min · jiezi

关于html5:我跑了一个人生重开模拟器支持自定义事件来一块块玩玩吧~

游戏地址 你能够批改data下的json文件来批改游戏里的事件行为树、人物名字、常见、属性等也能够尝试自行批改脚本让他依照你的剧本演绎 试试能不能修成仙

August 10, 2022 · 1 min · jiezi

关于html5:Taro小程序跨端开发入门实战

背景一开始咱们只做微信小程序,随着咱们的业务一直扩张和各大小程序平台的崛起,针对每个平台都去写一套代码是不事实的。而且原生的小程序开发模式有很多弊病。为了让小程序开发更简略,更高效,咱们采纳 Taro 作为首选框架,咱们将应用 Taro 的实践经验整顿了进去,次要内容围绕着什么是 Taro,为什么用 Taro,以及 Taro 如何应用(正确应用的姿态),还有 Taro 背地的一些设计思维来进行开展,让大家可能对 Taro 有个残缺的意识。Taro 3.0 曾经逐步成熟,咱们我的项目曾经进行了 Taro 3.0 的降级,因而本文代码示例以 Taro 3.0 作为根底。 什么是 TaroTaro 是一个多端对立的开发框架。应用 taro 它能够反对 React 的开发方式,编写一次能够运行多端的代码,就可能生成能够在各种小程序,H5 甚至 React Native 等多端利用。Taro 官网介绍:Taro 是一个开放式跨端跨框架解决方案,反对应用 React/Vue/Nerv 等框架来开发 微信 / 京东 / 百度 / 支付宝 / 字节跳动 / QQ 小程序 / H5/ React Native 等利用。现如今市面上端的状态多种多样,Web、React Native、微信小程序等各种端大行其道,当业务要求同时在不同的端都要求有所体现的时候,针对不同的端去编写多套代码的老本显然十分高,这时候只编写一套代码就可能适配到多端的能力就显得极为须要。 它的次要特点是:快:能够疾速开发小程序: 解决小程序开发各种痛点;多:能够实现多终端适配:一套代码适配小程序、H5、RN 等多终端; 为什么用 Taro随着利用变得宏大之后,复杂度越来越高,原生小程序开发的痛点逐步裸露进去:•代码组织简单:写一个页面的文件构造繁琐(四个之多)•标准不对立:组件、办法命名标准不对立、各种书写形式,语法结构不统一像 React 又像 Vue•孱弱的字符串模板:逻辑表现力不强,不反对 eslint•依赖管理混乱:短少 npm 包依赖治理•不齐全的 ES Next:仅反对局部 ES Next 语法,比拟新的 ES2020, ES2021+ 都不反对•落后的开发方式:前端工程体系不欠缺,webpack 打包,css 预处理等缺失,对于前端来说比较落后的,对个人成长也不利 ...

August 8, 2022 · 2 min · jiezi

关于html5:HTML5CSS3特性总结

HTML5的新个性HTML5 的新增个性次要是针对于以前的有余,减少了一些新的标签、新的表单和新的表单属性等。 这些新个性都有兼容性问题,根本是 IE9+ 以上版本的浏览器才反对,如果不思考兼容性问题(例如:挪动端),便能够大量应用这些新个性。 语义化标签以前布局,咱们根本用 div 来做。div 对于搜索引擎来说,是没有语义的。 <div class=“header”> </div><div class=“nav”> </div><div class=“content”> </div><div class=“footer”> </div><header>:头部标签<nav>:导航标签<article>:内容标签<section>:定义文档的某个区域<aside>:侧边栏标签<footer>:尾部标签留神: 这种语义化规范次要是针对搜索引擎的这些新标签页面中能够应用屡次在 IE9 中,须要把这些元素转换为块级元素其实,咱们挪动端更喜爱应用这些标签HTML5 还减少了很多其余标签,咱们前面再缓缓学<!doctype html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>HTML5新增语义化标签</title> <style> header, nav { height: 120px; background-color: pink; border-radius: 15px; width: 800px; margin: 15px auto; } section { width: 500px; height: 300px; background-color: skyblue; } </style></head><body><header>头部标签</header><nav>导航栏标签</nav><section>某个区域</section></body></html>多媒体标签新增的多媒体标签次要蕴含两个: 音频:<audio>视频:<video>应用它们能够很不便的在页面中嵌入音频和视频,而不再去应用 flash 和其余浏览器插件。 视频HTML5 在不应用插件的状况下,也能够原生的反对视频格式文件的播放。当然,反对的格局是无限的。 以后 <video> 元素反对三种视频格式:尽量应用 mp4 格局。 HTML <video> 标签 ...

August 7, 2022 · 17 min · jiezi

关于html5:wallysnew-productMT7915MT7975WiFi6-MiniPCIe-Module-2T2R

MT7915+MT7975/WiFi6 MiniPCIe Module 2T2R2×2.4GHz 2x5GHz MT7915 MT7975 MT7915/MT7975/IPQ6000/IPQ6018/IPQ6010/IPQ4019/IPQ4029/ipq4018/IPQ4028/IPQ8072/IPQ8072A/IPQ8074/IPQ8074A/IPQ9074/QCN9074/QCN9072/QCN9024/IPQ5018/AR9223/QCA9880/QCA9882 /AR9582/AR9531/AR9344 BY:Wallys Communications (Suzhou ) Co., LTDEMAIL:sales3@wallystech.com Wallys Communications (Suzhou ) Co., LTD(http://www.wallystech.com) is a professional supplier of wireless communication products and has a complete industrial chain in China. Our biggest advantage is our independent research and development ability, which can support you in the later period. DR7915 https://www.wallystech.com/Ne... MT7915+MT7975 Chipset 2.4GHz max 23dBm & 5GHz max 35dBm output power ...

July 21, 2022 · 3 min · jiezi

关于html5:13音视频

一、audio标签:用来向页面中引入一个内部的音频文件(音视频文件引入时默认状况下不容许用户本人管制播放进行) 属性: controls 是否容许用户管制播放 autoplay 音频文件是否自动播放 (若设置了autoplay则音乐在关上页面时会自动播放,但大部分浏览器都不会主动对音乐进行播放) loop 音乐是否循环播放 以上属性都无数值例:<audio src="./source/audio.mp3" controls autoplay loop></autoplay> (意思是,援用source文件下的audio.mp3,设置成容许管制播放,自动播放,循环播放) <audio controls>对不起,您的浏览器不反对播放音频 <source src="./source/audio.mp3"> <source src="./source/audio.mp3"></audio>或 <audio controls> <source src="./source/audio.mp3"> <source src="./source/audio.mp3"> <embed src="./source/audio.mp3" type="audio/mp3" width="300" height="200"></audio>二、video标签:向网页中引入一个视频,应用与audio根本一样 <video controls> <source src="./source/flower.webm"> <source src="./source/flower.mp4"> <embed src="source/flower.mp4" type="video/mp4"></video>

July 18, 2022 · 1 min · jiezi

关于html5:前端测试题HTML5CSS3参考答案

前端测试题(HTML5/CSS3)参考答案 每题5分,共20题, 总分100 选做题, 做错不扣分, 做到+10分 快入手看看本人能考多少吧 HTML5局部1.1 HTML5罕用的构造标签有哪些,它代替了之前哪些标签 <header>,<nav>,<main>,<article>, <aside>,<footer>,<section> <div class="header">,<div class="nav">,<div class="main">,... 1.2 HTML文档采纳UTF-8编码集的劣势是什么 utf-8:应用3个字节示意一个符号, 基本上能够笼罩世界上所有语言 与传统的gb2312,gbk相比,可辨认的字符集更多, 也是行业界举荐 1.3 标签中最罕用的四大属性是什么 id, class, title, style 这四个属性,简直每个html标签都会有, 须要特地关注 1.4 标签中的title与alt属性的区别是什么 title: 是标签的形容, 当鼠标移入时,稍等会呈现这个形容信息 alt: 用在可置换元素上, 当内部资源无奈正确加载时, 这个信息会显示在该占位符上 1.5 标签中的href 与 src属性有什么区别 二者都是对外部资源的援用 href: 用于超文本或款式,用在<link>和标签上 src: 用在内部资源占位标签上,如<img>,<iframe>,<script>,<video>... 1.6 什么是置换元素和非置换元素,每种类型至多举出二个案例 置换元素的内容来自内部, 该元素仅是内部资源的占位符,如<img>,<video>,<audio>... 非置换元素内容来自以后文档,必须应用双标签,如<p>, <h1> - <h6>, <ul>... 1.7 iframe标签次要性能是什么, 有什么优缺点 长处: 以后页面,间接加载其它页面, 而不用产生跳转 毛病: 框架中的内容不会被搜索引擎读取, 且会减少过多的HTTP申请,影响页面载入速度 1.8 <form>标签中的name属性与表单控件,如<input>中的name有何不同 <form>中的name属性, 与它的id是一样的,用来惟一标识该标签 表单控件中的name属性, 是提供给服务器端应用程序读到表单数据的变量名 ...

July 11, 2022 · 2 min · jiezi

关于html5:H5实现支付密码输入框vue3

微信、支付宝领取明码时的明码输入框大家都很相熟,它由6个小格子组成,输出一个明码后会主动跳转到另一个格子,明码输出实现后就能够提交数据,在web并没有原生的这种输入框,要想应用这种输入框须要本人去实现。 最近的一个我的项目中须要应用这种输入框,因为我的项目比拟小,因而就没有用其余的UI库,于是就本人造了一个明码输入框的轮子,成果如下图: 安卓设施: iOS设施: 在ios上有一个小小的问题:输入框取得焦点后无奈主动弹窗软键盘,有大神晓得解决办法的话请评论区留言告知!! 1、DOM构造dom构造这块比较简单,次要由: 暗藏的input 次要作用是:调起零碎软键盘以及输出内容6个小格子虚构光标3局部组成。 <template> <div class="bs-password-input" ref="passwordInputRef"> <input ref="realInput" type="number" inputmode="numeric" class="hidden-input" @input="onInput" @blur="blur"> <ul class="bs-password-input-security" :class="{ 'has-gap': hasGap }" @click="focus"> <li class="bs-password-input-item" :class="{ 'is-focus': focusInputIndex === index }" v-for="(pwd, index) in passwords" :key="index"> <i v-if="mask && (pwd !== ' ')" class="password-input-dot"></i> <template v-if="!mask">{{ pwd }}</template> <div v-if="showInputCursor" class="bs-password-input-cursor"></div> </li> </ul> <div class="bs-password-input-info" v-if="info">{{ info }}</div> </div></template>2、显示明码格子界面上的明码格子数量次要通过父组件传递的明码及明码长度来计算 let passwords = computed(function () { let value = props.modelValue; if (typeof value !== 'string' && typeof value !== 'number') { value = ''; } else { value = value + ''; } // console.log('value', value); let resultArr = value.split(''); let len = props.length; // 明码长度限度,默认为6位 let diff = value.length - props.length; if (diff > 0) { resultArr = value.substr(0, len).split(''); } else if (diff < 0) { diff = Math.abs(diff); // 如果传递的modelValue长度小于明码长度,则填补补空格,以达到界面上明码格子数量等于明码长度 while (diff > 0) { resultArr.push(' '); diff--; } } return resultArr; });3、计算取得焦点的格子的索引当在输出时、删除时、用户点击格子时都须要晓得以后哪个格子应该取得焦点,格子取得焦点后虚构光标才会显示进去。如果calcFocusInputIndex()执行后的值为-1则阐明明码输出实现,此时没人任何格子须要取得焦点 ...

July 11, 2022 · 6 min · jiezi

关于html5:H5监听webview回退事件并阻止页面返回vue3

在混合式开发中,如果原生app不提供监听app回退事件的办法那么H5是不晓得app曾经回退了,但有时候咱们又须要去监听页面的回退,并做相应解决。 比方,在商品领取页面,输出领取明码是一个相似微信领取的弹窗,用户关上这个弹窗后筹备输出领取明码,但此时用户又不想领取了,此时用户就会触发app的返来敞开这个弹窗,如下视频: 如果H5不做监听并阻止的话那么用户的这个动作就变成了返回上一个页面了 1、实现原理实现原理:监听history.state的变更,每次关上弹窗时向history.state增加一个新状态实现步骤: 页面初始化后监听popstate事件,在该事件中进行业务解决 let originState = history.state.current; // 存储原始的状态let onPopstate = function (e) { console.log('监听到页面产生动作', e.state, originState); if (e.state && (e.state.current === originState || e.state.target === originState)) { // 在这里能够进行业务解决,如敞开弹窗,提醒用户未解决的事件等 }};// 监听 popstate 事件window.addEventListener("popstate", onPopstate, false);留神:这里须要存储页面一进来时history.state的状态,当页面产生回退时能力晓得在以后页面产生了回退 关上弹窗时向hostory.state增加一个新状态 let changeHistoryState = function () { // 这里只须要再增加一个原始的状态即可,当发送回退时后面增加的`popstate`事件处理函数就能正确处理了 window.history.pushState({target: originState, random: Math.random()}, "", location.href);};H5被动敞开弹窗h5被动敞开弹窗时需调用window.history.back()回退到上一个状态,否则用户想返回上一个页面时须要触发两次app的回退能力回到上一个页面2、代码实现useListenerAppBack.js import { onUnmounted} from 'vue';/** * 监听原生app返回事件并阻止返回到上一个页面 */export function useListenerAppBack (onAppBack) { let appBack = function () { window.history.back(); }; let appForward = function () { window.history.forward(); }; let appGo = function (delta) { window.history.go(delta); }; if (!window.history.pushState) { return { appBack, appForward, appGo, changeHistoryState () { console.warn('Browser does not support pushState!'); } }; } let originState = history.state.current; // 存储原始的状态 // let statePushed = false; let changeHistoryState = function () { // 这里只须要再增加一个原始的状态即可 window.history.pushState({target: originState, random: Math.random()}, "", location.href); }; let onPopstate = function (e) { console.log('监听到页面产生动作', e.state, originState); if (e.state && (e.state.current === originState || e.state.target === originState)) { onAppBack(e.state); } }; // 监听 popstate 事件 window.addEventListener("popstate", onPopstate, false); onUnmounted(function () { console.log('移除popstate事件监听'); // 移除监听 popstate 事件 window.removeEventListener("popstate", onPopstate, false); }); return { appBack, appForward, appGo, changeHistoryState };};业务代码中应用,pay.vue: ...

July 8, 2022 · 2 min · jiezi

关于html5:Sovit3D可视化开发平台-零代码实现组件动画特效

“动画”特效在3D可视化开发中算的上是必不可少的元素之一,它能够直观活泼的还原实在场景。 近日,3D可视化开发工具——Sovit3D就又更新了“在线动画定义性能”,零代码实现三维场景中的模型组件动画。 比方 咱们在开发智慧风电场我的项目时,能够用数字孪生技术对风机进行数字映射建模,而后通过传感器获取风机的各项数据,绑定数据驱动风机旋转动画,1:1还原风机实在发电场景。 ▲ 旋转、变色、显影等动画成果 目前反对的动画特效类型旋转动画:设置三维组件实现旋转,设置360度旋转或只转动一个小角度。 变色显示:设置绑定某个数据触发变色,能够依据不同的条件变成不同的色彩。 心跳动画:设置三维组件实现循环跳动的成果。 显隐闪动:绑定数据达到指定条件后实现“显示暗藏”一直闪动成果。 变色闪动:绑定数据达到指定条件后实现“色彩变动”一直闪动成果。 所有动画都可绑定动态数据,通过数据变动触发动画成果 上面以风机为例进行动画设置 选中要设置动画的组件,上图选中的是“叶片与轮毂整体”组。(在风机建模的时候曾经分好了组,三个叶片+轮毂同属一个组。同时这个组又和“机舱整体”组一起组合为“叶片与机舱整体”组)。 #进入【动画】设置页签。 ·【动画类型】中抉择“旋转”动画。 ·【旋转轴】抉择“Z轴”(场景中蓝色轴为Z轴)。 ·【执行类型】抉择“有限循环”(当抉择有限循环时旋转角度只能是360度)、“执行工夫”(数字“6”代表转一圈须要的工夫为6秒)。 注:设置动画时能够抉择数据集绑定动态数据,并且设置数据触发条件,不同的数据条件旋转的速度也不一样。 #接下来用同样的办法对“叶片与机舱整体”组设置转动某个角度的动画,实现机舱“偏航”的成果。 同时绑定一个动态数据实现两个角度变动的成果,设置完保留即可。 动画设置完后,通过预览或公布后能够查看动画成果 以下为风机动画效果图演示更多动画成果将会陆续更新公布,关注数维图微信公众号或进入官网(www.SovitJs.com),获取产品最新动静。

July 5, 2022 · 1 min · jiezi

关于html5:亲妈版HTML5在线预览PPTExcelWordPdf

前言:本文基于html5技术,以及微软接口,实现html5在线预览PPT、Excel、Word、Pdf。 在线预览PPT代码: <iframesrc='https://view.officeapps.live.com/op/embed.aspx?src=pptx线上地址'width='1000px' height='800px' frameborder='1'></iframe>留神:此办法,不止后缀为.ppt格局的文件,只反对.pptx文件,如果ppt文件不多,能够关上Wps或者Office将其手动转换,如果过于多,能够应用上面办法,基于Python批量将PPT转换为pptx:请点击 ppt批量转换pptx 在线预览Excel<iframesrc='https://view.officeapps.live.com/op/embed.aspx?src=xlsx线上地址'width='1000px' height='800px' frameborder='1'></iframe>在线预览Word<iframe src="https://view.officeapps.live.com/op/view.aspx?src=docx线上地址" width='1000px' height='800px' frameborder='1'></iframe>在线预览Pdf步骤: 1、首先援用pdfOnLine.js/** * Created by super on 2016/12/8. *//*global ActiveXObject, window, console, define, module, jQuery *///jshint unused:false, strict: false/* PDFObject v2.0.201604172 https://github.com/pipwerks/PDFObject Copyright (c) 2008-2016 Philip Hutchison MIT-style license: http://pipwerks.mit-license.org/ UMD module pattern from https://github.com/umdjs/umd/blob/master/templates/returnExports.js */(function (root, factory) { if (typeof define === 'function' && define.amd) { // AMD. Register as an anonymous module. define([], factory); } else if (typeof module === 'object' && module.exports) { // Node. Does not work with strict CommonJS, but // only CommonJS-like environments that support module.exports, // like Node. module.exports = factory(); } else { // Browser globals (root is window) root.PDFObject = factory(); }}(this, function () { "use strict"; //jshint unused:true //PDFObject is designed for client-side (browsers), not server-side (node) //Will choke on undefined navigator and window vars when run on server //Return boolean false and exit function when running server-side if(typeof window === "undefined" || typeof navigator === "undefined"){ return false; } var pdfobjectversion = "2.0.201604172", supportsPDFs, //declare functions createAXO, isIE, supportsPdfMimeType = (typeof navigator.mimeTypes['application/pdf'] !== "undefined"), supportsPdfActiveX, buildFragmentString, log, embedError, embed, getTargetElement, generatePDFJSiframe, isIOS = (function (){ return (/iphone|ipad|ipod/i.test(navigator.userAgent.toLowerCase())); })(), generateEmbedElement; /* ---------------------------------------------------- Supporting functions ---------------------------------------------------- */ createAXO = function (type){ var ax; try { ax = new ActiveXObject(type); } catch (e) { ax = null; //ensure ax remains null } return ax; }; //IE11 still uses ActiveX for Adobe Reader, but IE 11 doesn't expose //window.ActiveXObject the same way previous versions of IE did //window.ActiveXObject will evaluate to false in IE 11, but "ActiveXObject" in window evaluates to true //so check the first one for older IE, and the second for IE11 //FWIW, MS Edge (replacing IE11) does not support ActiveX at all, both will evaluate false //Constructed as a method (not a prop) to avoid unneccesarry overhead -- will only be evaluated if needed isIE = function (){ return !!(window.ActiveXObject || "ActiveXObject" in window); }; //If either ActiveX support for "AcroPDF.PDF" or "PDF.PdfCtrl" are found, return true //Constructed as a method (not a prop) to avoid unneccesarry overhead -- will only be evaluated if needed supportsPdfActiveX = function (){ return !!(createAXO("AcroPDF.PDF") || createAXO("PDF.PdfCtrl")); }; //Determines whether PDF support is available supportsPDFs = (supportsPdfMimeType || (isIE() && supportsPdfActiveX())); //Create a fragment identifier for using PDF Open parameters when embedding PDF buildFragmentString = function(pdfParams){ var string = "", prop; if(pdfParams){ for (prop in pdfParams) { if (pdfParams.hasOwnProperty(prop)) { string += encodeURIComponent(prop) + "=" + encodeURIComponent(pdfParams[prop]) + "&"; } } //The string will be empty if no PDF Params found if(string){ string = "#" + string; //Remove last ampersand string = string.slice(0, string.length - 1); } } return string; }; log = function (msg){ if(typeof console !== "undefined" && console.log){ console.log("[PDFObject] " + msg); } }; embedError = function (msg){ log(msg); return false; }; getTargetElement = function (targetSelector){ //Default to body for full-browser PDF var targetNode = document.body; //If a targetSelector is specified, check to see whether //it's passing a selector, jQuery object, or an HTML element if(typeof targetSelector === "string"){ //Is CSS selector targetNode = document.querySelector(targetSelector); } else if (typeof jQuery !== "undefined" && targetSelector instanceof jQuery && targetSelector.length) { //Is jQuery element. Extract HTML node targetNode = targetSelector.get(0); } else if (typeof targetSelector.nodeType !== "undefined" && targetSelector.nodeType === 1){ //Is HTML element targetNode = targetSelector; } return targetNode; }; generatePDFJSiframe = function (targetNode, url, pdfOpenFragment, PDFJS_URL, id){ var fullURL = PDFJS_URL + "?file=" + encodeURIComponent(url) + pdfOpenFragment; var scrollfix = (isIOS) ? "-webkit-overflow-scrolling: touch; overflow-y: scroll; " : "overflow: hidden; "; var iframe = "<div style='" + scrollfix + "position: absolute; top: 0; right: 0; bottom: 0; left: 0;'><iframe " + id + " src='" + fullURL + "' style='border: none; width: 100%; height: 100%;' frameborder='0'></iframe></div>"; targetNode.className += " pdfobject-container"; targetNode.style.position = "relative"; targetNode.style.overflow = "auto"; targetNode.innerHTML = iframe; return targetNode.getElementsByTagName("iframe")[0]; }; generateEmbedElement = function (targetNode, targetSelector, url, pdfOpenFragment, width, height, id){ var style = ""; if(targetSelector && targetSelector !== document.body){ style = "width: " + width + "; height: " + height + ";"; } else { style = "position: absolute; top: 0; right: 0; bottom: 0; left: 0; width: 100%; height: 100%;"; } targetNode.className += " pdfobject-container"; targetNode.innerHTML = "<embed " + id + " class='pdfobject' src='" + url + pdfOpenFragment + "' type='application/pdf' style='overflow: auto; " + style + "'/>"; return targetNode.getElementsByTagName("embed")[0]; }; embed = function(url, targetSelector, options){ //Ensure URL is available. If not, exit now. if(typeof url !== "string"){ return embedError("URL is not valid"); } //If targetSelector is not defined, convert to boolean targetSelector = (typeof targetSelector !== "undefined") ? targetSelector : false; //Ensure options object is not undefined -- enables easier error checking below options = (typeof options !== "undefined") ? options : {}; //Get passed options, or set reasonable defaults var id = (options.id && typeof options.id === "string") ? "id='" + options.id + "'" : "", page = (options.page) ? options.page : false, pdfOpenParams = (options.pdfOpenParams) ? options.pdfOpenParams : {}, fallbackLink = (typeof options.fallbackLink !== "undefined") ? options.fallbackLink : true, width = (options.width) ? options.width : "100%", height = (options.height) ? options.height : "100%", forcePDFJS = (typeof options.forcePDFJS === "boolean") ? options.forcePDFJS : false, PDFJS_URL = (options.PDFJS_URL) ? options.PDFJS_URL : false, targetNode = getTargetElement(targetSelector), fallbackHTML = "", pdfOpenFragment = "", fallbackHTML_default = "<p>This browser does not support inline PDFs. Please download the PDF to view it: <a href='[url]'>Download PDF</a></p>"; //If target element is specified but is not valid, exit without doing anything if(!targetNode){ return embedError("Target element cannot be determined"); } //page option overrides pdfOpenParams, if found if(page){ pdfOpenParams.page = page; } //Stringify optional Adobe params for opening document (as fragment identifier) pdfOpenFragment = buildFragmentString(pdfOpenParams); //Do the dance if(forcePDFJS && PDFJS_URL){ return generatePDFJSiframe(targetNode, url, pdfOpenFragment, PDFJS_URL, id); } else if(supportsPDFs){ return generateEmbedElement(targetNode, targetSelector, url, pdfOpenFragment, width, height, id); } else { if(PDFJS_URL){ return generatePDFJSiframe(targetNode, url, pdfOpenFragment, PDFJS_URL, id); } else if(fallbackLink){ fallbackHTML = (typeof fallbackLink === "string") ? fallbackLink : fallbackHTML_default; targetNode.innerHTML = fallbackHTML.replace(/\[url\]/g, url); } return embedError("This browser does not support embedded PDFs"); } }; return { embed: function (a,b,c){ return embed(a,b,c); }, pdfobjectversion: (function () { return pdfobjectversion; })(), supportsPDFs: (function (){ return supportsPDFs; })() };}));2、body写寄存pdf地位<body> <p id="example1"></p></body>3、script加载pdf<script> var options = { height: "550px", pdfOpenParams: {view: 'FitV', page: '0' }, name:"mans", fallbackLink: "<p>您的浏览器暂不反对此pdf,请下载最新的浏览器</p>" }; PDFObject.embed("pdf/test.pdf", "#example1",options);</script>4、测试成果 ...

June 24, 2022 · 5 min · jiezi

关于html5:盲盒源码h5脱单交友数码盲盒

 即便您从未应用过约会服务,您也可能据说过。这个应用程序变得十分风行,这要归功于一种简略但同时又奇妙地吸引用户注意力的办法:您正在查看人的随机照片,如果您喜爱某人,则向右滑动,如果不喜爱,则向左滑动。通过喜爱的匹配,用户有机会进行社交和约会。 盲盒源码h5演示 :m.ymzan.top 盲盒源码h5是一个安卓约会应用程序,具备各种有用的性能,旨在帮忙用户找到新的关系或灵魂伴侣,并与志趣相投的伴侣建设融洽的关系。通过应用这款约会应用软件解决方案,您能够节俭 100% 的构建工夫。因而,这个约会应用程序 android 源代码将有助于构建您本人的 android 约会应用程序,这正是您正在寻找的。 盲盒源码h5性能 受权和用户配置文件 要创立相似于盲盒的应用程序,您必须通过社交网络应用受权机制:微信,QQ或者微博等。这是必要的,以便用户能够验证照片和年龄的真实性。这对于服务来说也是必要的,以便在参与者行为不当的状况下禁止它,并使从新注册尽可能艰难。 通过三方登录注册 通常,此类注册是应用凋谢协定OAuth(或其等效协定)进行的,零碎填写受权和绑定社交网络帐户的事实,但不记录社交网络帐户的登录名和明码。 其余注册办法是通过电话号码或电子邮件实现的。如果应用这些办法,那么用户对系统的信念就会升高,因为无奈验证数据的真实性:照片、年龄、地区等。年龄十分重要,因为用户须要晓得另一个用户是否曾经成年。 用户材料 注册后,用户须要导航到“个人资料”局部。在这里,新成员必须阐明他们的年龄、地点、趣味并简要介绍本人。也就是说,指定其余用户将看到的信息。 配置文件 施行配置文件时,请记住以下事项: 重点应该放在能够从设施、社交网络上传或应用相机实现的照片上; 文本框应该很小 - 最多 1000 个字符; 这里应该是社交网络的链接,并且如果其余用户查看了个人资料,则能够编写音讯。 用户地位 盲盒是一款基于用户地位的约会利用。也就是说,零碎参与者能够按地位(例如,半径50公里内)进行搜寻,零碎将向他们展现所有凑近他们的人的个人资料。 检测设置 在盲盒中,您能够配置设置以按年龄、性别和最大间隔检测其余用户(或您本人为其余用户)。 搜寻和滑动 这是盲盒的次要性能,它有助于以最小的单方致力将人们汇集在一起。它的实现非常简单:看照片,如果你喜爱这个人,向右滑动照片,如果不喜爱,向左滑动。 匹配和聊天 如果用户表白了互相喜爱(他们彼此喜爱),那么零碎会记录匹配并为他们提供实时交换的机会。如果喜爱因某种原因隐没,则能够阻止用户。 与社交网络集成 用户能够将其余帐户与其盲盒个人资料集成。社交网络中的查看用户应在匹配后关上。 推送告诉 应用此性能,您能够确保用户的参加,因为他们会立刻理解新的匹配或音讯。多亏了这一点,参与者将可能实时交换。 独特的性能 如果您打算创立的不仅是另一个盲盒正本,而且是一些独特的货色,那么您必须思考增加一些额定的有用性能以在竞争对手中怀才不遇。例如,这些函数能够是: 先进的人工智能算法。借助深度神经网络和大数据,您能够创立自学习算法,更无效地匹配用户,减少互相喜爱的可能性。 垃圾邮件过滤器。您能够创立一个零碎,在人们收到与其余用户雷同的音讯时告诉他们。 DNA匹配算法。要害是有些人的免疫系统可能彼此不相容。在这种状况下,造成一对是不可取的,因为它可能导致呈现免疫力差的儿童或攻打本人机体细胞的偏向。反之亦然。 最好不要应用与外观相匹配的算法,例如面部、头骨或指纹的形态。因为这是反科学的误会,因而应用它可能会导致诉讼。 局部源码展现: _install/constants.php ...

June 13, 2022 · 2 min · jiezi

关于html5:APICloud可视化开发丨一键生成专业级源码

低代码正在从宽泛探讨迈入深度利用阶段。在微小的挪动利用缺口下,YonBuilder挪动低代码开发平台(APICloud)致力于让企业通过低代码形式,疾速实现挪动策略落地,轻松应答创新性数字化挑战。 APICloud Studio3可视化工具秉承低代码的设计理念,让开发者能够通过拖拽搭建积木的形式,所见即所得地疾速构建生成利用动态页面,并反对同步实时生成AVM跨端代码;工具内置丰盛的UI款式组件,节俭开发者大量的页面构建工夫,让开发者可能更加专一于利用业务逻辑的开发,进一步帮忙企业降本增效。 APICloud Studio3可视化工具可视化利落拽,疾速生成专业级源代码丰盛的预置组件,无需编码,低门槛应用。目前,APICloud Studio3可视化工具提供了上百款零碎组件、UI组件和高级组件,只需简略拖拽即可实现页面设计。 提供典型业务场景模板,所见即所得。企业可基于模板构建可视化页面和我的项目,疾速验证迭代想法,满足全行业的业务需要。 可视化满足不同角色需要。为非技术人员提供页面构建能力,晋升业余技术人员的开发效率,同时为两者提供一种共同语言,极大地简化了开发。 反对可视化界面与代码的双向转化。在APICloud Studio3,可视化界面将主动生成能够进行二次开发的专业级源代码,已有代码也能够在可视化编辑器中辨认转换,这是APICloud Studio3的独特劣势之一。 代码编辑模式,助力高效业余开发APICloud Studio3可视化工具提供AVM语法和扩大API反对,全量笼罩AVM.js语法和扩大API,提供智能帮忙提醒和主动实现性能。 反对简略高效的代码治理,同时内置Git和SVN,提供简洁的代码治理操作过程。 提供实时预览和真机调试,反对在编辑器中预览模仿成果,或者应用真机进行调试和性能验证。 云端一体,与云端互通,反对在本地应用编译、模块治理等云端性能。 在API调试和治理上,APICloud Studio3简化了 API 的调试、治理以及合作,可动静生成 API 拜访模型代码。 一套代码,多端编译无论面向Android、iOS、Web、app还是小程序构建利用,都能一键生成对应的终端安装包。 APICloud平台劣势全新揭晓以全新的形式,疾速构建企业级挪动利用可视化开发,主动生成专业级源码。应用APICloud Studio3,通过可视化利落拽疾速构建应用程序,一键生成专业级利用源代码,开发者可间接二次开发应用。 一套代码,适配多端利用。只需一次作业,应用HTML5技术同时公布为Android、iOS、小程序、HTML5多端利用,使企业专一于业务翻新。 极致的性能体验。弱小的Native渲染引擎提供丰盛的API、杰出的原生性能和晦涩的页面交互,为app用户提供最佳的应用体验。 以低代码形式,一站实现利用全生命周期治理端API笼罩智能辨认、音视频、客服、领取、物联网等畛域的1400+原生模块,业务API笼罩用友BIP全畛域,让企业应用程序构建,不受任何行业限度。 开发者说“模板页面清晰、抉择不便,生成的代码十分业余、标准,辅助开发十分舒服,体验不错!” “期待已久,上线应用之后感觉良好,下月app我的项目会正式应用可视化开发,置信能进一步晋升开发效率。” “可视化工具极大中央便了开发,尤其是可视化界面和代码反对双向转化,全新的开发体验!” 低代码开发平台具备麻利开发、开发平权、高性价比等诸多劣势,而YonBuilder挪动低代码开发平台(APICloud)基于云原生、可视化、混合开发、API连贯、DevOps等能力的广泛应用,造成了松软的生态壁垒和先进的麻利开发能力。依靠平台可将原有数月甚至数年的开发工夫成倍缩短,减速企业的数字化转型。

June 10, 2022 · 1 min · jiezi

关于html5:数字孪生微电网搭建源网荷储一体化管控平台

前言《“十四五”古代能源体系布局》提出,翻新电网构造状态和运行模式,放慢构建古代能源体系。放慢配电网革新降级,推动智能配电网建设,进步配电网接收新能源和多元化负荷的承载力和灵活性。踊跃倒退以消纳新能源为主的智能微电网,实现与大电网兼容互补。 在 2020 年的联合国气象峰会上,我国正式提出了 “3060” 双碳指标。为实现“ 2030 年前碳达峰, 2060 年前碳中和”的指标,着力构建清洁低碳、平安高效的能源体系,晋升能源清洁利用程度和电力系统运行效率,更好地施展源网荷储一体化和多能互补在保障能源安全中的作用。 成果展现 在新型电力系统下,电网运行逐步出现智能化、数字化的特点。倒退“源网荷储一体化”运行急需“云大物移智链边”其中的云计算、大数据、电力物联网、边缘计算等技术手段,让电网零碎装备领有海量数据处理剖析、高度智能化决策等能力的云端解决方案。从而实现各类能源资源整合、买通能源多环节间的壁垒,让“源网荷储”各因素真正做到敌对协同。 图扑软件利用自主研发引擎 HT for Web 将 Web 智慧“双碳”微电网场景进行数字孪生,无效实现源网荷储一体化管控。整体场景采纳了轻量化建模的形式,重点围绕智慧园区电网联通中的源、网、荷、储四方面的设施和修建进行建模还原,为用户带来“赛博朋克”的视觉体验。采纳轻量化从新建模的形式,设计师就有“设计”的施展空间,展示更多美学创意。反对 360 度察看虚构园区内源网荷储每个环节的动态数据,通过图扑软件 HT 自带交互,即可实现鼠标的旋转、平移、拉近拉远操作,同时也实现了触屏设施的单指旋转、双指缩放、三指平移操作不用再为跨平台的不同交互模式而懊恼。 通过图扑软件残缺复现的园区能量零碎,实现分布式光伏发电零碎、储能零碎、太阳能+空气源热泵热水零碎的综合管控。通过智慧能源管理系统,实现修建能效治理、综合节能治理和“源网荷储”协同运行。 “源网荷储一体化”是一种可实现能源资源最大化利用的运行模式和技术,通过源源互补、源网协调、网荷互动、网储互动和源荷互动等多种交互模式,更经济、高效和平安地进步电力系统功率动态平衡能力。 系统分析源“源”互补图扑双碳智慧园区内智能微电网次要以多种可再生能源为主,电源输出次要为光伏、氢能、天然气、沼气等多种成熟发电技术。光伏是绿色能源,具备缩小温室气体二氧化碳排放的特点,假如均匀每天发电量为 1000 kWh, CO 减排约为 785 kg,能大幅缩小碳排放。 不同电源之间可通过“源网荷储一体化”平台无效协调,即通过灵便发电资源与清洁能源之间的协调互补,解决清洁能源发电出力受环境和气象因素影响而产生的随机性、波动性问题,无效进步可再生能源的利用效率,缩小电网旋转备用,加强零碎的自主调节能力。 Hightopo 制作的智慧新能源零碎以“赛博朋克”格调进行展现,突出能量路由器、变压器、配电室等设施模型,利用 HT 提供的图形化组态 SCADA 能力,以线条流动的形式表白光伏从光能转化为电能、再到设施供电、储能全流程。当日超标电量、累计用电量、光照时长、辐照度别离统计,利于整合剖析。利用柱状图动态显示 24 小时内的交换源出力和指令,把握每日数据变动,进步电力调控能力。 能量电塔 电力塔间接连贯到智慧园区的电网,在满足为汽车充能的状况下,我的项目产生的多余能量会汇入整个园区的用电零碎。整合分布式光伏发电零碎等技术设备实现电源输出。通过图扑软件可视化场景内的 2D 面板对额外出力、进口电压、额外容量、额外电压、分量、档距进行数据监测,理解“源”侧的电力状况。 世界各国的罕用交流电工频频率有 50Hz(赫兹)与 60Hz(赫兹)两种,民用交换电压散布由 100V 至 380V 不等。机房个别引入三相 380V ,50HZ 的市电作为电源,然而设施的电源整流模块用的是单相 220V 的电压。 变压器 变压器是输配电的根底设施,广泛应用于工业、农业、交通、城市社区等畛域。我国在网运行的变压器约 1700 万台,总容量约 110 亿千伏安。变压器损耗约占输配电电力损耗的 40%。将交换赫兹、电压等级、节能序列、额外容量数据在 2D 面板展现,利于节能效率的晋升。 配电室 配电室是指带有低压负荷的室内配电场合,次要为低压用户或用电设施配送电能,低压配电室的进线个别是由 35kV 或 10kV 变配电站内的低压开关柜调配出的 400V 电缆。通过图扑软件 HT 2D 面板实现配电室内电流频率、整机功耗、交换电压、交换电流的数据监控,便于运维治理。 ...

June 9, 2022 · 1 min · jiezi

关于html5:Web组态可视化软件之Sovit2D3D组态可视化平台介绍

对于组态软件,首先要从组态的概念开始说起。 什么是组态组态(Configure)的概念来自于20世纪70年代中期呈现的第一代集散控制系统(Distributed Control System),能够了解为“配置”、“设定”、“设置”等,是指通过人机开发界面,用相似“搭积木”的简略形式来搭建软件性能,而不须要编写计算机程序。咱们也可称之为“二次开发”,组态软件即为“二次开发平台”。 什么是组态软件从用户操作与界面出现的角度来说,组态软件采纳规范HTML5技术,基于B/S架构进行开发,反对Web端出现,在浏览器端即可实现便捷的人机交互,简略的拖拽即可实现可视化页面的编排设计。此外,因为组态软件性能较为简单,为升高应用门槛,组态软件进行了模块集成化,旨在简化用户的操作步骤,进步用户的工作效率。 Web组态可视化软件(Sovit2D)操作界面示意 组态软件通过浏览器操作组态工具、浏览组态画面,实现工程治理、组态编辑以及组态运行三大性能。通过实现图元组态、可视化图表组态、数据库组态的配置与关联,实现基于Web服务的实时数据监控与服务端的多用户拜访等。 从软件架构来说,组态软件具备高度的开放性。随着利用场景的逐步减少,软件必然须要进行性能扩大,因而,组态软件不仅反对多种数据接口,也提供了二次开发接口,能够由用户自行实现二次开发。组态软件在性能上集成了大量通用模块和个性化模块,以实现不同行业用户的需要。针对具体的用户,软件反对定制化模块的开发与配置。 软件的运行逻辑并不简单,除了根底的组态治理外,次要可分为组态编辑和组态运行两个局部。用户须要在组态编辑环境中应用组态软件提供的组态性能(图元、图表、数据库)进行组态设置、建设网络拓扑、绘制数据显示界面、配置各种零碎参数(如数据采集频率)等;而后在组态运行环境中运行曾经组态好的利用零碎,包含数据实时监控、场景展现等。 两者之间的关系如图所示:组态软件运行逻辑 组态软件实质上能够了解为一款集成的可视化工具,为用户提供一个便捷的可视化设计与开发环境,基于此实现可视化页面的搭建,为各类场景提供可视化服务。 性能特点基于html5,B/S架构反对 2D、3D多种出现模式可视化拖拽编辑、简略易用反对云端/本地等部署形式,多终端应用提供丰盛的行业标准元器件图元库提供行业模板和组件,反对自定义模板和图纸治理反对二次开发反对Http、WebSocket等支流协定,反对扩大更多协定反对嵌入第三方零碎或者集成平台,也可作为独立平台具备延续性、可扩展性、封装性(易学易用)、通用性、开放性周密的系统安全防备利用场景组态软件的呈现,为解决理论工程问题提供了一种全新的办法,用户通过相似“搭积木”的简略形式来实现本人所须要的软件性能,不须要编辑计算机程序。组态软件可能很好地解决各类场景中存在的种种问题,使用户能依据本人的治理对象和治理目标的任意组态,实现最终的场景管制自动化、数据可视化。次要适应场景如下: 配电工业(管制)智能楼宇变电站治理电厂电气配电室监控冶金工艺流程管制水力自动控制石油智能控制系统······经典案例智慧医疗三维可视化零碎 本我的项目利用Sovit3D平台,采纳3D的模式进行可视化展现,3D技术应用三维建模形式,构建平面成果,应用2D和3D相结合的形式,对医院医疗资源、日常门诊、住院病患、药品治理、医疗服务、科研教学以及医院运维态势等治理畛域的要害指标进行综合出现,辅助管理者全面掌控医院运行态势,实现人、事、物对立治理。 智慧工厂3D可视化信息管理系统 智慧工厂3D可视化零碎利用Sovit3D可视化开发平台,基于数字孪生技术,交融工业大数据、物联网、人工智能等各类信息技术,依靠三维仿真技术,整合厂区现有信息系统的数据资源,实现数字孪生工厂、设施运维监测、智能管网监测、综合安防监测、便捷通行监测、能效治理监测、生产治理监测、仓储物流监测等多种性能,构建工厂的三维展现、监控、告警、定位、剖析一体化的3D可视化平台。无效进步厂区综合监管能力、升高企业厂区经营老本,实现治理精细化、决策科学化和服务高效化,广泛应用于态势监测、应急指挥、数据分析、成绩汇报等多种场景。 智慧电厂数字孪生可视化治理平台 智慧电厂数字孪生3D可视化治理平台利用Sovit3D可视化开发平台进行映射建模,搭建与真实世界齐全镜像的虚构场景,将设施的实时运行参数接入界面中的2D面板,将实时指标、机组状态、环境参数、发电统计、节能减排等简单、形象的数据以丰盛的图表、图形和设计元素展示,实现集中管控剖析。通过对历史数据的综合剖析,管理者可实现资源的优化配置,构建智慧电厂管理系统,从而让企业利用数字孪生可视化平台对事实世界进行全生命周期治理。帮忙发电厂实现数字化转型,实现电厂平安、高效、绿色的生产指标。 以上就是对于Web组态可视化软件的简略介绍,大家能够拜访数维图官网进行收费体验,在应用过程中有任何疑难能够分割咱们,咱们会提供业余解答服务。 END 编辑:数维图(SovitJS) 参考:局部资料起源网络,侵权请分割删除 新一代Web组态可视化软件平台 数见视界,维新以图**

June 7, 2022 · 1 min · jiezi

关于html5:HTML常用标签

a标签a标签的属性1.herfa链接的地址,取值: 网址 举荐应用//www.baidu.com 这一种写法,放进浏览器会主动补全门路 绝对路径:/a/b/c,相对路径:index.html和./index.html3.伪协定 利用场景:心愿点击a标签之后什么也不做,页面不刷新也不返回到顶部 具体用法:` 这就相当于执行一段没有意义的,只有分号的js代码 id: href=#id名,能够跳转到id名为Id的标签 如<p id="xxxx"></p>, <a href="#xxx"></a>就能够定位到这个p标签2.target决定是在本页面还是新开一个页面关上链接零碎自带的取值: 1. `target="_blank"` 关上新页面2. `target="_self"` 在以后页面关上3. `target="_top"` 顶级窗口关上,最上层的iframe4. `target="_parent"` 在父级页面关上, 3和4实用于有Iframe内嵌窗口的状况也能够程序员本人命名target="xxx"与iframe 标签的name对应没有iframe的话,target="xxx"就会关上一个window.name为xxx的标签(浏览器控制台输出window.name能力看到名字),如果曾经存在就间接笼罩。a标签的作用跳转到内部页面跳转到外部锚点跳转到邮箱或电话img作用:收回GET申请,展现图片 属性 src:="地址 "alt="提醒文字" 如果图裂了,无奈加载,会显示这个alt属性中的文字,提醒用户这个图片是什么width 如果只写宽度,高度会自适应height 如果只写高度,宽度会自适应一个合格的前端不能让图变形!所以就只写宽度或者高度事件onload 加载胜利onerror 加载失败 响应式要害就是`max-width: 100%;这样图片就能够自适应不同的屏幕大小 <style> * { margin: 0; padding: 0; box-sizing: border-box; } img { max-width: 100%; }</style>表格tabletr 是 table row 的缩写th 是 table headtd 是 table datatable范例 <table> <thead> <tr> <th>英语</th> <th>翻译</th> </tr> </thead> <tbody> <tr> <td>hyper</td> <td>超级</td> </tr> <tr> <td>target</td> <td>指标</td> </tr> <tr> <td>reference</td> <td>援用</td> </tr> </tbody> <tfoot> <tr> <td>空</td> <td>空</td> </tr> </tfoot> </table>有些人不写<thead> <tbody><tfoot>,或者程序搞错了, html也会在浏览器主动纠错 ...

June 3, 2022 · 1 min · jiezi

关于html5:25D-组态案例合集-智慧园区数据中心SMT-生产线汽车制造

在阅读文章之前,大家能够思考下 2.5D 设计属于哪种界定? 2.5D 是通过二维的元素来呈现出三维的成果。其实在国外并没有 2.5D 这样的称说,规范说法是 Isometric 格调,翻译过去就是等距设计,在中国称之为 2.5D。 2.5D 的学术名是轴测插画或轴测插图,轴测插图的意思顾名思义,是一种单面投影图,在一个投影面上能同时反映出物体三个坐标面的形态,并靠近于人们的视觉习惯,形象、真切,富裕立体感。 也就是说用二维的制作形式画出物体的三个面,富裕立体感。但轴测插画须要找透视面,对设计师的空间设想能力要求很高,在制作的时候的难度和工夫老本因图形的复杂程度而定有些会高于三维的工作量。 前言图扑软件将 2.5D 图形技术与数据可视化相结合,可帮忙解决智慧工业、智慧园区、智慧机房、智慧能源等各畛域利用开发成本高、周期长、体验差的问题。 利用图扑软件(Hightopo)自主研发的 HT 产品上的 Web 组态,联合 2.5D 轻量化设计模式,对智慧园区、智慧机房、智慧 SMT 生产线、智慧汽车生产线畛域进行多业务运作流程透明化监控。图扑丰盛的图形组件和界面设计,将干燥繁琐的数据进行图形化、场景化,更加直观的将各图表数据造成显明比对。 系统分析智慧园区园区作为城市在区域范畴内的缩影,汇集着产业、人力、翻新、性能等各类资源因素。 图扑软件基于新一代信息通信技术,在园区管控界面中集成修建、能效、停车场、施工、能源,横向买通各子业务零碎,实现园区管制、感知、监测、剖析一体化。 使用数据驱动模式让新型组态得以应用 2.5D 等多模式实现多样化展现,实现与事实场景中相符的空间散布成果。可设置昼夜两种场景随便切换,整体设计以写实格调为主基调。 针对当下园区履行的“源网荷储”一体化经营模式,本案例以数据为外围生产因素,将接入测点后监测到发、用、储电类的实时数据,予以流程可视化动画成果以及图表数据载入交融模式直观出现。整合园区内设施设施、碳排放、机房运行的地位散布、运作状态、环境态势,施行集中动静监测和部署,可点选查看同一数据指标下的多种散布特色,造成对园区资源空间的实时共享、均衡治理、联动管制。 基于类型、区域、品质等多维度,对园区内的能耗负荷、施工进度、机房动环、车位统计、水质等各类事件的运行状态,构建阈值告警触发机制,让零碎被动辨认平安危险,排除安全隐患。 可通过对接测点数据实现 Web 化跨平台多端拜访,反对跨平台浏览,任何挪动终端均可轻松关上浏览器拜访治理界面,利用多种管制设施对显示内容集中近程管控,这是 C 端平台所不具备的劣势。 数据中心数据中心可视化管理手段是将多种管理系统的繁冗信息,汇合汇总在虚拟环境中,选用合乎人类视觉的形式全面展示数据中心整体架构。满足运维人员端到端的 IT 可视性,清晰疾速把握各类设施所处地位和资产信息,精准的扫视数据中心全局现象。 图扑软件通过搭载智能传感器,对接区域内所需监控的能源、资产、容量、动环、门禁等信息,尽可能帮忙决策者察看到各类对象。在全新的 2.5D 组态界面中,通过图扑软件 HT 弱小的引擎技术,实现组态图元晦涩的动态效果开发。以列表形式在界面中展现所需任意资产对象数据并动静刷新,如:机房电力负荷、UPS、设施型号、CPU 负载、温湿度等状况。 装备管线可视化,帮忙运维人员无效梳理数据中心密集的电气管道与网络线路,轻松地把控数据中心链路走向及管线散布,进步排查与修复管线故障的解决效率。 针对现有运维体系和服务模式进行从新整合,将多类海量简单的零碎信息汇聚于此,进步资源利用率,缩短故障响应工夫,为用户打造规范化、精细化、智能化的业务运作流程。 SMT 生产线SMT 车间作为高度自动化的车间,可借助智能设施、FIRD、网络等先进技术,搭配图扑可视化技术,让传统的信息制造业实现数据对立治理运维,赋能行业向智能化、绿色化发展。 图扑软件使用轻量化建模模式搭建了 2.5D SMT 工艺流程监控治理可视化解决方案,针对各产线根底信息进行疾速建档,整体组态零碎中的各条产线可通过后端传输接口,应用图表组件反馈实时监控到的运行数据。2.5D 组态界面能更平面得看到整个工艺的流程的散布及各子流程的工艺走向。 针对厂区经营要求,可基于用户数据建设其运行成绩,按需搭建多维度数据面板内容,如:OEE(设施综合效率)、工夫利用率、性能利用率、产量完成度、直通率、不良率等。 设有预警告警剖析性能,如遇设施数据超过临界值,将在界面中及时揭示用户关注设施。用户可通过界面下发指令,实现近程管制设施模式启停的目标,从而进步工作效率,缩小运行老本。 图扑软件可视化通过 B/S 架构与模型轻量相结合,在肯定水平上加重了用户对于洽购高性能硬件费用的压力。 汽车生产线汽车制造业属于典型的离散制作,相较于一般生产线,汽车生产过程更加简单繁琐。 图扑软件 2.5D 汽车生产线可视化解决方案,将冲压-焊接-涂装-总装等生产工艺流程使用各类卡通的二维组态和三维组态成果,还原动画场景并整合至大屏中。使汽车生产全过程在线、通明、可视、可控、可追溯。 搭载多类传感器,采集焊接车间外部设施的生产数据,使用图扑软件 HT 可视化组件,构建产线可视化看板,让用户对班组工作、员工效率及工艺环节过程中产线利用率、冲压工艺、停线/甩车工夫等状况高深莫测。 ...

June 2, 2022 · 1 min · jiezi

关于html5:字体图标的使用

1 进入网站 https://icomoon.io/app/#/sele... 下载字体2 将下载下来的文件解压,将fonts文件夹放入我的项目根目录3 拷贝style.css文件中的"@font-face"对象拷贝进style,援用字体@font-face { font-family: "icomoon"; src: url("fonts/icomoon.eot?25srv6"); src: url("fonts/icomoon.eot?25srv6#iefix") format("embedded-opentype"), url("fonts/icomoon.ttf?25srv6") format("truetype"), url("fonts/icomoon.woff?25srv6") format("woff"), url("fonts/icomoon.svg?25srv6#icomoon") format("svg"); font-weight: normal; font-style: normal; font-display: block; }4 拷贝字体的特殊符号即可应用,并且特殊字符就是字体,能够设置font相干的属性 详情代码如下: <!DOCTYPE html><html lang="en"> <head> <meta charset="UTF-8" /><meta http-equiv="X-UA-Compatible" content="IE=edge" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>字体图标的应用</title><style> /* 1 进入网站 https://icomoon.io/app/#/select/font 下载字体 2 将下载下来的文件解压,将fonts文件夹放入我的项目根目录 3 拷贝style.css文件中的"@font-face"对象拷贝进style,援用字体 4 拷贝字体的特殊符号即可应用,并且特殊字符就是字体,能够设置font相干的属性 */ @font-face { font-family: "icomoon"; src: url("fonts/icomoon.eot?25srv6"); src: url("fonts/icomoon.eot?25srv6#iefix") format("embedded-opentype"), url("fonts/icomoon.ttf?25srv6") format("truetype"), url("fonts/icomoon.woff?25srv6") format("woff"), url("fonts/icomoon.svg?25srv6#icomoon") format("svg"); font-weight: normal; font-style: normal; font-display: block; } span { font-family: "icomoon"; font-size: 100px; color: pink; }</style></head> <body> ...

June 1, 2022 · 1 min · jiezi

关于html5:HTML表单

HTML表单留神要与表格辨别开,表单是,html的动静标签,我后面的博客说的都是动态的页面,在这里表单有以下几种类型:(1)单行文本框(input(标签))(2)明码文本框(3)单选框(4)复选框(5)按钮(6)文件上传(7)多行文本框(textarea标签)(8)下拉列表(select标签)示例: <!DOCTYPE html><html><head> <meta charset="utf-8"> <title>html form标签</title></head><body> <p>示例</p> <from> <input type="text" value="单行文本框"><br/> <textarea>这是一个多行文本框</textarea><br/> <select> <option>C++</option> <option>Python</option> <option>Java</option> </select> </from></body></html>实现成果:form的几个属性: 属性阐明name表单名称,能够用来辨别不同的表单method提交形式,有两种http提交形式:get、post,post安全性更好action指定提交地址target打开方式(与标签相似),只会用到_blank属性enctype指定提交的编码方式input表单大部分表单都是用input,因为它能够有很多灵便的变动,依据不同的type属性值,它齐全能够适应多种状况下的应用。 <input type="表单类型" />type属性作用text单行文本框password明码文本框radio单选框checkbox多选框button或submit或reset按钮file关上文件资源管理器,抉择文件上传应用示例: <!DOCTYPE html><html><head> <meta charset="utf-8"> <title>html form标签</title></head><body> <p>示例</p> <from> <input type="text" value="单行文本框"><br/> <textarea>这是一个多行文本框</textarea><br/> <select> <option>C++</option> <option>Python</option> <option>Java</option> </select> </from> <br> <p>-------</p> <p>-------</p> <p>-------</p> <p>-------</p> <p>-------</p> <p>-------</p> <from> <input type="text" value="单行文本框的应用" > <br> <input type="password" value="明码文本框"> <br> <input type="radio" name="sex" value="男">男 <input type="radio" name="sex" value="女">女 <br> <input type="button" value="按钮"> <br> <input type="file" value="抉择文件"> </from></body></html>上面有具体介绍:具体介绍当input标签type="text和type="password"时,还有三个罕用属性: 属性阐明value设置文本框的默认值,也就是默认状况下填写的文字size设置文本框的长度maxlength设置文本框中最多能够输出的字符数,加不加这个属性不会对单行文本框的外观有影响下拉框:select属性:mutiple(设置多选)、size(设置下拉列表显示几个选项)option属性:selected(是否选中)。按钮也有三种:(1)一般按钮配合JavaScript来进行各种操作的。type="button"(2)提交按钮用来给服务器提交数据的。type="submit"(3)重置按钮个别用来革除用户在按钮所属表单中输出的内容。type="reset",如果不是按钮所属表单,表中内容与这个按钮无关。 input标签之单选框radio为什么这里用一个独自的题目来写呢?起因是单选框有许多中央要留神。(第二天补上,六级踊跃备考中,编译原理踊跃温习)首先语法是这样子的: <input type="radio" name="组名" value="取值" />取值这两个属性肯定要设置,同时留神组名name在同一组单选框外面要统一,否则就变成了多个单选框(能够同时抉择多个),<>前面跟的个别与value雷同。还有一个要留神的中央是还有一个属性叫checked,加上之后就能够让它默认抉择。语法: <input type="radio" name="组名" value="取值" checked>取值而后还有一个叫做复选框的货色(checkbox)属性与单选框统一 最终练习实现成果:代码: <!DOCTYPE html><html><head> <meta charset="utf-8"> <title>总结练习</title></head><body> 账号:<input type="text" value="账号"> <br> 明码:<input type="password" value="明码"> <br> 性别: <input type="radio" name="性别" value="男">男 <input type="radio" name="性别" value="女">女 <br> 会的技能: <input type="checkbox" name="技能" value="C">C <input type="checkbox" name="技能" value="C++">C++ <input type="checkbox" name="技能" value="Java">Java <input type="checkbox" name="技能" value="Python">Python <br> 集体介绍: <!-- <input type="textarea" name="介绍"> --> <br> <textarea></textarea> <br> 上传简历pdf: <br> <input type="file"> <hr> <input type="button" value="提交"></body></html>写在最初:为期12天(看我的博客主页就可以看进去了)把html根底语法学完了,这个过程还是比拟轻松的,因为之前学习过Python和C++,所以对这个语言还是十分好承受的,下一步,进军CSS,不晓得须要几天。 ...

May 30, 2022 · 1 min · jiezi

关于html5:HTML-head标签

head标签首先理解html的根本构造 <!DOCTYPE html><html><head></head><body></body></html>一般来说只有六个标签能够应用在head标签中,其余的都在body标签中1. title2. meta3. link4. style5. script6. base 一、title标签设置网页的题目 <!DOCTYPE html><html><head> <title>这是一个题目</title></head><body></body></html>显示在最上方 二、meta标签用于定义页面的非凡信息在meta中有两个重要的属性:name和http-equiv. 1、name<!DOCTYPE html><html><head> <!----> <!--关键字--> <meta name="keywords" content="keywords" /> <!--页面形容--> <meta name="description" content="开心的学习HTML" /> <!--作者--> <meta name="author" content="YapMiracle" /> <!--版权申明--> <meta name="copyright" content="不可剽窃" /></head><body></body></html>只须要记住keywords,和description这两个就够了 2、http-equiv他次要有两个作用:定义网页所应用的编码;定义网页主动刷新跳转。 1、比方定义编码是UTF-8:<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>为了确保关上的页面不呈现乱码,最好都加上 2、定义网页主动刷新跳转。<!DOCTYPE html><html><head> <!----> <!--关键字--> <meta name="keywords" content="keywords" /> <!--页面形容--> <meta name="description" content="开心的学习HTML" /> <!--作者--> <meta name="author" content="YapMiracle" /> <!--版权申明--> <meta name="copyright" content="不可剽窃" /> <meta http-equiv="refresh" content="6;url=http://www.baidu.com"/></head><body> <p>在六秒后跳转到百度页面</p></body></html>这段代码定义了一个6秒后跳转到百度页面的性能,其实很多广告就是这样子设计的。 三、link标签在HTML中,link标签用于引入内部款式文件(CSS文件)。我这里是借鉴了其余中央的代码,我也还没有学到这个中央。语法: <!DOCTYPE html><html ><head> <link type="text/css" rel="stylesheet" href="css/index.css"></head><body></body></html>四、style标签在HTML中,style标签用于定义元素的CSS款式,在HTML中不须要深入研究.我这里也是借鉴了其余中央的代码,我也还没有学到这个中央。语法: <!DOCTYPE html><html ><head> <style type="text/css"> /*这里写CSS款式*/ </style></head><body></body></html>五、script标签在HTML中,script标签用于定义页面的JavaScript代码,也能够引入内部JavaScript文件。在JavaScript局部中会学习到,我这里是借鉴了其余中央的代码,我也还没有学到这个中央。语法: <!DOCTYPE html><html ><head> <script> /*这里写JavaScript代码*/ </script></head><body></body></html>六、base标签这个标签一点意义都没有,能够间接疏忽,晓得有这么一个标签就行了。

May 18, 2022 · 1 min · jiezi

关于html5:HTML-table-边框双线变单线

成果比照图一般table 标签<table border="1"> <tr> <th>Month</th> <th>Savings</th> </tr> <tr> <td>January</td> <td>$100</td> </tr> </table> 加了css限度的 <table> <tr> <td>1</td> <td>1</td> <td>1</td> <td>1</td> <td>1</td> </tr> <tr> <td>1</td> <td>1</td> <td>1</td> <td>1</td> <td>1</td> </tr> </table>table{ border-collapse:collapse; border-spacing:0; border-left:1px solid #888; border-top:1px solid #888;} th,td{ border-right:1px solid #888; border-bottom:1px solid #888; padding:5px 15px;} th{ font-weight:bold;}

May 1, 2022 · 1 min · jiezi

关于html5:交友盲盒源码下载H5数码盲盒源码开发

 疫情暴发后,人们无奈近距离亲自结识新敌人,所有的浪漫互动都是在网上进行的。分析师称,到2024年,寰球约会服务业的销售额预计将达到84亿美元。约会利用程序开发是一个很好的主见。地球上有79亿集体,他们中的大多数都在寻找伴侣。咱们须要新的应用程序和网站,这些应用程序和网站要比现有的应用程序和网站更能投合更多的人口和趣味。从年龄、地理位置、喜好和政治偏向等人口统计数据来看,目前的应用程序和网站数量有余。 交友盲盒源码下载及演示:m.ymzan.top 开始前须要理解的5个统计数据 1.超过1100万美国成年人应用挪动约会应用程序每月至多一次。这是美国成年人在网上约会的数量以同样的频率。此外,美国独身成年人的数量持续回升(从2010年的3140万人减少到2016年的3539万人)。 2.84%的约会利用用户正在寻找稳固的恋爱关系。另有43%的人应用在线交友服务进行敌对分割。只有24%的交友应用程序用户示意他们只寻求性接触。依据eHarmony,20%的恋情是从网上开始的。 3.另据走漏男性网民较多当谈到约会应用程序的应用时,比女性用户要多。 4.交友网站和应用程序最吸引年轻一代网民。30%沉闷在互联网上的美国成年人年龄在18至29岁之间目前正在应用在线约会服务。你的应用程序必须与目标群体认可的所有趋势放弃同步。这些趋势很大水平上取决于目标群体的年龄。尽管关注年老的目标群体是十分有意义的,但你也能够抉择关注其余人口群体,咱们很好。请记住,年老的目标群体在用户体验、用户界面和性能方面要求更高。 5.依据eHarmony,用户的寓居城市会显著影响他们对应用程序的体验。例如,50%的纽约州居民是独身,而纽约市在eHarmony上的用户数量是最高的。相比之下,爱达荷州的用户更少,那里60%的人口是已婚的。 交友盲盒开发 1.理解你的目标群体 在整个软件开发过程中,确定潜在用户的目标群体可能是最重要的决策。请记住,关注一个或几个目标群体并不意味着排除任何不符合标准的人。它是对于有足够的信息来专门为那个群体设计你的软件(包含个性和用户体验)。此外,这些信息将成为你在市场营销流动中创立并向潜在用户传递弱小信息的武器。 有两类要害的参数须要思考:人口统计学和心理测量学。 人口统计学的你的目标群体都是对于数字和事实的,能够包含以下因素:年龄;性别,地位;收入水平;职业,种族背景等。 心理测量学有点辣手。这是对于应用程序的典型将来用户的某些特色。你须要为这些人建设一个具体的肖像。问卷中的根本问题应包含但不限于:用户是什么样的人?他们有什么独特的性格特征?他们典型的一天/一周是什么样的?他们的外围价值观是什么?他们对什么感兴趣?他们的喜好是什么?他们对网上约会持什么态度?他们在约会时会遇到什么问题? 所有这些都将帮忙您明智地确定您的我的项目范畴和推广策略。在收集了所有信息之后,还有一个问题须要答复。您的应用程序将如何以及为什么适宜他们的日常生活? 2.钻研你的竞争对手 约会利用市场充斥着各种应用程序,从低质量的应用程序到最风行的应用程序。你能够从学习这两个方面学习。 钻研热门约会应用程序的次要性能。他们的次要卖点是什么? 认真看看最受欢迎和最不受欢迎的约会利用的用户评论。他们的用户称心什么?他们为什么不能忍耐这些应用程序?你收集的信息将使你避开竞争对手的次要毛病,同时利用竞争对手的劣势改良你的产品。 关注本地和寰球竞争对手。无论规模大小,这两类利用都是你的竞争对手。寰球品牌是如何变得如此受欢迎的?为什么人们爱他们? 3.创立匹配算法 与数学无关。就连奥卡皮德也抵赖了这一点它不晓得它在做什么–他们的配对算法背地没有科学依据。这里有一个见解。依据数据,独特的趣味和表面是最重要的因素当用户正在寻找匹配项时。64%的在线约会服务用户示意,他们正在寻找一个他们有共同点的人。49%的受访者抵赖他们正在寻找一个长相吸引他们的人。 如果你想在你的软件中应用这个观点,做一个简略而有见地的考察问卷,让用户收集必要的数据。 4.满足用户根本需要 除了目标群体的非凡需要外,大多数约会应用程序用户都有两个独特的需要:安全性和直观的用户体验。 平安.可能会有令人不寒而栗的约会,也可能会有危险的约会。你的用户心愿在应用你的软件时感到平安。这不仅包含爱护集体数据的安全措施,还包含对用户自身的安全检查。例如,她,一个女同性恋约会利用,通过Facebook进行安全检查,以确保用户是女性。除此之外,该应用程序还从其余应用雷同电子邮件地址创立的社交网络帐户收集数据。 以下是一些您能够介绍的安全措施: 验证配置文件选项:激励你的用户提供他们的电话号码或社交媒体账户的链接。这个人越不匿名,他/她对别人的威逼就越小。 筛选邮件:您能够手动或主动执行此操作,以确保用户不会威逼任何人或在其邮件中应用怨恨舆论。 禁止选项:受权您的用户投诉其余用户的不雅行为。 黑名单选项:容许用户删除不须要的遭逢。 如果你想通过收集更多的集体数据来引入这样的安全检查,那么在构建你的利用时要记住爱护这些数据的须要。 直观的用户体验。直观的用户界面是用户一眼就能了解如何导航的界面。这就是让应用程序的用户体验愉悦和上瘾的起因。为了达到这个目标,使用户可能更快地实现工作并清晰明了: 使用户工作流程尽可能简略。 缩小实现动作所需的挪动次数。同时,尽量减少用户须要浏览的屏幕数量和须要填写的字段数量。 优化屏幕上的文本量。 确保你的口头要求是明确的。 它可能是十分迷人的,包含每一个性能,你的脑海中,但如果它的代价是用户体验的简略性,你须要优先思考。 ...

April 27, 2022 · 1 min · jiezi

关于html5:H5常见的业务风险分析及安全防护思路

咱们常常见到各类H5海报,比方,产品展现、流动促销、招聘启发、乃至小游戏等。H5不仅可能无缝的嵌入App、小程序,还能够作为一个领有独立链接地址的页面,间接在PC端关上,能够说良好跨平台适配。 H5技术成熟,开发周期短,投入和保护成本低,兼容性好。依据需要,H5能够制作文字、图形、音频、视频,因而能够用于PC网站、手机网站、微站、Web App、轻利用,甚至,开发目前最火的元宇宙概念——Web VR(虚拟现实大众化)。因而被广泛应用于展现、营销、考察、游戏等等。 作为重要的挪动互联网服务载体,H5在给用户带来便当体验的同时,也让企业面临信息泄露、歹意劫持、薅羊毛等各类业务危险。 到底什么是H5?H5是基于HTML5的网页文件。HTML(全称,Hyper Text Markup Language),即超文本标记语言,由Web(World Wide Web,即寰球广域网、万维网)的发明者 Tim Berners-Lee和共事 Daniel W. Connolly创建。 作为一种标记语言,HTML是规范通用化标记语言(SGML,是一种定义电子文档构造和形容其内容的国际标准语言)的利用。用HTML编写的超文本文档,能独立于各种操作系统平台应用。也就是,将所须要表白的信息写成HTML文件,通过浏览器就能展示为普通人可能辨认,即当初所见到的网页。 每一个HTML文档都是一种动态的网页文件,这个文件外面蕴含了HTML指令代码,这些指令代码并不是一种程序语言,只是一种排版网页中材料显示地位的标记构造语言,易学易懂,非常简单。可能通过标记式的指令(Tag),将影像、声音、图片、文字动画、影视等内容显示进去。 所以,自1990年以来,HTML就始终被用作万维网的信息示意语言。 1995年,HTML2公布;1997年,HTML3.2和HTML 4公布;2012 年,HTML5造成了稳固的版本。HTML5是公认的下一代Web语言,极大地晋升了Web在富媒体、富内容和富利用等方面的能力,可能良好适配PC、挪动等平台。咱们平时所说的“H5”就是基于HTML5的网页文件。 因为HTML5不仅反对文字、图片、音频和视频,还可能反对地里定位,并领有独自的数据存储形式,因而被宽泛包到挪动端,很多企业用HTML5做手机网页、网站、游戏,更用于制作App。 H5有哪些业务危险链接伪造危险。 攻击者通过伪造的H5网页链接,入侵毁坏业务零碎乃至内网,窃取重要信息、账户明码等。 页面篡改危险。 H5网页代码遭篡改复制,做成钓鱼页面,盗取用户账户明码和信息等。 信息泄露危险。 H5网页被植入恶意代码,盗取访问者的账号密码、隐衷信息等。 账号破解危险。 H5往往是App或小程序应用服务的延长,与平台账户体系关联,很容易成为攻击者盗取账号、破解明码的重要指标。 “薅羊毛”危险。 通过H5网页举办的各类优惠活动企业次要的拓客伎俩,“薅羊毛”不仅毁坏了失常的营销规定,白白耗费大量流动资金,更无奈保障新注册用户的精准性,导致营销流动成果功亏一篑。 顶象的H5平安防护计划顶象H5代码混同可能页面进行加密爱护,避免攻击者进行歹意攻打,避免页面遭歹意篡改,避免页面被泄露等。H5代码混同⼯具反对H5网页、H5网站、基于H5的App,以及各类小程序。 顶象H5代码混同通过对代码中的字符串,数字,正则表达式等对立转为字符串。而后对字符串进行随机拆分,并对拆分后的字符串进行倒序/随机密钥进行轮函数加密的随机加密。同时,打乱函数程序,并自动更新混同算法并更新JS到CDN,由此保障H5页面的平安。 安全性高。 顶象H5代码混同集成顶象特有的多层加密体系,加密、混同、压缩等伎俩相结合,而且混同算法定期更换,无效防备攻攻打破解。 操作简略。 顶象H5代码混同只需一键操作,即可取得加密后链接。 晋升拜访体验。 通过顶象H5代码混同加密后的H5链接,将被散发到各个CDN节点,极大进步用户H5页面的访问速度。 顶象是国内当先的业务平安公司,自主研发了全链路的风控中台产品矩阵体系,包含设施指纹、第四代验证码、实时决策平台、端加固、数据采集爱护、工业零碎爱护、模型平台、关联网络平台、常识图谱等风控、平安和人工智能产品,无效保障了企业的业务利用和基础设施平安。通过在金融、批发、航旅、电力、互联网、工业制作、石油石化等行业积攒了丰盛的实战经验,积淀了数万条业务策略和数百个场景化利用计划,可能为企业提供危险预警与评估、反欺诈、平安防护、营销举荐、分层经营等服务,构建起笼罩事先、事中、预先全生命周期的平安体系,让业务更加平安、智能、稳固,助力企业翻新与增长。截止2022年,顶象已服务10多个行业,3000多家企业。

April 24, 2022 · 1 min · jiezi

关于html5:盲盒交友模式APP开发丨源码搭建

不同于倒退靠近峰值的直播带货,也不同于依附达人推广的电商卖货,什么是全新的社交电商玩法呢? 在以后的社会环境下,以往以商品力、购买力为核心的批发营销模式曾经在发生变化,社交力,社群力正在成为新的批发营销影响力。然而近些年来的电商卖货模式却无非始终是相似于直播带货、达人推广的那几个根本玩法,极高的雇佣费用和不成正比的回报支出,让刚冒出头的小商家根本没有生存的市场。 所以,如何打造一个全新的电商卖货模式,让再小的商家都能在最低的老本和危险内,最短时间的销爆产品,这就是社交电商玩法的服务指标。 盲盒交友app性能介绍: 1、能更加自在的去聊天,每一个不同社交活动都是有很实在的,一起玩也能增进感情; 2、在这里能够更快的将左近的人搜寻进去,这样你将遇到一些你比拟相熟的人; 3、线上的流动还是十分精彩乏味的,让更多的人都能体验一下轻松的社交形式。 盲盒交友app亮点: 1、与好友说的任何话都是有隐衷爱护的,不同的话题都是能够间接在这里聊起来的 2、稳固畅快的聊天零碎给大家的感触还是很粗浅的,独特的畅玩模式让你很喜爱; 3、这个社交平台也能给用户们带来十分多的欢畅,随时随地都能娱乐一下。 盲盒交友app应用阐明: 1、让陌生人之间能够更好的意识,能以各种不同的形式去畅谈,形式很简略; 2、如果能在这里找寻到本人的真爱也是比拟幸福的事件,辞别独身不会难。

April 6, 2022 · 1 min · jiezi

关于html5:使用uniapp的canvas绘制页面海报

都是canvas的简略利用,其中有一个需要没有实现-->让把头像的图片解决成马赛克的款式,我没做进去,起初用色块给遮挡起来了心愿有会这方面内容的大哥看到的话,指导指导~~ //绘制海报 drawPicture(){ let ewmUrl = `业务需要` //生成二维码 qrcode.toDataURL(ewmUrl, { type: "image/png", //类型 quality: 0.5, //图片品质A Number between 0 and 1 width: 130, //高度 height: 130, //宽度 errorCorrectionLevel: "L", //容错率 margin: 1, //外边距 color: { dark: "#000", //前景色 light: "#fff" //背景色 } }).then(imgData => { this.baseCode = imgData }) //画布 let ctx = uni.createCanvasContext('myCanvas', this); //画布宽高 let imgW = this.$refs.draw_page.offsetWidth; let imgH = this.$refs.draw_page.offsetHeight; this.cwidth = imgW * 0.9; this.cheight = imgH + 125; //画布背景色 ctx.fillStyle='#fff'; ctx.fillRect(0, 0, this.cwidth, this.cheight); //图片 let imgUrl = this.getSexDefaultImg // 获取图片信息, 要依照原图来绘制, 否则图片会变形 uni.getImageInfo({ src: imgUrl, success: info => { //绘制顶部背景图logoImg ctx.drawImage(this.logoImg, 0, 0, this.cwidth, 80) //绘制头像 ctx.drawImage(info.path, this.cwidth/2 - 35, 45, 70, 70) //密封头像(做马赛克,没做进去) ctx.beginPath() ctx.fillStyle = 'rgba(242, 176, 53, 1)' ctx.setStrokeStyle('#fff') ctx.arc(this.cwidth/2, 80, 35, 0, Math.PI * 2) ctx.fill() //绘制密封文字 ctx.font = '16rpx Medium' // 字体大小 ctx.fillStyle = '#fff' // 字体填充色彩 ctx.fillText('密', this.cwidth/2 - 8, 85) //绘制个人信息---名字 ctx.font = "18rpx Medium" // 字体大小 ctx.fillStyle = '#212121' //字体填充色彩 let name_position = this.cwidth/2 - this.jlUserInfo.name.length/2 * 16 let str = this.jlUserInfo.name.split('').map((item) => { return '*' }) let _name = str.join('') ctx.fillText(_name, name_position + (this.jlUserInfo.name.length * 3), 150); //绘制年纪... ctx.font = '12rpx Medium' // 字体大小 ctx.fillStyle = '#212121' // 字体填充色彩 let age_position = this.cwidth/6 - this.jlUserInfo.age.length/2 * 12 ctx.fillText(this.jlUserInfo.age, age_position, 180) //绘制竖线 ctx.font = '12rpx Medium' // 字体大小 ctx.fillStyle = '#212121' // 字体填充色彩 ctx.fillText('|', this.cwidth/3, 180) //绘制教训... ctx.font = '12rpx Medium' // 字体大小 ctx.fillStyle = '#212121' // 字体填充色彩 let ex_info = this.jlUserInfo.experienceYear == '无教训'? '暂无': this.jlUserInfo.experienceYear let ex_position = this.cwidth/2 - ex_info.length/2 * 12 ctx.fillText(ex_info, ex_position + 3, 180) //绘制竖线 ctx.font = '12rpx Medium' // 字体大小 ctx.fillStyle = '#212121' // 字体填充色彩 ctx.fillText('|', this.cwidth/3*2 - 12, 180) //绘制学历... ctx.font = '12rpx Medium' // 字体大小 ctx.fillStyle = '#212121' // 字体填充色彩 let edu_position = this.cwidth/3*2 + this.cwidth/6 - this.jlUserInfo.educationTypeName.length/2 * 12 ctx.fillText(this.jlUserInfo.educationTypeName, edu_position, 180) //绘制分隔色块 ctx.fillStyle='#faf8f5'; ctx.fillRect(0, 200, this.cwidth, 10); //绘制求职意向 ctx.font = '17rpx Medium' // 字体大小 ctx.fillStyle = '#000' // 字体填充色彩 ctx.fillText('求职意向', 20, 240) //冀望职位 ctx.font = '14rpx Medium' // 字体大小 ctx.fillStyle = '#757575' // 字体填充色彩 ctx.fillText(`冀望职位:${this.qzyxData.jobPositionThirdName ? this.qzyxData.jobPositionThirdName : ''}`, 20, 270) //冀望地区 ctx.font = '14rpx Medium' // 字体大小 ctx.fillStyle = '#757575' // 字体填充色彩 let city = this.likeCity if(city.length > 16){ //判断长度 city = city.substring(0,17) + '...' } ctx.fillText(`冀望地区:${city}`, 20, 290) //冀望薪资 ctx.font = '14rpx Medium' // 字体大小 ctx.fillStyle = '#757575' // 字体填充色彩 let price = `${this.qzyxData.salaryMin}-${this.qzyxData.salaryMax}K` if(!this.qzyxData.salaryMin ){ //判断显示方式 price = '' } ctx.fillText(`冀望薪资:${price}`, 20, 310) //求职状态 ctx.font = '14rpx Medium' // 字体大小 ctx.fillStyle = '#757575' // 字体填充色彩 let job_status = this.stateTypeNameList[this.indexVal] ? this.stateTypeNameList[this.indexVal] : '' if(!this.qzyxData.salaryMin ){ //判断显示方式 price = '' } ctx.fillText(`求职状态:${job_status}`, 20, 330) //绘制分隔色块 ctx.fillStyle='#faf8f5'; ctx.fillRect(0, 350, this.cwidth, 10); //开始绘制二维码区域 //左侧疏导文字 ctx.font = '14rpx Medium' // 字体大小 ctx.fillStyle = '#000' // 字体填充色彩 ctx.fillText('啦啦啦啦', this.cwidth/3 - 49, 400) ctx.font = '14rpx Medium' // 字体大小 ctx.fillStyle = '#000' // 字体填充色彩 ctx.fillText('【长按辨认二维码】', this.cwidth/3 - 67, 420) ctx.font = '14rpx Medium' // 字体大小 ctx.fillStyle = '#757575' // 字体填充色彩 ctx.fillText('获取更多信息,进一步沟通', this.cwidth/3 - 84, 440) //绘制右侧二维码 ctx.drawImage(this.baseCode, this.cwidth/3*2, 370, 100, 100) } }) setTimeout(() => { // uni-app必须加上提早,不然显示不进去, 亲测 ctx.stroke(); let that = this ctx.draw(true,(ret)=>{ //必须加上 uniapp 没这儿玩意儿 显示不进去不比原生 不加能够显示 uni.canvasToTempFilePath({ // 保留canvas为图片 canvasId: 'myCanvas', quality: 1, complete(res) { that.pictureUrl = res.tempFilePath // uni.setStorageSync('filePath',res.tempFilePath) //保留临时文件门路到缓存 } }) }); }, 100) this.pictureOk = true },

April 1, 2022 · 3 min · jiezi

关于html5:城市JSON文件最全

http://blog.rziqee.cn/index.p...

March 14, 2022 · 1 min · jiezi

关于html5:h5-兼容性ios-滚动问题及可能的方

滚动事件addEventListener 应用 passive 改善的滚屏性能依据标准,passive 选项的默认值始终为false。然而,这引入了解决某些触摸事件(以及其余)的事件监听器在尝试解决滚动时阻止浏览器的主线程的可能性,从而导致滚动解决期间性能可能大大降低。 为防止出现此问题,某些浏览器(特地是Chrome和Firefox)已将文档级节点 Window,Document和Document.body的touchstart (en-US)和touchmove (en-US)事件的passive选项的默认值更改为true。这能够避免调用事件监听器,因而在用户滚动时无奈阻止页面出现。 var elem = document.getElementById('elem');elem.addEventListener('touchmove', function listener() { /* do something */ }, { passive: true });Copy to Clipboard增加passive参数后,touchmove事件不会阻塞页面的滚动(同样实用于鼠标的滚轮事件)您能够通过将passive的值显式设置为false来笼罩此行为,如下所示: /* Feature detection *//*特色检测*/var passiveIfSupported = false;try { window.addEventListener("test", null, Object.defineProperty({}, "passive", { get: function() { passiveIfSupported = { passive: true }; } }));} catch(err) {}window.addEventListener('scroll', function(event) { /* do something */ // can't use event.preventDefault(); // 不能应用 event.preventDefault()}, passiveIfSupported );在不反对addEventListener()的options参数的旧浏览器上,尝试应用它会阻止应用useCapture参数而不正确应用特色检测。 您无需放心根本scroll (en-US) 事件的passive值。因为无奈勾销,因而事件监听器无奈阻止页面出现。 ...

March 11, 2022 · 1 min · jiezi

关于html5:实现两个div的重叠

成果 代码 <div class="onelion-main"> <div class="onelion-left"> </div> <div class="onelion-right"> </div></div>----- style款式 -----.onelion-main { height: 200px; background: #ffa6a6; width: 200px; margin: 100px auto; position: relative; // 必须设置}.onelion-left { background: #333; opacity: 0.3; width: 50px; height: 50px;}.onelion-right { background: #333; opacity: 0.3; width: 50px; height: 50px; position: absolute; // 只有父级设置了position,能力绝对于父div布局。 top: 0; right: 0;}

March 8, 2022 · 1 min · jiezi

关于html5:flex布局中的flexbasisflexgrowflexshrink到底咋回事儿

flex布局是十分弱小的布局形式,它能轻易实现咱们能想到的大部分布局,相似圣杯布局、双飞翼布局等等,它非常灵活,兼容性也很好,在我的项目中常常被应用到。大多数同学应该都是从阮一峰老师的 这篇博文 理解到flex的,虽是15年写的,但毫不过期,仍然有很强的引导性。 然而阮老师对于flex-basis、flex-grow、flex-shrink这三个属性只是一笔带过,没有去深刻讲它,我始终对这三个属性都是云里雾里的(脑壳笨),在网上也未找到很好的解说,最近写页面写的比拟多,始终在用flex布局,有没搞懂的感觉很不难受,故本人钻研了一下,做下记录,若有谬误欢送斧正 根底demoHTML <div class="box"> <span class="item">1</span><span class="item">2</span><span class="item">3</span></div> CSS .box { width: 300px;height: 100px;border: 1px solid black;display: flex;}.item { font-size: 25px;color: white;display: inline-block;text-align: center;line-height: 100px;} flex-basisflex-basis属性定义了在调配多余空间之前,我的项目占据的主轴空间(main size)。浏览器依据这个属性,计算主轴是否有多余空间。它的默认值为auto,即我的项目的原本大小。 —— 阮老师博客定义 咱们先给每个item一个不同的width .item:nth-child(1) { width: 50px;background-color: red;}.item:nth-child(2) { width: 100px;background-color: rgb(0, 204, 255);}.item:nth-child(3) { width: 100px;background-color: rgb(0, 255, 64);} (容器flex布局,flex-direction默认为row,程度排列。align-items默认为stretch,item未设高度,填满整个容器。咱们没有给item设置flex-basis属性,默认值为auto) 当初咱们给第一个item给个flex-basis属性,值为100px .item:nth-child(1) { width: 50px;background-color: red;flex-basis: 100px;} 咱们发现第一个item的width被flex-basis代替了,所以咱们可得出 论断 item的flex-basis未设置或为auto时,item的width无效item的flex-basis有值时,width就被代替,有效了flex-growflex-grow属性定义我的项目的放大比例,默认为0,即如果存在残余空间,也不放大。 —— 阮老师博客定义 咱们还是先给每个item一个不同的width(跟下面的第一个一样的,我只是搬下来了) .item:nth-child(1) { width: 50px;background-color: red;}.item:nth-child(2) { width: 100px;background-color: rgb(0, 204, 255);}.item:nth-child(3) { width: 100px;background-color: rgb(0, 255, 64);} 父容器div.box的width有300px,然而三个item加起来才250px,还有50px的残余空间。若是此时你想这50px的残余空间被这三个我的项目以你的安顿来占满,那么flex-grow就排上用场了 ...

March 8, 2022 · 2 min · jiezi

关于html5:用HTML写淘宝静态网页

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>淘宝网!我喜爱</title> <style> *{ margin: 0; padding: 0; } li{ list-style:none; margin: 7px; } a{ text-decoration: none; } #box1{ width: 1901px; height: 30px; background-color: rgb(232, 240, 247); } #box3>li{ position: static; float: left; } #box5>li{ position: static; float: left; } #box4{ width: 570px; height: 10px; position: static; float: right; } #qqq{ display: none; } #zzz > a:hover{ color: #fefffe; } #box2{ width: 1901px; height: 10%; background-color: rgb(234, 248, 250); } #div_left{ width: 30%; height: 500px; float: left; background-color: rgb(241, 248, 248); position: static; } #div_content{ width: 40%; height: 30%; float: left; background-color: rgb(240, 247, 247); position: static; } #div_right{ width: 30%; height: 30%; float: left; background-color: rgb(245, 242, 248); position: static; } #di{ width: 20%; height: 70%; background-color: rgb(253, 252, 251); } #zi{ float: right; position: static; } #box6{ position: relative; top: 110px; } #a{ width: 300px; margin: 20px auto; font-size: 10px; } input{ width: 300px; border: 2px solid rgb(199, 46, 46); height: 40px; border-top-left-radius: 10px; border-top-right-radius: 10px; border-bottom-left-radius: 10px; border-bottom-right-radius: 10px; } #search{ width: 100px; height: 42px; background-color: blanchedalmond; } #b{ margin: 30px; right: -630px; } #jie{ right: -662px; } #box7{ float: right; position: relative; top: -30px; } </style></head><body> <div> <div id="box1"> <div id="box2"> <ul id="box3"> <li> <tr>地区 <tb> <select neme="card"> <option value="idcad" selected="selected">中国大陆</option> <option value="certificate">中国</option> <option value="certificate">日本</option> <option value="certificate">美国</option> <option value="certificate">泰国</option> <option value="certificate">俄罗斯</option> <option value="certificate">乌克兰</option> <option value="certificate">马来西亚</option> <option value="certificate">新西兰</option> </select> </tb> </tr> </li> <li id="zzz" style="color: rgb(206, 49, 49);"><a href="#">亲,请登录</a></li> <li>收费的登录</li> <li>手机逛淘宝</li> <li>网络无障碍</li> </ul> <div id="box4"> <ul id="box5"> <li>我的淘宝</li> <li id="#" style="color: red;">购物车</li> <li>收藏夹</li> <li>商品分类</li> <li>收费开店</li> <li>千牛卖家核心</li> <li>分割客服</li> </ul> </div> </div> <div id="box6"> <li> <img src="C:\Users\31753\Pictures\屏幕截图 2022-03-04 093044.png" width="100px" height="100px"> </li> </div> <div id="box7"> <li> <img src="C:\Users\31753\Pictures\屏幕截图 2022-03-03 194711.png" width="90px" height="90px"> </li> </div> <div id="a"> <input type="text" name="search" placeholder="|请输出关键字!!"> </div> <div id="b" style="position: relative"> <li> <a href="#">新款连衣裙</a> <a href="#">四件套</a> <a href="#" style="color: red;">潮流T恤</a> <a href="#">时尚女鞋</a> <a href="#">短裙</a> <a href="#">半生裙</a> <a href="#">男士外套</a> <a href="#">墙纸</a> <a href="#">行车记录仪</a> <a href="#">新款男鞋</a> <a href="#">耳机</a> <a href="#">时尚女包</a> <a href="#">沙发</a> </li> </div> <div id="jie" style="position: relative;"> <li> <a href="#" style="color: rgb(224, 138, 138);">主题市场</a> <a href="#" style="color: red;">天猫</a> <a href="#" style="color: red;">聚划算</a> <a href="#" style="color: aqua;">天猫超市</a> <a href="#">|</a> <a href="#">司法拍卖</a> <a href="#">飞猪游览</a> <a href="#">天天特卖</a> <a href="#">|</a> <a href="#">造点新货</a> <a href="#">苏宁易购</a> <a href="#">淘宝心选</a> <a href="#">智能生存</a> <a href="#">淘宝直播</a> </li> </div> <div id="box8"> <div id="div_left"> <div id="zi"> <li> <h3> <a href="#"></a> <a href="#">女装</a> <a href="#">/</a> <a href="#">内衣</a> <a href="#">/</a> <a href="#">家居</a> </li> <li> <h3> <a href="#"></a> <a href="#">女鞋</a> <a href="#">/</a> <a href="#">男鞋</a> <a href="#">/</a> <a href="#">箱包</a> </li> <li> <h3> <a href="#"></a> <a href="#">母婴</a> <a href="#">/</a> <a href="#">童装</a> <a href="#">/</a> <a href="#">玩具</a> </li> <li> <h3> <a href="#"></a> <a href="#">男装</a> <a href="#">/</a> <a href="#">静止户外</a> </li> <li> <h3> <a href="#"></a> <a href="#">美妆</a> <a href="#">/</a> <a href="#">彩妆</a> <a href="#">/</a> <a href="#">个护</a> </li> <li> <h3> <a href="#"></a> <a href="#">手机</a> <a href="#">/</a> <a href="#">数码</a> <a href="#">/</a> <a href="#">企业</a> </li> <li> <h3> <a href="#">️</a> <a href="#">大家电</a> <a href="#">/</a> <a href="#">生存电器</a> </li> <li> <h3> <a href="#"></a> <a href="#">零食</a> <a href="#">/</a> <a href="#">生鲜</a> <a href="#">/</a> <a href="#">茶酒</a> </li> <li> <h3> <a href="#">️</a> <a href="#">厨具</a> <a href="#">/</a> <a href="#">收纳</a> <a href="#">/</a> <a href="#">清洁</a> </li> <li> <h3> <a href="#">️</a> <a href="#">家纺</a> <a href="#">/</a> <a href="#">家饰</a> <a href="#">/</a> <a href="#">鲜花</a> </li> <li> <h3> <a href="#"></a> <a href="#">图书音像</a> <a href="#">/</a> <a href="#">文具</a> </li> <li> <h3> <a href="#"></a> <a href="#">医药健保</a> <a href="#">/</a> <a href="#">进口</a> </li> <li> <h3> <a href="#"></a> <a href="#">汽车</a> <a href="#">/</a> <a href="#">二手车</a> <a href="#">/</a> <a href="#">用品</a> </li> <li> <h3> <a href="#"></a> <a href="#">房产</a> <a href="#">/</a> <a href="#">装璜家具</a> <a href="#">/</a> <a href="#">建材</a> </li> <li> <h3> <a href="#"></a> <a href="#">手表</a> <a href="#">/</a> <a href="#">眼镜</a> <a href="#">/</a> <a href="#">珠宝饰品</a> </li> </div> </div> <div id="div_content"> <li> <img src="C:\Users\31753\Pictures\屏幕截图 2022-03-03 163021.png"> </li> </div> <div id="div_right"> <li> <img src="C:\Users\31753\Pictures\屏幕截图 2022-03-03 162742.png"> </li> </div> </div> <div id="box9"> <div id="di"> <li> <img src="C:\Users\31753\Pictures\屏幕截图 2022-03-03 154047.png"width="1901" height="600px"> </div> </li> </div> <div id="box10"> <li> <img src="C:\Users\31753\Pictures\屏幕截图 2022-03-04 094458.png"width="1901"height="600px"> </li> </div> <div id="box11"> <li> <img src="C:\Users\31753\Pictures\屏幕截图 2022-03-04 094532.png" width="1901" height="800px"> </li> </div> </div> </div></body></html>款式图 ...

March 5, 2022 · 4 min · jiezi

关于html5:你要找的Vue3干货都在这里了干不干你说了算

1 表单绑定1.文本与多行文本的绑定01 文本<input v-model="msg" /><p>{{ msg }}</p>02 多行文本<p style="white-space: pre-line;">{{ msg2 }}</p><br /><textarea v-model="msg2" ></textarea>2.复选框checkbox01 单个复选框<input type="checkbox" id="checkbox" v-model="checked" /><label for="checkbox">{{ checked }}</label>02 多个复选框<div id="app"> <input type="checkbox" id="name1" value="小明" v-model="checkedNames"> <label for="name1">小明</label> <input type="checkbox" id="name2" value="小红" v-model="checkedNames"> <label for="name2">小红</label> <input type="checkbox" id="name3" value="mumu" v-model="checkedNames"> <label for="name3">mumu</label> <br> <span>抉择的名字是: {{ checkedNames }}</span></div>data() { return { checkedNames: []}3.单选框radio<label><input type="radio" value="1" v-model="sex">男</label><label><input type="radio" value="2" v-model="sex">女</label><label><input type="radio" value="3" v-model="sex">窃密</label><p>{{sex}}</p>data() { return { sex:1}4.抉择框select<div id="v-model-select" class="demo"> <select v-model="selected"> <option disabled value="">请抉择</option> <option>学前班</option> <option>小学</option> <option>初中</option> </select><p>{{select}}</p>5.表单修饰符.lazy 你能够增加 lazy 修饰符,从而转为在 change 事件之后进行同步,在“change”时而非“input”时更新 <input v-model.lazy="msg" />.number 如果想主动将用户的输出值转为数值类型,能够给v-model 增加number 修饰符 <input v-model.number="age" type="text" />.trim 过滤首尾空白 ...

February 28, 2022 · 2 min · jiezi

关于html5:H5音乐播放器小清新版

你是否因为须要一个网页音乐播放器而苦苦翻阅百度?而且你搜寻到的播放器无论在UI交互还是性能方面都差强人意?兴许你曾用过网易云或者QQ音乐等网页插件,但还是发现有一些问题,比方:不能展现歌词,不能保护本人的歌单,或者切换页面后音乐不能放弃播放。如果以上有一条戳中了你,那么这篇文章兴许能够帮到你。为了不让兄弟们说我啰嗦,我就间接上图了: 如果你感觉看着还行,有趣味能够到 我的博客右下角 把玩一下。 其实这个来源于我在百度中搜到的一个资源(原资源网址),修复了它存在bug,并退出了音量控制,歌词展现性能,而且封装成了Vue组件,如果你感兴趣能够到这里查看源代码。 还请喜爱的敌人给个start哟。

February 25, 2022 · 1 min · jiezi

关于html5:css灵感模拟3D地球

在css中有3d变换的办法,个别用它做一些矩形的成果,如果是圆形则比拟艰难了。这里用一种障眼法的形式实现了3d的成果。 点击这里查看无污浊广告版实现办法 <div class="css-inspiration-earth-planet-body"> <div class="css-inspiration-earth-planet-earth"></div></div><style>:root { --stars: 5vw 15vh 2px white, 1vw 33vh 0px white, 2vw 25vh 2px white, 10vw 10vh 2px white, 12vw 20vh 0px white, 30vw 15vh 2px white, 16vw 5vh 2px white, 24vw 10vh 0px white, 32vw 40vh 0px white, 33vw 35vh 2px white, 12vw 38vh 2px white, 24vw 10vh 0px white, 33vw 5vh 2px white, 20vw 10vh 0px white, 80vw 10vh 2px white, 62vw 20vh 0px white, 60vw 15vh 2px white, 70vw 7vh 0px white, 62vw 50vh 0px white, 65vw 35vh 2px white, 64vw 10vh 0px white, 85vw 2vh 0px white, 92vw 40vh 0px white, 75vw 35vh 2px white, 90vw 10vh 0px white, 80vw 33vh 2px white, 80vw 10vh 0px white, 95vw 2vh 2px white, 95vw 25vh 0px white, 65vw 25vh 0px white, 85vw 20vh 0px white, 75vw 17vh 0px white, 25vw 25vh 0px white,95vw 95vh 2px white, 1vw 90vh 0px white, 2vw 80vh 2px white, 10vw 70vh 2px white, 12vw 65vh 0px white, 30vw 80vh 2px white, 16vw 85vh 2px white, 14vw 50vh 0px white, 5vw 55vh 0px white, 20vw 58vh 2px white, 80vw 38vh 2px white, 90vw 90vh 0px white, 90vw 95vh 2px white, 88vw 10vh 0px white, 80vw 10vh 2px white, 62vw 20vh 0px white, 60vw 15vh 2px white, 70vw 7vh 0px white, 62vw 50vh 0px white, 65vw 35vh 2px white, 64vw 10vh 0px white, 85vw 55vh 0px white, 92vw 60vh 0px white, 75vw 67vh 2px white, 60vw 80vh 0px white, 56vw 95vh 2px white, 75vw 70vh 0px white, 70vw 96vh 2px white, 79vw 87vh 0px white, 80vw 78vh 0px white, 85vw 70vh 0px white, 90vw 80vh 0px white, 25vw 25vh 0px white;}.css-inspiration-earth-planet-body { height: 100vh;}.css-inspiration-earth-planet-body { background: #060817; overflow: hidden; display: flex; align-items: center; justify-content: center;}.css-inspiration-earth-planet-body:before { content: ' '; position: absolute; top: 0; left: 0; right: 0; bottom: 50%; border-radius: 100%; width: 3px; height: 4px; z-index: -1; opacity: 0.3; box-shadow: var(--stars);}.css-inspiration-earth-planet-earth { perspective: 400vmin; transform-style: preserve-3d; width: min(80vmin, 320px); height: min(80vmin, 320px);}.css-inspiration-earth-planet-earth::before { content: ''; position: absolute; width: 100%; height: 100%; top: 0%; left: 0%; background: url(../../../../uploads/css/css-inspiration-earth-planet/earth.jpg) repeat-x; background-size: cover; border-radius: 50%; animation: rotate 30s infinite linear; box-shadow: -80px -15px 80px 10px rgba(0,0,0,.9) inset, -10px 0px 15px -7px #f0df1759;}@keyframes rotate { 0% { background-position: 0px 0px; } 100% { background-position:1200px 0px; }}</style>

January 23, 2022 · 2 min · jiezi

关于html5:CSS揭秘特殊形状绘制自适应椭圆梯形和平行四边形

目录:1、自适应椭圆的绘制2、平行四边形的绘制3、切角成果4、梯形标签页1、自适应椭圆的绘制 问题形容:咱们晓得只有给border-radius设定固定值或百分比就能实现圆角的成果,但椭圆要如何实现呢?实际上咱们能够用border-radius独自设定指定程度和垂直半径,造成椭圆角的成果,如下代码的成果就是四个角度是椭圆的角。 width: 200px;height: 100px;background-color: aqua;border-radius: 50px/10px;这时候再设定值为百分比,让椭圆角度自适应变动,就能实现椭圆成果。border-radius: 50% / 50%;另外border-radius能够独自设置四个角的程度和垂直半径,形式就是:border-radius:四个程度/四个垂直,如:border-radius: 50%/ 0 100% 100% 0;就能画出如下的成果,十分好用: 2、平行四边形的绘制 问题形容:咱们实现平行四边形首先想到的办法就是transform进行形变,但这样会影响道盒子外部的内容,有没有其余代替计划呢?width: 200px;height: 100px;background-color: skyblue;margin-left: 200px;transform: skewX(-45deg);计划一:应用嵌套元素是最简略的解决方案,给内容再加上一层盒子,设置相同方向的歪斜的transform就oktransform: skewX(45deg);计划二:伪元素外围的思维就是让伪元素代替实现平行四边形的成果,这样既不会影响内容的显示,也不须要再增加元素,后续其余背景图形的实现都能够参照伪类元素的实现。 .box2::before { content: ''; /* 用伪元素来生成一个矩形 */ width: 200px; height: 100px; position: absolute; top: 0; right: 0; bottom: 0; left: 0; z-index: -1; background: #58a; transform: skew(45deg); margin-left: 200px; } 3、切角成果 什么是切角呢,理论就是四边形的某个角被切除的成果,如下:具体实现依附的还是突变,只有加一行代码就能实现 background: linear-gradient(-45deg, transparent 15px, #58a 0);然而如果要实现两个或更多的切角该怎么实现呢,首先尝试写两次命令,发现前面的背景设置会笼罩后面的,导致生效这里通过background-size设置多个背景的大小,让两个适度别离占据两倍,实现两个切角。 background: #58a;background: linear-gradient(-45deg, transparent 15px, #58a 0) right, linear-gradient(45deg, transparent 15px, #655 0) left;background-size: 50% 100%;background-repeat: no-repeat;相似的也能够实现四个切角的成果 ...

January 13, 2022 · 1 min · jiezi

关于html5:森林消防智慧预警火灾监测-Web-GIS-可视化平台

前言森林火灾是一种突发性强、破坏性大、处理救助较为艰难的自然灾害。2021 年前三季度全国共产生森林火灾 527 起,受益森林面积约 2628 公顷,15 人死亡;产生草原火灾 12 起,受益草原面积约 3388 公顷。 森林防火,重在预防。当火灾产生时,要使用无效、迷信的办法和先进的扑火设施及时进行扑救,最大限度地缩小火灾损失。 传统发现火情的方法,通常依赖人工巡逻的办法,效率低下,因为森林大都版图广大,间隔城市边远。卫星遥感监测森林火灾是近些年来比拟广泛的森林火险监测伎俩,具备覆盖范围大、及时迅速、间断残缺的特点。 成果展现火灾定位通过 Hightopo 自研引擎 HT 联合 GIS 出现球面地图,对整个地球表层空间中的无关地理分布数据进行显示和形容,再利用无人机联合森林摄像机进行森林火灾监测。利用古代摄影测量技术进行火灾自动识别,实现对森林火灾信息进行全面、粗疏、精确地监测,可对森林火灾预警和扑救指挥工作提供实用的决策参考信息。 HT for Web GIS 产品反对对不同地图瓦片服务或数据、航拍歪斜摄影实景的 3DTiles 格局数据以及城市建筑群等不同的 GIS 数据的加载。同时,联合BIM 数据轻量化、三维视频交融以及 2D 和 3D 的无缝交融等技术劣势,在 GIS 零碎中对海量的 POI 数据、交通流量数据、布局数据,现状数据等进行多样化的可视化展现。 HT 3D 界面和 GIS 界面可通过按钮随便切换,实用于不同的应用场景。 HT for Web GIS 可能与 3D 场景精确同步,既保留了 GIS 引擎的成果和性能,又不去限度设计师在 3D 场景中的施展,保障了火灾救济时良好的可视化成果。 通过 HT for Web GIS 实现火灾地位的精准定位,实现疾速救济。在 GIS 界面能够将起火点准确到具体的县,比方四川丹巴县,再依据地形地貌确定起火区域。 GIS 通常和 GPS 联合应用,对于大范畴的、露天的巡更巡检,巡更人员手持 GPS 巡检器,实时接管 GPS 卫星定位音讯(工夫、经纬度),并按事后设定的工夫距离主动发送或者在特定地点手动发送定位信息到无线通讯前置机。无线通讯前置机在收到定位信息后将数据传输到管理系统平台,系统软件采纳 GIS 电子地图技术,动态显示和回放巡检轨迹,交由 GIS 剖析可得该起火点的详细信息。 ...

January 10, 2022 · 1 min · jiezi

关于html5:Shopify如何选品中文教程-–-评估所选品的产品和利基市场的准则下

潜在的市场规模有多大? 市场规模可能难以确定,但依据一些已有的教训猜想,你可能会理解潜在的市场规模。例 如,在25-40岁之间迎接怀孕女性的产品可能曾经有足够的市场。然而,一个在25-40岁且喜爱朋克摇滚音乐的孕妇的产品市场可能会狭隘。 (比方Daneson,精油牙签,称为牙签中的贵族。依据具体市场,狭隘的市场规模有可能使其更容易上市,从而使得像Daneson这样的产品可能浸透市场,并且更无效地捕获市场。)知识点:对于很多企业来说通常是不可能准确确定市场规模的,但也有一些形式能够更好地理解市场规模。谷歌趋势(Google Trends)是一个很好的终点,不是确定市场规模,而是要确定市场需求的轨迹。通过谷歌趋势你能够找到你的产品在其余中央发售产品理念,并查看评论的数量和品质。竞争格局如何?你抉择的产品和利基的竞争格局是什么?你是第一个上市的吗?是否曾经有几个竞争对手,或市场饱和,是否卖雷同的产品或针对同一个利基?如果您是第一次上市,您将须要进行大量的市场钻研,以确定事实上市场对您的产品感兴趣。如果有几个竞争对手曾经在这个畛域,他们仿佛做得比拟好,这可能是一个很好的迹象,市场已被验证。如果市场上有很多竞争对手,这也是市场已被验证的一个迹象,然而你可能须要确定如何将你的品牌和产品与竞争对手的陆地中辨别开来,以便开掘属于本人的定位。知识点:Google搜寻和SimilarWeb将帮忙您发现以后的市场上的参与者。 Google的关键字工具能够通知你所选关键词的近似搜寻量,并通知你它们的竞争力(意味着有多少其他人/企业在这些词上出价)。请记住对你的关键字招标的人越多,他们会越低廉。这是一个时尚,趋势,稳固还是一直增长的市场? 骑着时尚后退可能是危险的,一个趋势能够是无利可赚的,稳固的市场是平安的,一直增长的市场是现实的。理解您的产品和利基在哪里对你的胜利或失败有着重要作用。产品在本地可用吗? 当地现有的产品意味着消费者在线购买产品的机会较小。然而,一个独特的或难以找到的产品在当地不可用,就象征人们通过在线寻找并购买它的机会会增长。知识点:查找你所选的产品在本地是否可用的最简略的办法之一,就是在Google上搜寻你的产品+你的城市名称。指标客户是谁? 你不须要具体定义精确的客户角色,但你应该理解你可能会销售的客户类型及其在线购买能 力。如果您有适宜青少年的产品,请务必记住,大多数青少年没有信用卡反对在线购物。同样,你面向生产很低的群体,你可能会发现他们不想在线购买。利润点是什么? 与你对产品的远大理想想必,思考产品的特定利润是至关重要的。当你开始在线销售时,你很快会发现有很多小费用会进入您的利润,因而,须要有一个弱小的利润点将为你提供必要的缓冲,以排汇这些渺小的老本。潜在销售价格是多少? 销售便宜的产品意味着你要售出大量的产品能力获取不错的利润。同时,随着数量的减少, 客户服务需要也减少以及其余潜在的减少。另外一方面,销售十分低廉的产品意味着须要更长的周期和更加挑剔的客户。 通常会举荐产品价格位于75至150美元之间,因为它最大限度地缩小了寻找大量客户来取得适合利润的需要,并且依然可能为您提供营销和经营老本的缓冲。你能提供订阅吗? 向现有客户销售更多的商品比寻找新客户更容易,且老本更低。提供订阅的业务能够让你主动向同一客户进行屡次销售。你的产品尺寸和分量是多少? 产品尺寸和分量可能会对你的销售产生重大影响。许多客户冀望收费送货,并且将运费老本退出商品价格中并不总是见效。所以这意味着这些老本往往会威逼你的利润。如果你决定让客户承当运费,你会发现受到高运费的冲击后,可能会影响你的销量。你的产品是否耐用? 你的产品是否耐用或易碎?易碎的产品可能会比拟麻烦,因为它将使您减少包装老本,而且须要破费很多工夫沟通这个问题,所以也会波及工夫老本。你的产品是季节性的吗? 属于季节性需要的产品的现金流是不稳固的,虽说一些季节性是好的,然而一个现实的产品是可能在一年里的都有稳固的现金流。如果你抉择高度季节性的产品,你可能须要提前思考如何克服季节性,可能通过在旺季向不同的国家进行营销。产品是有激情,能缓解苦楚还是能够解决问题? 在最早的博文中有探讨过,但富裕销售激情,加重苦楚或解决问题的产品总是有劣势的。另外一个益处是,当您销售的产品满足这些要求之一,你的营销老本将会升高很多,因为客户正在踊跃寻求解决方案,而不是你必须大量推销产品能力找到他们,而是客户被动找到你。你的产品周期是? 一个产品常常须要一直地更改或更新是有危险的。这类型的产品存在周期完结之前卖不出的危险。在进入销售或具备失常营业额的产品之前,理解您的产品周期,并制订相应的打算至关重要。您的产品是否可耗费或一次性应用? 消费品或一次性产品基本上通过对产品的使用寿命或者工夫限度,给客户短缺的理由来回购,从而使同个客户屡次生产变得更加天然。产品是否易腐烂? 易腐产品对于任何人来说都是十分冒险,通常不倡议作为跨境电商产品。因为高度易腐的产品须要疾速的运输,运输可能是低廉的。是否有任何限度或规定? 在你推出产品之前,你须要确保对产品抉择没有任何法规或限度。至多你要确保它们是可治理的。你的产品是否可扩大? 当你在启动阶段时,你将难以思考将来并拓展业务,但从一开始就应该将可扩展性纳入业务模式。如果你的产品是手工制作或难以找到的资料,请思考如果你的业务腾飞,如何扩大 它。你是否外包制造业?你的员工数量是否会随着订单数量的减少而减少,还是能维持一个小团队? 相干文章 简略粗犷shopify店铺,月利润竟5位数!【财报解读】Q1营收、GMV双双实现翻倍,电商黑马Shopify崛起后的后劲是?在Shopify上做SEO文章博客的益处Shopify工作原理是什么?它是如何工作的?更多shopify教程、外贸推广、谷歌SEM、谷歌SEO等相干教程尽在gzxxmu本文由西木建站 Shopify 阿里云 公布!

January 8, 2022 · 1 min · jiezi

关于html5:Shopify如何选品中文教程-–-最后一课

寻找在线产品不是一件容易的事件。即便有一百万种产品能够在网上销售,但放大并抉择一种不是一个小工程。很多时候,创业者陷入困境,是因为他们试图找相对完满的产品,但从未尝试开始。状况是真的没有完满的产品。有坏,有好,有十分好的产品。除了不好的产 品,好的和十分的产品能够是你完满的产品,只有你置信长期愿景,你违心致力工作。不要违反规范 使产品胜利的起因不仅仅是Google上每个月搜寻次数,或者是利基市场的低水平竞争。尽管咱们在本指南中所看到的评估肯定会疏导你走向正确的方向,但依然无奈取代或发明优质产品、减少价值、执行很棒的市场营销、提供卓越的客户服务和长期承诺的产品。持续做你的钻研,但不要让每一个小负面点让你瘫痪。冲洗并反复 如果你亲密关注本指南,但依然对你的产品抉择不自信,请反复此过程。你能够随时尝试通过抉择略微不同的利基市场来从新评估你的产品理念。这些轻微的调整能够在你的产品理念和业务的胜利中产生重大的影响。或者,你也能够抉择齐全废除你的产品理念,并开始寻找新的产品创意。放弃后退 最须要记住的是放弃后退。许多创业者会陷入一直寻找和评估思维的恶性循环,永远不会找到难以捉摸的完满产品,从而没有理论开始业务,这个时代成为电商创业者最好的事件之一是,你的许多想法能够以极少的钱开始。 尽管很多人认为,大多数胜利的创业者在开始业务之前,他们的产品和利基有100%的确定性,但通常状况并非如此。他们中的大多数人对于事件停顿如何会产生恐怖和保留。尽管如此,他们也向前迈进。 尽管守业是一个旅程,而不是一场较量,旅程依然从第一步开始。给本人一个最初期限,如果你找不到你完满的产品,开始看你开始时最好的观点。 相干文章 企业自助建站靠谱吗?自助建站平安吗?深度解析:外贸B2B企业建站“拦路虎”Shopify 独立站收费流量获取办法Shopify主题:如何无效解决Shopify的主题问题更多shopify教程、外贸推广、谷歌SEM、谷歌SEO等相干教程尽在:gzxxmu本文由西木建站 Shopify 阿里云 公布!

January 5, 2022 · 1 min · jiezi

关于html5:Shopify如何选品中文教程-–-验证产品与利基Niche

在本文之前,你曾经通过二次钻研来评估您的想法。当初是时候来验证您的想法,初步钻研你抉择的具体产品,选定的利基市场和指标市场。验证你的想法能够使您更清晰地理解您产品理念的后劲。 尽管有很多不同的形式验证你的想法,但目标是雷同的,对于如何取得买家对你产品和利基抉择产生趣味的明确信号。上面,咱们将探讨一些最常见的产品验证办法,你能够立刻应用并利用于您的产品创意中。 你不必感觉到是被迫应用这里的策略,然而,认真抉择一个或两个概述的办法能够减少您对你产品和利基抉择需要的了解。 在本文结尾,你应该有足够的信念持续你的产品理念,并开始寻找供应商,或晓得你是否应该回到绘图板。一,考察您的指标市场 在收集二次钻研后,当初是依据你的具体产品,利基抉择以及指标人群能够开始你本人考察的时候了。最快最便宜的办法是应用简略的在线考察工具,要编写好的产品考察并可能从中取得最大收益,你在考察问题中应该蕴含及以下元素:指标对象验证:您会想从发问要害的问题来验证您的受众群体。向谬误的人考察您的产品理念是齐全没有意义的。 并不是所有的答案都是一样的。最后的趣味:接下来,你须要确定人们是否从实质喜爱你的产品理念,他们喜爱什么以及他们不喜爱什么。购买用意:最初,你须要提出一些问题来掂量购买用意。许多人,特地是你意识的,必定会过分踊跃的,所以让人们进行一些测试很重要,看看他们是否真的会购买你的产品。 如果在你的指标市场你不意识任何人,不要紧。有几种付费服务能够帮忙你做考察,像Google客户考察或Survata。这些服务容许你创立调查表,而后代表你向定义的指标受众群体中的人员分公布考察。二,通过社交账户和电子邮件预售 依据你的产品和利基抉择,你的社交媒体和电子邮件联系人列表中的联系人可能非常适合用于测试你的产品理念。在投入很多工夫和金钱进入业务之前,没有什么比实际上进行销售更无效。Sumo创始人的Noah Kagan在他试图验证他的新服务想法时,就这样做了。NoahKagan通过社交账户和邮件分割了他认为对他的潜在新服务感兴趣的敌人和熟人,并询问他们是否想购买(所有都在任何产品销售之前),在收到不错的反应后,他决定开始他的一个新我的项目。三,创立着陆页 另外一个更好地理解趣味和需要的简略办法是用你的价值主张和电子邮件设置一个登陆页 面。通过将流量疏导到本网站并收集电子邮件,你能够开始更好地理解你的产品的真正兴 趣,并开始与潜在客户建设关系。着陆页往往能通过清晰的导航,粗劣的排版来促使受众点 击进入相干的业务页面。无论你的指标是促使用户间接去在线商店购买商品,还是先订阅你的新闻周刊,一个优质的着陆页都能大大提高转化率。 你能够应用Shopify的预启动登录页,并从EmailChimp或Aweber等电子邮件提供者嵌入电子邮件注册表单。四,开一个测试商店 最初,测试和验证你的想法需要的最好和彻底的办法之一是设置一个测试商店。在《每周工作4小时》这本书中有探讨过这种办法,你创立一个产品的在线商城,并在一段时间内进步流量,以便测试消费者对产品的趣味和需要。论断 如果你曾经做到了这一点,你应该对你的产品,你选定的利基以及潜在的需要有一个很好的理解。当初是时候查看你收集的次要和主要的信息,并对一个信息都仔细观察。你将须要认真评估每个赞成的想法以及拥护的想法,并决定是否能够围绕你的想法创立一个可行的业 务。 相干文章 企业自助建站靠谱吗?自助建站平安吗?深度解析:外贸B2B企业建站“拦路虎”Shopify 独立站收费流量获取办法Shopify主题:如何无效解决Shopify的主题问题更多shopify教程、外贸推广、谷歌SEM、谷歌SEO等相干教程尽在:gzxxmu本文由西木建站 Shopify 阿里云 公布!

January 5, 2022 · 1 min · jiezi

关于html5:小程序开发公司能为企业带来那些效益

小程序开发是企业进微信营销的一种形式,通过小程序开发,企业能够在微信上建设本人的官网展现平台,还能够为客户提供优惠商城服务,而且小程序无需下载安装、关上微信即可应用,可能帮忙企业进行更加个性化的营销推广流动。小程序开发公司为企业带来哪些效益?1、加强用户粘性,晋升用户体验开发微信小程序,晋升了中小企业的营销推广,有了小程序加上企业之前经营的订阅号或服务号,相互影响,企业联合这种微信营销的形式,晋升了用户体验,同时也加强用户粘性。2、搭建新的营销体系传统企业要想施展更多的劣势必须根据产品+线下+线上三点同时并行,借助微信小程序欠缺网络营销服务零碎,间接在微信生态体系内实现商业模式的闭环。3、能够晋升流量微信小程序是基于微信的,企业能够借助微信平台晋升更多的流量。对企业的营销推广有更多的帮忙。4、节约开发成本微信小程序的呈现,不仅仅是为企业升高了程序的开发成本,小程序开发,节约工夫周期,还能够让企业利用微信曾经有的劣势,进行推广,联合企业微信公众号的营销劣势,用户只须要扫描二维码便可应用。5、节约资源微信小程序开发能够很大水平上帮助企业没有资金和资源的中小企业和个体户。对于中小企业来说是比拟不错的抉择。6、利用粉丝轻松盈利微信小程序一个最大的益处就是,他能够基于企业原有的微信公众号的粉丝来做推广。小程序开发公司云之梦科技领有过硬的开发技术为您打造优质商城零碎,涵盖小程序、微信H5、手机APP等多客户端!几百多家的胜利案例与资深的业余技术团队,能够帮忙企业解决很多技术上的难题。

December 31, 2021 · 1 min · jiezi

关于html5:Shopify如何选品中文教程-–-跨境电商的八种商业机会类型

找到优质的产品在线上销售并且盈利,是一项艰巨的工作,除非你从一开始就有一个十分好的想法,并且这就是你开始业务的能源。通常有数千种可能的抉择,但所有仿佛在以前就曾经实现过一千次。那么在所有这些产品抉择中,哪个产品能够开始开掘并找到黄金?寻找产品的第一步就是可能辨认并发现一些未被开掘的优质产品所存在的各种机会。 这八个潜在的机会类型你必须相熟。理解这八种商业机会类型是帮忙您辨认优质产品和利基机会的要害。咱们首先来看看这八种机会类型,而后咱们将具体介绍一下这些机会:揭秘“关键词”的机会建设乏味和有吸引力的品牌辨认并解决消费者疼痛点 确定并满足生产真的爱好 追寻本人的激情寻找机会缺口利用本人的教训和特长早日把握趋势 上述每个机会波及不同的心态和办法。让咱们更具体地探讨一下:1,揭秘“关键词”的机会天然流量能够说是电子商务的圣杯。如果做得正确,谷歌和其余搜索引擎将处分你大量统一且有针对性的流量。在一个利润率很低的世界,付费广告渠道变得越来越贵,这正是使具备关键词机会的产品有利可图。 寻找关键词机会包含战略性地寻找一个基于在谷歌和Bing等搜索引擎中可能搜寻到关键词的产品或利基,而后找大量辨认度高然而竞争低的搜寻字词。关键词钻研可能波及到一些技术性,所以这个机会是基于对关键词的钻研和对搜索引擎优化(SEO)的坚实基础了解。如果您打算直发(Dropship)的产品,这个“关键词”机会可能会十分试用,并且有利润可赚。因为货物的利润很薄,很多时候很难无效地应用付费广告渠道来做推广。2,建设一个乏味和有吸引力的品牌与后面的办法不同,创立一个品牌也意味着创立了消费者群体。创立品牌的路径包含对潜在客户的高度理解,制订独特品牌,并且在客户心中你有独特的中央。如果竞争强烈,这种构建跨境电商的办法能够将你与竞争对手辨别开来,并且特地有 效。3,辨认并解决消费者疼痛点建设弱小业务的最佳办法之一就是解决消费者的痛点。解决痛点的产品能够赚钱,因为客户正在踊跃寻求解决这些问题的解决方案。你要牢记痛点并不一定意味着身材的苦楚,它也可能包含令人丧气,耗时或蹩脚的经验。 4,满足消费者的爱好这是事实。消费者往往破费更多的钱来反对他们的激情和喜好。投合消费者的激情也有额定的益处,包含与品牌更深刻的互动,品牌忠诚度和口碑营销的减少5,追随你本人的激情有人认为抉择以本人集体的激情为根底的产品或利基会是一个劫难。然而,事实并非如此, 实际上证实是可能赚钱的。 围绕着你的激情创立一个我的项目最大的益处之一是,当你在艰难期间,你会百折不挠。这一点不应该被低估,因为放弃积极性是建设胜利的跨境电商的关键因素。6,寻找机会差距长于寻找并把握机会或特色缺口能够赚钱。这种机会包含揭发产品中的问题、产品缺点或利用产品的进行营销。机会缺口可能是以后竞争对手未实现市场的模式,而你以改良或附加产品特色的性质存在,或者甚至可能以你本人的营销能力的模式展示。7,利用本人的教训和特长利用本人的教训和专业知识会具备很强的竞争劣势。将你的专业知识转变为跨境电商业务是进入市场的一个很好的形式,而对其他人进入则是门槛。8,尽早把握趋势充沛把握一个趋势,能够对新业务产生微小的影响。它让你有机会在其他人之前在消费者心中建设以本人为首领的网站。尽早把握趋势对你的SEO也会产生重大影响,因为你将有机会成为Google和Bing等搜索引擎针对新趋势搜寻字词进行索引的首批网站之一。这能够帮忙您疾速爬上搜寻排名榜首。 理解上述八个机会中的每一个机会对于你在开启跨境电商并寻找完满产品都有至关重要的作用。 相干文章 外贸建站要如何进步流量?外贸建站推广引流办法美国互联网公司内卷-shopify独立站在Shopify上做SEO文章博客的益处Shopify工作原理是什么?它是如何工作的?更多shopify教程、外贸推广、谷歌SEM、谷歌SEO等相干教程尽在gzxxmu本文由西木建站 Shopify 阿里云 公布!

December 28, 2021 · 1 min · jiezi

关于html5:HTML5中的自定义属性总结

在HTML5中增加了data-的形式来自定义属性,所谓data-实际上上就是data-前缀加上自定义的属性名,应用这样的构造能够进行数据寄存。应用data-*能够解决自定义属性凌乱无治理的现状。 读写形式data-*有两种设置形式,能够间接在HTML元素标签上书写 <div id="test" data-age="24"> Click Here</div>其中的data-age就是一种自定义属性,当然咱们也能够通过JavaScript来对其进行操作,HTML5中元素都会有一个dataset的属性,这是一个DOMStringMap类型的键值对汇合 var test = document.getElementById('test');test.dataset.my = 'Byron';这样就为div增加了一个data-my的自定义属性,应用JavaScript操作dataset有两个须要留神的中央 咱们在增加或读取属性的时候须要去掉前缀data-*,像下面的例子咱们没有应用test.dataset.data-my = ‘Byron’;的模式。如果属性名称中还蕴含连字符(-),须要转成驼峰命名形式,但如果在CSS中应用选择器,咱们须要应用连字符格局为方才代码追加写内容 <style type="text/css"> [data-birth-date] { background-color: #0f0; width:100px; margin:20px; }</style><style type="text/css"> test.dataset.birthDate = '19890615';</style>这样咱们通过JavaScript设置了data-birth-date自定义属性,在CSS样式表为div增加了一些款式,看看成果 读取的时候也是通过dataset对象,应用”.”来获取属性,同样须要去掉data-前缀,连字符须要转化为驼峰命名 <style type="text/css"> var test = document.getElementById('test'); test.dataset.my = 'Byron'; test.dataset.birthDate = '19890615'; test.onclick = function () { alert(this.dataset.my + ' ' + this.dataset.age+' '+this.dataset.birthDate); }</style> getAttribute/setAttribute有些同学可能会问这和getAttribute/setAttribute除了命名有什么区别吗,咱们来看一下 var test = document.getElementById('test');test.dataset.birthDate = '19890615';test.setAttribute('age', 25);test.setAttribute('data-sex', 'male');console.log(test.getAttribute('data-age')); //24console.log(test.getAttribute('data-birth-date')); //19890516console.log(test.dataset.age); //24console.log(test.dataset.sex); //male 这样咱们能够看出,两者都把属性设置到了attribute上(废话,要不人家能叫自定义属性),也就是说getAttribute/setAttribute能够操作所有的dataset内容,dataset内容只是attribute的一个子集,非凡就非凡在命名上了,然而dataset内只有带有data-前缀的属性(没有age=25那个)。 那么为什么咱们还要用data-*呢,一个最大的益处是咱们能够把所有自定义属性在dataset对象中对立治理,遍历啊神马的都哦很不便,而不至于零零散散了,所以用用还是不错的。

December 26, 2021 · 1 min · jiezi

关于html5:HTML制作3D樱花漫天飞舞及浪漫信封

作者主页:海拥 作者简介:CSDN全栈畛域优质创作者、HDZ外围组成员 粉丝福利: 粉丝群 每周送6-9本书,不定期送各种小礼品(往期获奖记录) 视频及在线演示https://www.bilibili.com/vide... 浪漫信封:http://haiyong.site/eluvletter3D樱花漫天飞舞:http://haiyong.site/yinghua公众号【海拥】回复【樱花】获取残缺源码! 浪漫信封HTML 内容<div id="jsi-cherry-container"></div> <section class="container" id="contact" > <form class="flip"> <div class="front"> <h2>To Ming</h2> <a id="flip2back" href="#">Flip</a> </div> <div id="content" class="back"> <div id="letter"> <div class="container"> <div class="flip"> <div class="front"></div> <div class="back"> <p class="letter"></p> <a id="close" href="#">Close</a> </div> </div> </div> </div> <div id="top"> <a id="flip" href="#contact">Flip</a> </div> <div id="lid" class="container"> <div class="flip"> <div class="front"> <a id="open" href="#content"><span></span></a> </div> <div class="back"></div> </div> </div> </div> </form></section><div id="footer"> <audio id="music2" preload="auto" loop></audio> <a id="music_btn2" href="javascript:playPause();"></a></div>局部CSS#letter { background: #fafafa; width: 90%; height: 95%; position: absolute; left: 5%; top: 5%; z-index: 0; -webkit-transition: .5s .5s; -moz-transition: .5s .5s; -o-transition: 0s 0s; transition: 0s 0s; }#content:target #letter { top: -40%; -o-transition: .5s .5s; transition: .5s .5s; }#letter .container { position: absolute; width: 100%; /*height: 50%;*/ -webkit-perspective: 800px; -moz-perspective: 800px; perspective: 800px; top: 0; left: 0; -webkit-transition: 0s 0s; -moz-transition: 0s 0s; transition: 0s 0s; z-index: 1; }#letter .flip { width: 100%; height: 100%; } #letter .flip { position: absolute; -webkit-transform-style: preserve-3d; -moz-transform-style: preserve-3d; transform-style: preserve-3d; -webkit-transition: -webkit-transform 0.5s 0s; -moz-transition: -moz-transform 0.5s 0s; transition: -moz-transform 0.5s 0s; -webkit-transform-origin: left top; -moz-transform-origin: left top; transform-origin: left top; } #letter .flip > .front, #letter .flip > .back { position: absolute; width: 100%; height: 100%; -webkit-backface-visibility: hidden; -moz-backface-visibility: hidden; backface-visibility: hidden; } #letter .flip > .back { -webkit-transform: rotateX(180deg); -moz-transform: rotateX(180deg); transform: rotateX(180deg); } #content:target #letter .flip { -webkit-transform: rotateX(180deg); -moz-transform: rotateX(180deg); transform: rotateX(180deg); -webkit-transition-duration: 0.5s; -moz-transition-duration: 0.5s; transition-duration: 0.5s; -webkit-transition-delay: 1s; -moz-transition-delay: 1s; transition-delay: 1s; }letter.jsvar aparted = false;$("#open").click(function(){ if(!aparted) { var typed = new Typed('.letter', { strings: ["^1000Dear&nbsp;&nbsp;Ming", "M^200ing<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;夜には^300いつも^200寒いよね、^600でも、^600手を^200繋いでいると、^600暖か^200くなるよ!<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;どんなに^300寒い夜も、^600君と^300二人でいれば、^600ちっとも^300寒くない!<br><br><p style='float:right; display:block; width:80px;'>^1000H^200ao</p>"], typeSpeed: 100, backSpeed: 50 }); $('#open').find("span").eq(0).css('background-position', "0 -150px"); aparted = true; var music = document.getElementById('music2'); if (music.paused) { music.play(); $('#music_btn2').css("opacity", "1"); } } });function playPause() { var music = document.getElementById('music2'); var music_btn = $('#music_btn2'); if (music.paused){ music.play(); music_btn.css("opacity", "1"); } else{ music.pause(); music_btn.css("opacity", "0.2"); } }window.onload = function () { var currentUrl = window.location.href; var firstIndex = currentUrl.indexOf("#"); if (firstIndex <= 0) window.location.href = currentUrl + "#contact"; $('#music2').attr('src', bgmsrc); document.addEventListener('touchstart',function (event) { if(event.touches.length > 1) event.preventDefault(); }); var lastTouchEnd = 0; document.addEventListener('touchend',function (event) { var now = (new Date()).getTime(); if(now - lastTouchEnd <= 300) event.preventDefault(); lastTouchEnd = now; }, false); document.addEventListener('gesturestart', function (event) { event.preventDefault(); }); $('body').css('opacity', '1'); $('#jsi-cherry-container').css('z-index', '-99');}演示图片浪漫信封在线演示地址:http://haiyong.site/eluvletter ...

December 18, 2021 · 4 min · jiezi

关于html5:threejs-贴图动画总结

引言在三维可视化中,会波及到很多动画,其中贴图动画是其中很重要的一种,本文介绍几种贴图动画的思路,供大家一起探讨。 流动动画流动动画通过设置贴图的repeat属性,并一直扭转贴图对象的offset让贴图产生流动成果。 这种动画不难实现,首先加载贴图,如下所示: let img = new Image();img.src = './images/path.png';let texture = new eg.Texture(img);img.onload = function () { texture.needsUpdate = true;}texture.repeat.set(100,1);tube.material.map= texture;function render(){ tube.material.map.wrapS = eg.RepeatWrapping; tube.material.map.offset.set(offset,0); tube.material.map.needsUpdate = true; offset += 0.01;}下面代码,实现了一个tube(管道),而后给管道加了一个贴图texture。 在渲染的时候,不断更新texture对象的offset的值,此时就能够生产流动的动画。如下图所示: 雪碧图动画(Sprite Sheet)图集也就是常说的雪碧图,就是把一系列小图依照肯定的布局放到一张大图下面。 在应用的时候,截取大图的一部分来获取某个小图。 这在web端是一种罕用的伎俩,通常用于缩小图片数量,从而升高网络申请数量。 通过雪碧图的形式,能够把动画的系列动作的每一帧都布局在雪碧图上。 而后通过雪碧图创立texture对象,设置贴图的repeat和offset,让每次绘制获取雪碧图上的某一帧图像,一直扭转offset,就能够造成绘制不同帧的动画成果。比方上面的图片: 上面这个threejs的demo,就是这样的成果,所以此处不再赘述代码,有趣味的读者能够查看demo的源代码。 https://stemkoski.github.io/T... 成果如下图所示: GIF动画gif图片自身自带动画,如果gif放到Image对象上,动画会自动播放,只是当把gif作为贴图对象的图片的时候。 不会自动播放动画。要自动播放gif动画,须要应用解析gif的库,把gif图片的每一帧解析进去, 并把每一帧图像绘制到一个canvas上,把canvas作为贴图对象的图片。大抵代码如下: 加载gif图片,并解析图片。其中解析图片用到了一个库omggif,利用外面的GifReader能够解析gif图片的帧数据: import { GifReader } from 'omggif'; const loader = new FileLoader(this.manager); loader.setPath(this.path); loader.setResponseType('arraybuffer'); loader.load(url, (response) => { const gifData = new Uint8Array(response); const reader = new GifReader(gifData); if (onLoad) onLoad(reader); }, onProgress, onError);而后一直的更新贴图的图像: ...

December 17, 2021 · 2 min · jiezi

关于html5:11月12月字节实习面经

A部门一面凉经自我介绍怎么学前端两边定宽的⚪、两头自适应。三列布局,两端为半径为50px的圆,两头内容宽度自适应。(我写的答复↓) <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title></head><style> .container { display: flex; width: 150px; height: 100px; }.box1 { width: 100px; height: 100%; background-color: red; border-radius: 50px; flex-shrink: 0;}.box3 { width: 100px; height: 100%; background-color: yellow; border-radius: 50px; flex-shrink: 0;}.box2 { height: 100%; background-color: green; flex-grow: 1;}</style><body> <div class="container"> <div class="box1"></div> <div class="box2"></div> <div class="box3"></div> </div></body></html>类型判断,怎么判断nullvar a = null console.log(a == Object);//falseconsole.log(a == null)//true根本数据类型有哪些援用数据类型有哪些es6新增的数据类型:promise、symbol、联合事件循环讲一下promisevue事件绑定的原理vue数据监听的原理强缓存和帮助缓存for循环外面setstatebiteint是什么?返回402是什么缓存机制、不要缓存 实现一个bigNumber类型,反对加减法运算。给定一个链表,有环则返回环的第一个节点,无环则返回null 箭头函数、一般函数:const foo = {fn: function (){console.log(this);}}const bar = {fn: () => {console.log(this);}}const f = foo.fn;f(); foo.fn(); const b = bar.fn;b();bar.fn();实现一个bigNumber类型,反对加减法运算。给定一个链表,有环则返回环的第一个节点,无环则返回null。代码实现 ...

December 15, 2021 · 1 min · jiezi

关于html5:getUserMedia-获取相机信息

js获取相机信息,并输入到video,同时绘制到canvas上,性能实现如下: <!DOCTYPE html><html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta http-equiv="X-UA-Compatible" content="ie=edge" /> <title>Demo</title> <style> body { margin: 0; }.container { height: 150px; background: #f4f4f4;}input { margin: 20px; display: inline-block;}video { position: fixed; top: 30%; left: 50%; transform: translate(-50%, -50%); display: none;}#canvas2 { position: fixed; top: 60%; left: 50%; transform: translate(-50%, -50%); display: none;}</style> <!-- vconsole引入 --> <script src="https://unpkg.com/vconsole/dist/vconsole.min.js"></script> <script type="text/javascript"> new VConsole()</script></head> <body><div class="container"> <input type="button" title="开启摄像头" value="开启摄像头" muted onclick="getMedia();" /> <input type="button" title="切换摄像头" value="切换摄像头" muted onclick="changeMode();" /> <video ...

December 13, 2021 · 2 min · jiezi

关于html5:三维引擎导入obj模型全黑总结

最近有客户试用咱们的三维平台,在导入模型的时候,会呈现模型全黑和不可见的状况。本文说下全黑的状况。 通过测试,发现可能有如下几种状况。 obj 模型没有法线向量如果obj模型导出的时候没有导出法线向量,会导致模型不能承受光照,从而导出的模型是全黑的。 此种状况下,高光反射也没有。 解决方案上,一种是让建模人员从新导出模型,导出的时候勾选上导出法线向量。 另外也能够从程序上兼容一下,判断模型是否有法线向量,如果没有,程序本人计算法线向量。以threejs为例,调用computeVertexNormals计算法线向量代码如下: if(child.geometry && !child.geometry.hasAttribute('normal')) { child.geometry.computeVertexNormals(); }PS:如何判断模型是否有法线向量,只须要用文本编辑器关上*.obj文件,查看是否有“vn” 标记mtl文件中设置模型色彩为彩色一些建模人员在导出mtl文件时候, 参数Kd 是0 0 0, Kd参数会被解析成模型材质的color属性,既色彩。 此种状况下,尽管模型是全黑,然而高光的色彩是有的,也就是在特定的角度能够看到高光: 所以解决的 方法就是把Kd 0 0 0的设置全副去掉,或者建模师能够从新导出模型文件,让Kd 变成一个非全0的值。 mtl 也是文本文件,间接用文本编辑器能够关上查看: PS mtl中 Kd 代表漫反射的色彩, Ks代表高光反射的色彩。mtl文件中贴图援用了本地门路有时候建模人员在导出mtl文件的时候,外面的贴图门路是本地的绝对路径,如下图所示: 此时导入的模型因为找不到贴图,而变成了彩色。此种状况下,尽管模型是全黑,然而高光的色彩是有的,也就是在特定的角度能够看到高光,同上。 解决办法就是把绝对路径改成相对路径,如下图: 能够手动编辑mtl文件批改,也能够建模人员导出的时候设置。 导入的场景没有设置灯光还有一种状况,模型都没有问题,然而因为场景没有设置任何灯光,导致模型看不见,此种状况须要程序上增加灯光即可。 结语上一张批改后的效果图 如果对可视化感兴趣,能够和我交换,微信541002349。 关注公号“ITMan彪叔” 能够及时收到更多有价值的文章。

December 9, 2021 · 1 min · jiezi

关于html5:前端面试每日-31-第968天

明天的知识点 (2021.12.09) —— 第968天 (我也要出题)[html] 应用canvas如何设置暗影?[css] 应用css3实现一个滑动开关[js] 如何了解在js中拜访变量有按值和按援用两种形式?[软技能] git提交时如何强制检测标准?《论语》,曾子曰:“吾日三省吾身”(我每天屡次检查本人)。前端面试每日3+1题,以面试题来驱动学习,每天提高一点!让致力成为一种习惯,让奋斗成为一种享受!置信 保持 的力量!!! 欢送在 Issues 和敌人们一起探讨学习! 我的项目地址:前端面试每日3+1【举荐】欢送跟 jsliang 一起折腾前端,零碎整顿前端常识,目前正在折腾 LeetCode,打算买通算法与数据结构的任督二脉。GitHub 地址 微信公众号欢送大家前来探讨,如果感觉对你的学习有肯定的帮忙,欢送点个Star, 同时欢送微信扫码关注 前端剑解 公众号,并退出 “前端学习每日3+1” 微信群互相交换(点击公众号的菜单:交换)。 学习不打烊,充电加油只为遇到更好的本人,365天无节假日,每天早上5点纯手工公布面试题(死磕本人,愉悦大家)。心愿大家在这虚夸的前端圈里,放弃沉着,保持每天花20分钟来学习与思考。在这变幻无穷,类库层出不穷的前端,倡议大家不要等到找工作时,才狂刷题,提倡每日学习!(不忘初心,html、css、javascript才是基石!)欢送大家到Issues交换,激励PR,感激Star,大家有啥好的倡议能够加我微信一起交换探讨! 心愿大家每日去学习与思考,这才达到来这里的目标!!!(不要为了谁而来,要为本人而来!)交换探讨欢送大家前来探讨,如果感觉对你的学习有肯定的帮忙,欢送点个[Star]

December 9, 2021 · 1 min · jiezi

关于html5:城市防汛应急管理智慧-Web-GIS-可视化平台

前言往年第 17 号台风“狮子山”(热带风暴级)登陆海南岛,受“狮子山”影响,海南岛北半部地区呈现暴雨到大暴雨、局地特大暴雨。台风带来的强风雨导致海南岛多地树木倒伏、路线积水、继续强降水造成多处险情告警。 如果能在台风降临前做好防范措施,将无效缩小损失。防汛工作,重点在防。对将来气象状况的监测,地质灾害点、险工险段的重点防守必不可少。当时备足抢险救灾物资,筑起一道道“钢铁长堤”。将路线、桥梁、隧道等隐患点的实时水量数据掌控在手,在超过警戒水位之前进行人员和物资的转移。 成果展现使用 Hightopo 自主研发产品 HT for Web,联合 GIS,实现防汛救灾工作的及时安顿,及时安排,及时抢险,及时救济。在 GIS 零碎中对海量的 POI 数据、交通流量数据、布局数据,现状数据等进行多样化的可视化展现。依据收集的降雨量信息,推演洪水的达到工夫,对小区百姓和水库工作人员等做好揭示。 地理信息系统(Geographic Information System,GIS)在计算机硬、软件系统反对下,对整个或局部地球表层(包含大气层)空间中的无关地理分布数据进行采集、贮存、治理、运算、剖析、显示和形容的技术零碎。一个单纯的经纬度坐标只有置于特定的地理信息中,代表为某个地点、标记、方位后,才会被用户意识和了解。GIS 能使应急打算者在自然灾害的状况下较易地计算出应急反应时间。 以厦门地图为例,模仿了台风登陆后引发强降雨,导致洪水泛滥,最初履行救济的全过程。利用 GIS 展现厦门市的地理信息,联合北斗、5G、智能摄像头、云计算,实现对隐患点的监控和受困人员的精准定位,缩小人员挫伤和财产损失。台风的影响是不可估量的,造成的侵害也可能是无奈接受的,所以在台风来前就要做好相应设施的查看,防止意外事故的产生。 系统分析气象预警动画展现台风的挪动,红色曲线是台风过境线路,路径城市的均匀雨量和最大降雨量随台风的到来而急速增长。 天气情况 在中低纬度沿海沿湖地区,台风、温带气旋、冷锋的强风作用和气压骤变等强烈的天气零碎会引起水面异样升降,它和相伴的狂风巨浪可引起水位增涨,从而引发洪水。HT 可通过接入实时气象数据,将 24 小时天气以折线图出现,便于管理者预判突发状况。鼠标左右拖动可查看将来 7 日天气,做好防汛工作的长期布局。 台风强度 根据台风等级的不同采取不同的进攻措施。例如:①政府及相干部门依照职责做好防台风应急和抢险工作;②进行集会、复课、开业(除非凡行业外);③回港避风的船舶要视状况采取踊跃措施,妥善安顿人员留守或者转移到平安地带;④加固或者拆除易被风吹动的搭建物, 人员该当待在防风平安的中央,当台风核心通过时风力会减小或者静止一段时间,切记强风将会忽然吹袭,该当持续留在平安处避风,危房人员及时转移;⑤相干地区该当留神防备强降水可能引发的山洪、地质灾害。 基础设施数量 城市紧急避险平台、消防和人防设施、紧急医疗救护设施等成为城市基础设施建设新的重点,也是人们避险的次要依附。城市基础设施不仅要保持良好的运行状态,还要保障在自然灾害来长期不中断。进步城市基础设施平安保障系数,建设供电双回路及多回路、备用水源、备用气源、备用热源、备用通道等,进步洪水的抵挡能力。 水利设施数量 水利设施是预防洪水的关卡,水闸、泵站、水库的数量展现了城市的抗洪能力。在相干防汛设施装置传感器或者利用 F5G 技术实现低延时,毫秒级的数据传输,及时进行排水、泄洪。 预警信息 通过不同色彩的预警信号示意台风的登陆工夫和风力强度。 台风天气容易引起管道爆裂等问题,可能会导致停水停电等结果。在接管台风预警的同时,也要做好相应资源的储备。提前储备好一家人几天内的食粮和水,还有一些根本药物用来应急。 预测降水量 通过 HT 可视化的 2D 面板和图表的数据绑定,以及利用不同款式的图表统计形式展现台风的各项数据信息,预测厦门各区将来 3小时、6 小时、12 小时的降水量,如预测到某些区县会呈现继续强降雨,则可装备更多抢险救济物资。 预测降水面积 接入实时数据后,水位线会随着降水量而扭转,绿色代表警戒线以下,橘色代表超过水位警戒线,当超过警戒水位后,可采取紧急预防措施。 实时监测台风过境时降水量级大,河道湖库间断长时间高水位运行,各级水利部门接受着较大压力。须要时刻进行监测,无效进行工程调度,亲密关注天气变动,及时做好洪水预报和信息公布,为各级决策提供信息撑持。 实时降雨量 采纳雨量热力求直观展现降雨量多少,绿色—黄色—红色代表降雨量逐步递增。当地图上呈现大面积的红色区域,阐明暴发洪水的几率增大,可提前作出应答之策。可告诉住在地势低洼地区的居民,就地取材采取“小突围”措施,如砌围墙、大门口搁置挡水板、配置小型抽水泵等。 降水量统计 对降水持续时间、全市均匀降雨量、全市最大降雨量、各区降雨量的实时数据进行统计,将目前统计的降水量数据与历史数据比照剖析,预判洪水产生的概率和等级。例如:山西遭逢洪水时,雨量达 10 月长年均匀降水量 3 倍以上。多个站点数据破建站以来的同期历史极值,累计降水量最大为 285.2 毫米。 降水面积 厦门各区降水面积离开统计,雷达图接入实时数据展现降水面积变动状况。当某个区呈现继续强降水,应立即告诉相干部门筹备泄洪,并备好救济物资。 水库水位 依据河流的水文条件、坝址的地形地质条件和各用水部门的需水要求,通过调节计算,并从政治、技术、经济等方面进行全面的综合剖析论证,来确定水库的各种特色水位及相应的库容值。水库特色水位次要有失常蓄水位、死水位、防洪限度水位、防洪高水位、设计洪水位、校核洪水位等。每个水库由一座金字塔代替,用色彩的突变展现水位高下,蓝色蔓延至金字塔顶端示意实时水位曾经达到水库限度水位,需及时泄洪。HT 引擎弱小的渲染能力,保障“防汛应急治理平台”在 Web 中高效流畅地加载运行,并保障了优良的突变成果。 ...

December 2, 2021 · 1 min · jiezi

关于html5:git可视化提交工具Sourcetree

作为一个刚入职场不久的前端小白来说,真的是太难堪了!在git仓库提交代码的过程中,因为不出名起因,我提交代码的时候把他人的代码笼罩了,这就很难堪了呀,无奈拉着他人一起加班复原代码。然而呢,这个问题很重大呀,很可能也会升高大家的效率,所以我尝试着寻找其余能够可视化提交代码的工具,于是乎,我开掘到了一个宝藏---Sourcetree。哇,真香!!!墙推!!!Sourcetree根本应用办法:一、简介一个用于Windows和Mac的收费Git客户端。Sourcetree简化了如何与Git存储库进行交互,这样您就能够集中精力编写代码。通过Sourcetree的简略Git GUI可视化和治理存储库。官网下载地址:Sourcetree | Free Git GUI for Mac and Windows二、应用办法:1、装置软件:间接在官网上下载安装就好,是一款free的工具类软件https://zhuanlan.zhihu.com/p/...https://zhuanlan.zhihu.com/p/...https://zhuanlan.zhihu.com/p/...https://zhuanlan.zhihu.com/p/...https://zhuanlan.zhihu.com/p/...https://zhuanlan.zhihu.com/p/...https://zhuanlan.zhihu.com/p/...https://zhuanlan.zhihu.com/p/...https://zhuanlan.zhihu.com/p/...https://zhuanlan.zhihu.com/p/...复制代码 下载实现后,在装置SourceTree的过程中,须要通过账户登录,但注册或登录界面可能根本无法关上,导致软件无奈失常装置。解决办法:(1)在目录C:\Users{yourname}\AppData\Local\Atlassian 下创立文件accounts.json ,留神:{yourname}须要替换为登录零碎用户名。如我的电脑门路为:C:\Users\Kelly\AppData\Local\Atlassian。 写入如下内容:[ { "$id": "1","$type": "SourceTree.Api.Host.Identity.Model.IdentityAccount, SourceTree.Api.Host.Identity","Authenticate": true,"HostInstance": { "$id": "2", "$type": "SourceTree.Host.Atlassianaccount.AtlassianAccountInstance, SourceTree.Host.AtlassianAccount", "Host": { "$id": "3", "$type": "SourceTree.Host.Atlassianaccount.AtlassianAccountHost, SourceTree.Host.AtlassianAccount", "Id": "atlassian account" }, "BaseUrl": "https://id.atlassian.com/"},"Credentials": { "$id": "4", "$type": "SourceTree.Model.BasicAuthCredentials, SourceTree.Api.Account", "Username": "username@email.com"},"IsDefault": false}]复制代码(2)重新启动,顺利进入页面,如图: 2、拉取代码sourcetree是收费的Git客户端,如何利用它从gitlab上拉取下代码呢?步骤如下:(1)下载并装置git(2)运行git,生成秘钥命令为:ssh-keygen -t rsa,如图: 呈现下图阐明公钥生成胜利了! 秘钥生成的目录在你系统盘用户目录下的.ssh\id_rsa.pub (3) 在本人的git服务器上绑定本人的git公钥(绑定操作:Settings --> SSH Keys --> Add key(关上本地公钥文件粘贴外面所有内容)),如图: 此时,咱们间接在sourcetree中点击“拉取”或“推送”代码都会上面的谬误,所以须要在Sourcetree中配置。 (4)利用sourcetree拉取代码点击"工具-->选项-->个别",留神以下4个局部的设置,如图: 肯定要抉择Open ssh,确定,再次点击推送即可实现推送性能。 在GitHub上就能够看到本人提交的文件.。(5)小窍门:先拉取后推送 如果推送时,拉取右上方显示数字,则须要先拉取再推送。(如果近程其他人有提交新的代码,在“拉取”按钮那里有标记他人提交过)三、SourceTree&Git局部名词解释 克隆(clone):从近程仓库URL加载创立一个与近程仓库一样的本地仓库 提交(commit):将暂存文件上传到本地仓库(咱们在Finder中对本地仓库做批改后个别都得先提交一次,再推送) 检出(checkout):切换不同分支 ...

November 28, 2021 · 1 min · jiezi

关于html5:vuereact函数式编程

函数式编程JavaScript 语言从一诞生,就具备函数式编程的烙印。它将函数作为一种独立的数据类型,与其余数据类型处于齐全平等的位置。在 JavaScript 语言中,你能够采纳面向对象编程,也能够采纳函数式编程。有人甚至说,JavaScript 是有史以来第一种被大规模采纳的函数式编程语言。 ES6 的种种新增性能,使得函数式编程变得更不便、更弱小。本章介绍 ES6 如何进行函数式编程。 柯里化柯里化(currying)指的是将一个多参数的函数拆分成一系列函数,每个拆分后的函数都只承受一个参数(unary)。 function add (a, b) { return a + b;} add(1, 1) // 2复制代码下面代码中,函数add承受两个参数a和b。 柯里化就是将下面的函数拆分成两个函数,每个函数都只承受一个参数。 function add (a) { return function (b) { return a + b;}}// 或者采纳箭头函数写法const add = x => y => x + y; const f = add(1);f(1) // 2复制代码下面代码中,函数add只承受一个参数a,返回一个函数f。函数f也只承受一个参数b。 函数合成函数合成(function composition)指的是,将多个函数合成一个函数。 const compose = f => g => x => f(g(x)); const f = compose (x => x * 4) (x => x + 3);f(2) // 20复制代码下面代码中,compose就是一个函数合成器,用于将两个函数合成一个函数。 ...

November 26, 2021 · 2 min · jiezi

关于html5:前端开发WebP自适应提高开发性能

WebP介绍WebP 是 Google 推出的一种同时提供了有损和无损两种压缩形式的图片格式,劣势体现在其优良的图像压缩算法,可能带来更小的图片体积,同时领有更高的的图像品质。依据官网阐明,WebP 在无损压缩的状况下能比 PNG 缩小26%的体积,有损压缩的状况能比 JPEG 缩小25%-34%的体积。 下图能够看出,绝对于传统的图片格式,WebP 格局存在浏览器兼容性方面的问题。本文通过工程化的伎俩来实现 WebP 格局的自适应加载。 传统做法为了在前端我的项目里用上 WebP 格局,并且兼容不反对该格局的浏览器,通常的做法是判断浏览器支持性,引入 WebP 图片或其余通用格局的图片。针对HTML、JS、CSS 三种引入图片的场景,有以下几种解决形式: HTML借助 <picture> 标签自适应加载的个性,如下,WebP 格局放在 <source> 标签,用JPEG、PNG等通用格局做兜底。 <picture> <source srcSet="https://p3-imagex.byteimg.com/imagex-rc/preview.jpg~tplv-19tz3ytenx-147.webp" type="image/webp" /> <img decoding="async" loading="lazy" src="https://p3-imagex.byteimg.com/imagex-rc/preview.jpg~tplv-19tz3ytenx-147.jpeg" /></picture>JS通过 JS 判断浏览器是否反对 WebP,若反对则引入 WebP 格局的图片,若不反对则引入JPEG、PNG等通用格局。有以下两种判断形式: canvas 判断isSupportWebp = document.createElement("canvas").toDataURL("image/webp").indexOf("data:image/webp") === 0;加载 WebP 图片判断function isSupportWebp(callback) { var img = new Image(); img.onload = function () { var result = (img.width > 0) && (img.height > 0); callback(result); }; img.onerror = function () { callback(false); }; img.src = 'data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA';}CSS首先须要判断浏览器是否反对 WebP 格局,若反对则在 HTML 根节点增加类名标识。 ...

November 25, 2021 · 3 min · jiezi

关于html5:如何学好HTML5开发一般都有哪些内容

HTML5现在这么火爆,很多还没有毕业的大学生也会思考再晋升本人的技能,会加入HTML5开发学习。那么,这么多人都想学习,个别前端培训要学习哪些内容呢?上面来看看吧。 学习内容大抵包含以下7大部分: 阶段一:前端页面重构 内容蕴含PC端网站布局我的项目、HTML5+CSS3根底我的项目、WebApp页面布局我的项目; 阶段二:JavaScript高级程序设计 内容蕴含原生 JavaScript交互性能开发我的项目、面向对象进阶与 ES5/ES6利用我的项目、JavaScript工具库自主研发我的项目; 阶段三:PC端全栈我的项目开发 内容蕴含:jQuery经典交互特效开发、HTTP协定、Ajax进阶与PHP/JAVA开发我的项目、前端工程化与模块化利用我的项目、PC端网站开发我的项目、PC端管理信息系统前端开发我的项目; 阶段四:挪动端我的项目开发 内容蕴含:Touch端我的项目、微信场景我的项目、利用 Angular+Ionic开发 WebApp我的项目、利用 Vue.js开发 WebApp我的项目、利用 React.js开发 WebApp我的项目; 阶段五:混合(Hybrid,ReactNative)开发 内容蕴含:微信小程序开发、React Native、各类混合利用开发 阶段六:NodeJS全栈开发 内容包含:WebApp后端系统开发,一、NodeJS根底与NodeJS外围模块二、Express三、noSQL数据库; 阶段七:大数据可视化 内容蕴含:大数据可视化化根底与实战,一、数据可视化入门、二、D3.js详解、三、其余JS库。

November 25, 2021 · 1 min · jiezi

关于html5:ios端对常用input标签的渲染总结

最近在做ios端的number数字键盘时的一些总结。随着浏览器对HTML5的进一步标准化施行,其实原生的组件能实现的性能越来越多,有时候咱们能够不必第三方的组件库,就能实现很难看的前端交互组件。这篇文章提到的input标签的type类型<input type="password"><input type="color"><input type="date"><input type="datetime-local"><input type="email"><input type="month"><!-- 这里ios的体现是,弹出的键盘顶部会有数字按钮,然而底部还是会有字符按钮,以及字母键盘的切换。input输入框里仍然能够输出字符,android端是不容许输出字符的,只能数字。 (具体可看上面大图) --><input type="number"><!-- 这里ios的体现是,只会有纯数字的按钮呈现,并且是九宫格的模式,然而不能够再切回原始键盘了。(具体可看上面大图) --><input type="number" pattern="\d*"/><!-- 这里ios的体现是,会有纯数字的按钮呈现,并且是九宫格的模式,还能够切换到加号、星号、井号三个特殊字符。 --><input type="tel"><input type="range" min="0" max="50"><input type="time"><input type="url">截图示例

November 23, 2021 · 1 min · jiezi

关于html5:Shopify开店建站营销推广卖家平台后台中文指南-–-Test-orders-测试订单

为确保结账流程,订单解决流程,库存,运费,税费等是否正确设置。下单的客户体验如何,在网店正式经营之前,都要先测试订单。 在Shopify中测试订单的2种办法: 使 用 Shopify Bogus Gateway 模仿领取用你应用的实在的领取网关实在的领取,而后马上勾销订单并退款。这2种办法都是收费的,你毋庸领取任何费用。1.应用Shopify Bogus Gateway模仿领取。1,进入Shopify后盾,点击Settings,点击Payments,进入领取设置页面.2,如果你当时设置并启动了信用卡网关,在开始测试订单之前,先敞开它,点Edit,再点击Deactive,再确认敞开。3,在Accept credit cards一栏,点击Select a Credit Card Gateway下拉菜单 4,抉择Other上面的(for testing)Bogus Gateway,即shopify专门开发的用于测试订单的领取网关。 5,点击Activate 或 Reactive (激活或从新激活),如果之前设置了Bogus网关的话.6,当初,伪装你是客人,去你店铺的前台下单测试吧。 在结账时按如下办法输出信用卡信息(不要输出你实在的信息卡信息): Name on card : 持卡人姓名 (模仿实在信用卡,随便填写可能会报错) MM/YY: 信用卡到期日,未来的任意一个工夫,格局为月/年,如:09/16,示意2016年9月到期。 CVV: 任意3位数字 在Card number卡号一栏中 输出1:模仿一个胜利的领取。 输出2:模仿一个失败的领取。 输出3:模仿一个异样领取,并生成一条报错信息。 输出其余任意数字将报错。 2.实在领取,而后马上勾销订单并退款。1,测试前确保你曾经设置了你想测试的领取网关,比方你想测试信用卡领取还是Paypal领取。2,像客人一样从你的店铺前台下一个订单并用实在的领取信息实现订单。3,如果你应用第三方领取网关,登陆并查看该订单的款项。4,尽快勾销订单并退款免得收取可能产生的交易费。 是收费的吗?是的,任何曾经勾销订单并退款的将不收取交易费。(即任何勾销订单并退款的Shopify不会收取交易费) 如果在你勾销订单之前正好你的结算周期到了,那么,交易费将会呈现在帐单上。在你领取Shopify的账单后,你依然能够勾销该测试订单,然而退款将会以信用点数的形式退回到你的账号上,你能够用信用点数来领取未来产生的交易费用。 举例说明:如果你的shopify计划是按月付费的,且结算日期是每月的30号,你9月29号下的测试订单并实在付款了,然而到了10月2号你才勾销订单并申请退款,因订单逾越了续费周期,依据Shopify的policy,Shopify将视此笔订单为实在订单并收取交易费(费率取决于你的计划)。所以,你9月份的Shopify账单上将呈现该笔测试订单所产生的交易费用。你领取了该账单之后,能够再去勾销该测试订单并退款。Shopify则会主动将该笔交易费用以“transactioncredit”的形式返还到你的账户里,你能够用这个“transaction credit”领取未来产生的交易费用。这个”transaction credit”其实就相似于很多国外网店的”store credit”,只能用来再次在该商家生产. PS:你能够将某个要测试的商品的价格改为非常低的价格,即便你因为某些起因没有解决好,也不会产生多少交易费。 相干文章 企业自助建站靠谱吗?自助建站平安吗?深度解析:外贸B2B企业建站“拦路虎”Shopify 独立站收费流量获取办法Shopify主题:如何无效解决Shopify的主题问题更多shopify教程、外贸推广、谷歌SEM、谷歌SEO等相干教程请分割小编微信支付:gzxxmu 本文由西木建站 Shopify 阿里云 公布!

November 23, 2021 · 1 min · jiezi

关于html5:Shopify开店建站营销推⼴卖家平台后台中⽂指南-–-Payments-Shopify的收款设置

Shopify⽬前承受PayPal,信⽤卡,Google Wallet,⽐特币,货到付款,汇票等,但最适宜中国商户使⽤的是 PayPal和信⽤卡收款. PayPal收款设置: 1,进⼊你的Shopify后盾 → 点击Settings → 点击Payments 2,Express Checkout : 你能够使⽤PayPal的疾速结账按钮来收款,在前台结账⻚⾯,将会呈现 Checkout with PayPal按钮。 PayPal Payments Pro:仅适⽤于美国,加拿⼤和英国。所以这⾥抉择PayPal Express Checkout 即可。 3,要设置使⽤PayPal Express Checkout 疾速结账,你必须有⼀个PayPal 实名认证过的账号.如果你曾经领有PayPal账号,点击Activate激活. 4,零碎跳转到PayPal登录⻚⾯,登录而后去受权 5,点击授予许可,跳转回Shopify收款设置⻚⾯ 6,这样,使⽤PayPal 疾速结账收款就设置好了去前台测试,加⼊购物⻋后曾经有了Checkout with PayPal按钮了。 信⽤卡收款设置: 1,进⼊你的Shopify后盾 → 点击Settings → 点击Payments2,如果你之前设置过信⽤卡测试⽹关Bogus Gateway的话,要先停⽤。 在Accept credit cards⼀栏,抉择Edit–>Change gateway->在弹出的对话框中点击Deactivate停⽤。 3,如果你之前没有设置过信⽤卡信息,你能够间接在此抉择⼀个适宜⾃⼰的服务商.⽬前在Shopify 中能够使⽤4家信⽤卡在线付款服务商。依据你的须要抉择其中⼀家(假如你曾经领有其中⼀家的账号),依据下⼀⻚提⽰信息,最初点击Activate激活即可. 具体可查问这4家服务商的⽹站以获取更多信息:CyberSource(简体中⽂) HiTRUST (繁体中⽂) MOLPay Skrill(Moneybookers) Skrill中⽂ PS:承受信⽤卡付款并不是必须的,只有PayPal和信⽤卡⼆者⾄少有⼀个可⽤即可。当然⼆者都使⽤的适⽤范畴更⼴⼀些,有的顾客只使⽤信⽤卡⽽没有PayPal账号,有的⽤户更偏差使⽤PayPal等。 Payment authorization settings ⽀付受权设置:⾃动捕捉付款:当顾客下单付款后,零碎默认间接接管付款。 ⼿动捕捉付款:当顾客下单付款后,零碎期待⼈⼯⼲预抉择接管全款,接管局部款,回绝收款等。 PS:从客户体验和烦杂度,倡议抉择Automatically ⾃动接管付款.有特殊要求的可设置为使⽤Manually⼿动接管付款。相干文章 外贸建站要如何进步流量?外贸建站推广引流办法美国互联网公司内卷-shopify独立站在Shopify上做SEO文章博客的益处Shopify工作原理是什么?它是如何工作的?更多shopify教程、外贸推广、谷歌SEM、谷歌SEO等相干教程请分割小编微信支付:gzxxmu 本文由西木建站 Shopify 阿里云 公布!

November 23, 2021 · 1 min · jiezi

关于html5:Shopify开店建站营销推⼴卖家平台后台中⽂指南-–-Pages⻚⾯管理

⻚⾯通常⽤于动态内容。像”对于咱们”,”店铺的隐衷政策”,”退换货政策”等信息.创立和治理⻚⾯: 点击右侧Add page以创立⼀个新⻚⾯点击已存在的⻚⾯题目,能够批改⻚⾯勾选多个⻚⾯,能够批量治理⻚⾯ 步骤: 1,进⼊你的Shopify后盾 → 点击Online Store → 点击Pages,进⼊pages⻚⾯2,如要增加⻚⾯,点击右上⾓的Add page. 3,依据理论状况输⼊相干内容,最初点击右上⾓的Save保留。4,再去Navigation把该⻚⾯增加到相应的地位(在前台所显⽰的地位,不增加前台不会显⽰) 5,在相应的地位,⽐如将Contact⻚⾯放在前台⻚脚的地位,则点击Footer⼀栏中的Edit link list,编辑链接列表。 6,在Footer链接列表⻚中点击Add another link,输⼊Contact Us ,在Links To…栏⾥抉择要链接的对像,此处为Page⻚⾯,而后再右侧抉择要链接的⻚⾯,如Contact.最初点击Save保留。此时前台⻚⾯就会显⽰方才创立的Contact⻚⾯了。 相干文章 外贸建站要如何进步流量?外贸建站推广引流办法美国互联网公司内卷-shopify独立站在Shopify上做SEO文章博客的益处Shopify工作原理是什么?它是如何工作的?更多shopify教程、外贸推广、谷歌SEM、谷歌SEO等相干教程请分割小编微信支付:gzxxmu本文由西木建站 Shopify 阿里云 公布!

November 22, 2021 · 1 min · jiezi

关于html5:掌握-JavaScript-面试什么是纯函数

什么是函数?函数是一个过程:它须要一些叫做参数的输出,而后产生一些叫做返回值的输入。函数能够用于以下目标: 映射: 基于输出值产生一些的输入。函数把输出值映射到输入值。过程化: 能够调用一个函数去执行一系列步骤。该一系列步骤称为过程,而这种形式的编程称为面向过程编程。I/O: 一些函数存在与零碎其余局部进行通信,例如屏幕,存储,系统日志或网络。映射纯函数都是对于映射的。函数将输出参数映射到返回值,这意味着对于每组输出,都存在对应的输入。函数将获取输出并返回相应的输入。 Math.max() 以一组数字作为参数并返回最大数字: Math.max(2, 8, 5); // 8复制代码在此示例中,2,8 和 5 是参数。它们是传递给函数的值。 Math.max() 是一个能够承受任意数量的参数并返回最大参数值的函数。在这个案例中,咱们传入的最大数是 8,对应了返回的数字。 函数在计算和数学中十分重要。它们帮忙咱们用适合的形式解决数据。好的程序员会给函数起描述性的名称,以便当咱们查看代码时,咱们能够通过函数名理解函数的作用。 数学也有函数,它们的工作形式与 JavaScript 中的函数十分类似。您可能见过代数函数。他们看起来像这样: f(x) = 2x 这意味着咱们要申明了一个名为 f 的函数,它承受一个叫 x 的参数并将 x 乘以 2。 要应用这个函数,咱们只需为 x 提供一个值: f(2) 在代数中,这意味着与上面的写法完全相同: 4 因而,在任何看到 f(2) 的中央都能够替换 4。 当初让咱们用 JavaScript 来形容这个函数: const double = x => x * 2;复制代码你能够应用 console.log() 查看函数输入: console.log( double(5) ); // 10复制代码还记得我说过的在数学函数中,你能够替换 f(2) 为 4 吗?在这种状况下,JavaScript 引擎用 10 替换 double(5)。 ...

November 12, 2021 · 2 min · jiezi

关于html5:解决ios中input字体颜色设置输入placeholderdisabled状态

在解决ios中input字体色彩时,碰到设置input为disabled后,字体色彩和 placeholder字体色彩问题,原本在iOS14中设置完没问题,后果在ios11中,发现没失效,猜想可能是iOS低版本的问题,不过最终还是解决了,奉上代码,供大家应用: input { background: none; outline: none; border: 0px; font-size: 16px; font-family: PingFangSC-Semibold, PingFang SC; font-weight: 600; color: #1f1f1f; -webkit-user-select: auto; // 设置ios下input能够选中输出 } input::-webkit-input-placeholder, input:disabled::-webkit-input-placeholder, input[disabled]::-webkit-input-placeholder { font-size: 14px; font-family: PingFangSC-Medium, PingFang SC; font-weight: 500; color: #9f9f9f; -webkit-text-fill-color: #9f9f9f; } input::-moz-placeholder, input:disabled::-webkit-input-placeholder, input[disabled]::-webkit-input-placeholder { font-size: 14px; font-family: PingFangSC-Medium, PingFang SC; font-weight: 500; color: #9f9f9f; -webkit-text-fill-color: #9f9f9f; } input::-ms-input-placeholder, input:disabled::-webkit-input-placeholder, input[disabled]::-webkit-input-placeholder { font-size: 14px; font-family: PingFangSC-Medium, PingFang SC; font-weight: 500; color: #9f9f9f; -webkit-text-fill-color: #9f9f9f; } input:disabled, input[disabled] { -webkit-text-fill-color: #1f1f1f; opacity: 1; }

November 4, 2021 · 1 min · jiezi

关于html5:h5-ios下input框无法输入问题

在h5中,应用input/textarea,在浏览器和安卓机上是能够失常应用的,然而在ios下无奈输出?因为挪动端-webkit-user-select:none 导致input/texttarea输入框无奈输出。 解决办法:在input款式减少:-webkit-user-select: auto;

November 3, 2021 · 1 min · jiezi

关于html5:Shopify开店建站营销推广卖家平台后台中文指南-–-Cancel-or-Delete-order取消或删除订单

当你须要解决退款时,可能意思着要勾销订单。或者,客人付款后却又扭转主见了等起因,不论是勾销某订单的全副商品还是局部商品,你都能够在订单历史中查看退款金额和库存重置等记录。 勾销订单步骤如下: 1,进入你的Shopify店铺后盾,点击Orders → 进入订单列表页面;2,抉择要勾销订单的订单号;3,在关上的订单详情页面的右上角,点击…4,在弹出的对话框中抉择要勾销订单的起因;5,填写退款的产品的数量,查看要退款的金额;6,产品是否须要从新入库;7,抉择是否告诉顾客。最初点击Cancel order。> 正告: 尤其要留神的是,如果客户应用了优惠券,Shopify零碎是容许退款的金额大于顾客所付金额的。依据你的店铺policy,退款退货及可能产生的运费等状况,肯定要认真核查要退款的金额,因为勾销订单的操作不可逆,免得造成损失。 删除订单删除订单只针对已勾销的或已敞开/已履行的订单。 删除订单会删除与该订单无关的所有信息及历史记录。步骤如下: 1,进入你的Shopify店铺后盾,点击Orders进入订单列表页面。2,点击须要删除的订单号,进入订单详情页面3,在页面的底部,点击Delete this order。在弹出的对话框中点击Delete删除即可。PS:对于已敞开/已履行的订单,为了日后可能存在的售后服务或统计等用处,不倡议对此进行删除操作。 相干文章 二手车行业期待Shopify「Shopify」开始容许局部商家间接销售NFT商品如何抉择适合的shopify主题模板?Shopify如何优化加载速度晋升用户体验?——SEO篇更多shopify教程、外贸推广、谷歌SEM、谷歌SEO等相干教程请分割小编微信支付:gzxxmu 本文由西木建站 Shopify 阿里云 公布!

October 27, 2021 · 1 min · jiezi

关于html5:APP与H5交互之混合开发模式

APP与H5交互:1.背景2.如何交互(APP-H5,h5-APP传值) 一 背景 因为App的发版周期偏长、灵活性差,如果有较大的计划变更,须要发版能力解决;如果存在bug,修复的难度比拟大,作为H5为次要开发模式的Web App的灵活性就比拟强,利用操作系统中的h5容器作为一个承载,对外提供一个url链接,而该url链接对应的内容能够实时在服务端进行批改,灵便行很强,防止了APP发版周期带来的工夫老本。iOS存在的h5容器次要包含UIWebView和WKWebView, 当初曾经不承受应用 UIWebView ,WKWebView领有更快的加载速度和性能,更低的内存占用WKWebView 有一个内容交互控制器,该对象提供了通过JS向WKWebView发送音讯的路径。须要设置MessageHandler,如下设置 二 交互 H5传值APP: //判断是都ios export const isApple = () => { return /(iPhone|iPad|iPod|iOS)/i.test(navigator.userAgent);}//判断是都Androidexport const isAndroid = () => { return /(Android)/i.test(navigator.userAgent);}/*h5传值至App* window.webkit.messageHandlers.<name>.postMessage(<messageBody>)* 这个name就是设置MessageHandler的第二个参数,与APP约定的命名,类同上面appaction*/export const doAppAction = (ed) => { try { isApple() && window.webkit.messageHandlers.appaction.postMessage(ed); isAndroid() && window.SysClientJs.appaction(JSON.stringify(ed)); } catch (err) { console.log("do app err"+err); }}APP传值H5 /** * h5接管APP的值,通过裸露办法在window对象下 */window['bridge']=(message)=>{ //more}

October 27, 2021 · 1 min · jiezi

关于html5:多用户商城系统店铺抽成系统逻辑设计OctShop商城系统

平台能够针对不同行业入驻的商家店铺进行抽成,每个店铺可自在设置不同的抽成百分比。设置抽成后,即可对店铺的每笔交易按抽成百分比进行抽成。零碎会具体记录交易抽成信息,以便商家结算查问与核查。平台分销,分润,分佣,分成,返现等机制也与店铺抽成密切相关。 一、店铺可设置:店铺抽成百分比,分享商品返佣百分比,倒退店铺分润百分比等。 二、商城零碎大部分分销,分润,分佣,分成,返现都是基于店铺抽成零碎。如果店铺没有抽成则不会执行。 三、商家的抽成是基于每个实现的订单进行计算。其中波及商家结算零碎。关联性与逻辑性是比较复杂。

October 26, 2021 · 1 min · jiezi