生日快乐网站模板(个人制作)(HTML5+CSS3+JS)

article/2025/9/10 13:16:21

      哈,前一阵子一个比较要好的朋友过生日,就给她做了一个网站作为生日祝福。也花了挺多的时间去复习了抛弃了有一段时间的HTML和CSS,又去学习了CSS3。最后做出来的效果自己还是挺满意的,因此在这里放出来,也希望能帮助到大家~

下载地址

Github:https://github.com/IcedSoul/tiny-heart

      效果图

      别的先不说,先放效果图。

      这个第一页具体代码不是我自己写的,而是使用的网上找到的这个很酷炫的登录效果,然后根据我自己的需求作出了一些修改,但是效果确实很棒,图片看不出来,这个的效果其实是动态的。

      关于密码,一个生日祝福网站也用不上连数据库什么的,做做样子就行了,后台写了一个简单的js判断(其实谁都拦不住的233333)但是,做网站就是为了装,自然要装出个样子来,不然我做这网站还有何用!

      这是登陆之后进入的界面,当然也是动态播放的,中间那个蛋糕是找的网上大神的代码,纯H5写的,我等渣渣只能膜拜,在此处对此特效的源码提供者表示真挚的感谢!旁边两个按钮和下面的字体是我自己弄的,按钮有惊喜哦,2333333.不信你把源码下下来看看,我专门弄得哈哈哈哈。

      这个就是最主体的内容了,除了整体的框架是采用Fullpage.js之外,代码全部是由自己完成的。内容因为涉及到隐私已经打码了,等下上传的源码我也会将文本替换掉的。想要直接使用的童鞋可以将他们替换为自己的文本。

      这张同样也做打码处理了,原因同上,涉及个人隐私。这些全都是有动态效果的哦。

      部分效果代码分析

      看过效果了,这里我来对一些效果的源码进行一下分析说明。相信如果需要用到这个的人肯定是要根据自己的需要更改效果和内容的,所以还是有必要说一下供大家学习的。

      登录效果、动态背景、蛋糕我就不说了,因为不是我写的,我也只是做了一些修改而已。我只说一下我写的内容和效果。

      因为这些内容也算是我自己学习CSS3的练习成品,因此代码看起来会有些凌乱和繁杂,也请大神不要吐槽。感谢~

<div class="button-style1"><a href="Memories.html" class="lk1"><div class="link1"><div class="bt1">我很喜欢</div></div></a>    
</div>
<div class="button-style2"><a class="lk2"><div class="link2"><div class="bt1">我不喜欢</div></div></a> 
</div>
.button-style1 ,.button-style2{position:absolute;top:41%;opacity:1;z-index:100;
}
.button-style1 {position:absolute;left:20%;animation:btn1 15s; /*这是CSS3的动画属性,着这里定义动画的名称和持续时间,也可以用animation-delay定义动画延时多少s播放*/
}
.button-style2 {position:absolute;left:68%;animation:btn2 15s;
}
@keyframes btn1 { /*这里是对动画的定义,我们只需要定义几个关键帧,它会自动完成补间。*/0% {opacity:0;left:43.5%;}70% {opacity:0;left:43.5%;}100% {opacity:1;left:20%;}
}
@-webkit-keyframes btn1 { /*这里是声明获取不同浏览器的支持,还有几个干脆我就懒得写了,反正我也不是给所有人写的,自己能看就行*/0% {opacity:0;left:43.5%;}70% {opacity:0;left:43.5%;}100% {opacity:1;left:20%;}
}
@keyframes btn2 {0% {opacity:0;left:43.5%;}70% {opacity:0;left:43.5%;}100% {opacity:1;left:68%;}
}
@-webkit-keyframes btn2 {0% {opacity:0;left:43.5%;}70% {opacity:0;left:43.5%;}100% {opacity:1;left:68%;}
}
.lk1,.lk2 {text-decoration:none;font-family: Microsoft YaHei;color:#fff;transition:all 0.5s;
}
.link1,.link2 {width:170px;height:60px;border:2px solid #fff;-webkit-border:1px solid #fff;border-radius:30px;font-size: 23px;text-align:center;background: #ee9ca7;transition:all 0.8s;
}
.link2 {cursor:not-allowed;
}
.bt1,.bt2 {position:relative;top:22%;vertical-align:middle;
}a.lk1:hover { /*这里使用CSS选择器,定义鼠标滑过效果*/color:#ee9ca7;transition:all 0.5s;
}
.link1:hover {background-color:#fff;background-color:rgba(255,255,255,0,2);border:2px solid #BBB;transition:all 0.8s;
}
a.lk2:hover {color:#ee9ca7;transition:all 0.5s;
}
.link2:hover {background-color:#fff;background-color:rgba(255,255,255,0,2);border:2px solid #BBB;transition:all 0.8s;
}


      这个代码是两个按钮的代码,这些代码现在看来也挺傻的,纯属找事儿写这么多层,233.不过也懒得改了。具体看注释吧,没啥好说的。

<div class="section"><div class="ly-box01"><div class="ly-txt01"><p class="ly-stxt01">XXXXXXXXXXXXXXXXXXXXXXX</p><p class="ly-stxt02">XXXXXXXXXXXXXXXXXXXXXXX</p><p class="ly-stxt03">XXXXXXXXXXXXXXXXXXXXXXX</p><p class="ly-stxt04">XXXXXXXXXXXXXXXXXXXXXXX</p><p class="ly-stxt05">XXXXXXXXXXXXXXXXXXXXXXX</p></div><div class="ly-txt02"><p class="ly-stxt06">XXXXXXXXXXXXXXXXXXXXXXX</p><p class="ly-stxt07">XXXXXXXXXXXXXXXXXXXXXXX</p><p class="ly-stxt08">XXXXXXXXXXXXXXXXXXXXXXX</p><p class="ly-stxt09">XXXXXXXXXXXXXXXXXXXXXXX</p><p class="ly-stxt10">XXXXXXXXXXXXXXXXXXXXXXX</p></div></div></div> 


      这是点我很喜欢按钮跳转之后的第一页,对,HTML代码就这么少,但是。。。

.ly-box01 {width:50px;height:50px;background-color:#FFF;border-radius: 25px;position: absolute;left: 48%;bottom: 50%;margin-bottom:50%;overflow: hidden;transform-origin:center bottom;animation:box_to_point 18.5s 0s,bounce 2.5s 18.5s;
}@keyframes box_to_point{0% {margin-bottom:50%;width:50px;height:50px;border-radius: 25px;position: absolute;left: 48%;bottom: 50%;}10% {margin-bottom:0;width:50px;height:50px;border-radius: 25px;background-color:rgba(255,255,255,1);position: absolute;left: 48%;bottom: 50%;}14% {margin-bottom:0;width: 80%;height: 550px;border-radius: 6px;background-color:rgba(255,255,255,0.5);position: absolute;left: 10%;bottom: 12%;}96% {margin-bottom:0;width: 80%;height: 550px;border-radius: 6px;background-color:rgba(255,255,255,0.6);position: absolute;left: 10%;bottom: 12%;}100% {margin-bottom:0;width:50px;height:50px;border-radius: 25px;background-color:rgba(255,255,255,1);position: absolute;left: 48%;bottom: 50%;}
}
@-webkit-keyframes box_to_point{0% {margin-bottom:50%;width:50px;height:50px;border-radius: 25px;position: absolute;left: 48%;bottom: 50%;}10% {margin-bottom:0;width:50px;height:50px;border-radius: 25px;background-color:rgba(255,255,255,1);position: absolute;left: 48%;bottom: 50%;}14% {margin-bottom:0;width: 80%;height: 550px;border-radius: 6px;background-color:rgba(255,255,255,0.5);position: absolute;left: 10%;bottom: 12%;}96% {margin-bottom:0;width: 80%;height: 550px;border-radius: 6px;background-color:rgba(255,255,255,0.6);position: absolute;left: 10%;bottom: 12%;}100% {margin-bottom:0;width:50px;height:50px;border-radius: 25px;background-color:rgba(255,255,255,1);position: absolute;left: 48%;bottom: 50%;}
}
@keyframes bounce{0% {margin-bottom:0;width: 50px;height: 50px;border-radius: 25px;bottom:50%;left: 48%;}50% {margin-bottom:0;left: 48%;width: 50px;height: 50px;border-radius: 25px;bottom:0;left: 48%;}100% {margin-bottom:0;width: 20px;height: 20px;border-radius: 10px;left: 48%;bottom: 0;left: 20%;}
}
@-webkit-keyframes bounce{0% {margin-bottom:0;width: 50px;height: 50px;border-radius: 25px;bottom:50%;left: 48%;}50% {margin-bottom:0;left: 48%;width: 50px;height: 50px;border-radius: 25px;bottom:0;left: 48%;}100% {margin-bottom:0;width: 20px;height: 20px;border-radius: 10px;left: 48%;bottom: 0;left: 20%;}
}
/*文本*/
.ly-txt01 {position:absolute;width: 40%;left:10%;top:10%;
}
.ly-txt02 {position:absolute;width: 40%;left:60%;top:10%;
}
.ly-stxt01 {font-family: Microsoft YaHei;font-size: 30px;font-color: #000;position: relative;left: 5%;top: 5%;opacity: 0;animation:ly-stxt01_move 15s;animation-delay:3s;-webkit-animation:ly-stxt01_move 15s;-webkit-animation-delay:3s;
}
@keyframes ly-stxt01_move{0% {opacity:0;}8% {opacity:1;}90% {opacity:1;}98% {opacity:0;}100% {opacity:0;}
}
@-webkit-keyframes ly-stxt01_move{0% {opacity:0;}8% {opacity:0;}90% {opacity:1;}98% {opacity:0;}100% {opacity:0;}
}.ly-stxt02 {font-family: Microsoft YaHei;font-size: 30px;font-color: #000;position: relative;left: 5%;top: 5%;margin-top:-71px;opacity: 0;animation:ly-stxt02_move 15s;animation-delay:3s;-webkit-animation:ly-stxt02_move 15s;-webkit-animation-delay:3s;
}
@keyframes ly-stxt02_move{0% {opacity:0;margin-top:-71px;}8% {opacity:0;margin-top:-71px;}16% {opacity:1;margin-top:0;}90% {opacity:1;margin-top:0;}100% {opacity:0;margin-top:0;}
}
@-webkit-keyframes ly-stxt02_move{0% {opacity:0;margin-top:-71px;}8% {opacity:0;margin-top:-71px;}16% {opacity:1;margin-top:0;}90% {opacity:1;margin-top:0;}100% {opacity:0;margin-top:0;}
}.ly-stxt03 {font-family: Microsoft YaHei;font-size: 30px;font-color: #000;position: relative;left: 5%;top: 5%;opacity: 0;margin-top:-71px;animation:ly-stxt03_move 15s;animation-delay:3s;-webkit-animation:ly-stxt03_move 15s;-webkit-animation-delay:3s;
}
@keyframes ly-stxt03_move{0% {opacity:0;margin-top:-71px;}16% {opacity:0;margin-top:-71px;}24% {opacity:1;margin-top:0;}90% {opacity:1;margin-top:0;}100% {opacity:0;margin-top:0;}
}
@-webkit-keyframes ly-stxt03_move{0% {opacity:0;margin-top:-71px;}16% {opacity:0;margin-top:-71px;}24% {opacity:1;margin-top:0;}90% {opacity:1;margin-top:0;}100% {opacity:0;margin-top:0;}
}.ly-stxt04 {font-family: Microsoft YaHei;font-size: 30px;font-color: #000;position: relative;left: 5%;top: 5%;opacity: 0;margin-top:-71px;animation:ly-stxt04_move 15s;animation-delay:3s;-webkit-animation:ly-stxt04_move 15s;-webkit-animation-delay:3s;
}
@keyframes ly-stxt04_move{0% {opacity:0;margin-top:-71px;}24% {opacity:0;margin-top:-71px;}32% {opacity:1;margin-top:0;}90% {opacity:1;margin-top:0;}100% {opacity:0;margin-top:0;}
}
@-webkit-keyframes ly-stxt04_move{0% {opacity:0;margin-top:-71px;}24% {opacity:0;margin-top:-71px;}32% {opacity:1;margin-top:0;}90% {opacity:1;margin-top:0;}100% {opacity:0;margin-top:0;}
}.ly-stxt05 {font-family: Microsoft YaHei;font-size: 30px;font-color: #000;position: relative;left: 5%;top: 5%;opacity: 0;margin-top:-71px;animation:ly-stxt05_move 15s;animation-delay:3s;-webkit-animation:ly-stxt05_move 15s;-webkit-animation-delay:3s;
}
@keyframes ly-stxt05_move{0% {opacity:0;margin-top:-71px;}32% {opacity:0;margin-top:-71px;}40% {opacity:1;margin-top:0;}90% {opacity:1;margin-top:0;}100% {opacity:0;margin-top:0;}
}
@-webkit-keyframes ly-stxt05_move{0% {opacity:0;margin-top:-71px;}32% {opacity:0;margin-top:-71px;}40% {opacity:1;margin-top:0;}90% {opacity:1;margin-top:0;}100% {opacity:0;margin-top:0;}
}.ly-stxt06 {font-family: Microsoft YaHei;font-size: 30px;font-color: #000;position: relative;right: 5%;top: 5%;opacity: 0;animation:ly-stxt06_move 15s;animation-delay:3s;-webkit-animation:ly-stxt06_move 15s;-webkit-animation-delay:3s;
}
@keyframes ly-stxt06_move{0% {opacity:0;}40% {opacity:0;}48% {opacity:1;}90% {opacity:1;}100% {opacity:0;}
}
@-webkit-keyframes ly-stxt06_move{0% {opacity:0;}40% {opacity:0;}48% {opacity:1;}90% {opacity:1;}100% {opacity:0;}
}.ly-stxt07 {font-family: Microsoft YaHei;font-size: 30px;font-color: #000;position: relative;right: 5%;top: 5%;opacity: 0;margin-top:-71px;animation:ly-stxt07_move 15s;animation-delay:3s;-webkit-animation:ly-stxt07_move 15s;-webkit-animation-delay:3s;
}
@keyframes ly-stxt07_move{0% {opacity:0;margin-top:-71px;}48% {opacity:0;margin-top:-71px;}56% {opacity:1;margin-top:0;}90% {opacity:1;margin-top:0;}100% {opacity:0;margin-top:0;}
}
@-webkit-keyframes ly-stxt07_move{0% {opacity:0;margin-top:-71px;}48% {opacity:0;margin-top:-71px;}56% {opacity:1;margin-top:0;}90% {opacity:1;margin-top:0;}100% {opacity:0;margin-top:0;}
}.ly-stxt08 {font-family: Microsoft YaHei;font-size: 30px;font-color: #000;position: relative;right: 5%;top: 5%;opacity: 0;margin-top:-71px;animation:ly-stxt08_move 15s;animation-delay:3s;-webkit-animation:ly-stxt08_move 15s;-webkit-animation-delay:3s;
}
@keyframes ly-stxt08_move{0% {opacity:0;margin-top:-71px;}56% {opacity:0;margin-top:-71px;}64% {opacity:1;margin-top:0;}90% {opacity:1;margin-top:0;}100% {opacity:0;margin-top:0;}
}
@-webkit-keyframes ly-stxt08_move{0% {opacity:0;margin-top:-71px;}56% {opacity:0;margin-top:-71px;}64% {opacity:1;margin-top:0;}90% {opacity:1;margin-top:0;}100% {opacity:0;margin-top:0;}
}.ly-stxt09 {font-family: Microsoft YaHei;font-size: 30px;font-color: #000;position: relative;right: 5%;top: 5%;opacity: 0;margin-top:-71px;animation:ly-stxt09_move 15s;animation-delay:3s;-webkit-animation:ly-stxt09_move 15s;-webkit-animation-delay:3s;
}
@keyframes ly-stxt09_move{0% {opacity:0;margin-top:-71px;}64% {opacity:0;margin-top:-71px;}72% {opacity:1;margin-top:0;}90% {opacity:1;margin-top:0;}100% {opacity:0;margin-top:0;}
}
@-webkit-keyframes ly-stxt09_move{0% {opacity:0;margin-top:-71px;}64% {opacity:0;margin-top:-71px;}72% {opacity:1;margin-top:0;}90% {opacity:1;margin-top:0;}100% {opacity:0;margin-top:0;}
}.ly-stxt10 {font-family: Microsoft YaHei;font-size: 30px;font-color: #000;position: relative;right: 5%;top: 5%;opacity: 0;margin-top:-71px;animation:ly-stxt10_move 15s;animation-delay:3s;-webkit-animation:ly-stxt10_move 15s;-webkit-animation-delay:3s;
}
@keyframes ly-stxt10_move{0% {opacity:0;margin-top:-71px;}72% {opacity:0;margin-top:-71px;}80% {opacity:1;margin-top:0;}90% {opacity:1;margin-top:0;}100% {opacity:0;margin-top:0;}
}
@-webkit-keyframes ly-stxt10_move{0% {opacity:0;margin-top:-71px;}72% {opacity:0;margin-top:-71px;}80% {opacity:1;margin-top:0;}90% {opacity:1;margin-top:0;}100% {opacity:0;margin-top:0;}
}


      这全是我一行一行打的啊卧槽(其实一大半和上面一样是复制的,修改一部分,但是也很累啊!),不说别的了都是泪,效果就是那个动态。这里的最麻烦,因为使用了CSS3animation,而后面页面的动态效果使用的主要是CSS3的过渡效果,比这个要简单的多,所以后面的代码就不粘了。

 

      好好加油,骚年!撩妹成不成就看你码了多少行代码了!

 

      下载问题

     Github地址在上面放着,不会用Github下载东西的同学可以百度下,相信大多数都会的。

     如果你觉得还可以请star & fork,感谢~


http://chatgpt.dhexx.cn/article/WtawEH4H.shtml

相关文章

对绝对地址的操作

&#xfeff;&#xfeff; 嵌入式系統中往往需要讓程序跳到內存的某個地址去執行&#xff0c;比如想讓程序跳轉到絕對地址是0x100000去執行&#xff0c;應該怎麼做&#xff1f; 這樣&#xff1a; * (( void ( * )( void )) 0x100000 )(); 即可。 解釋一下&#xff0c;想讓程序…

相对地址和绝对地址的理解

相对地址和绝对地址 个人对地址的理解 第一## 标题 第二&#xff0c;全部的地址

手机中geetest是什么文件_手机中的英文文件夹都表示什么意思?哪些是可以删除的?...

现在我们使用手机会积攒下大量的垃圾文件&#xff0c;所占的内存就会越来越多&#xff0c;长此以久手机就会开始卡顿。但当我们打开手机内存想要清理一下的时候又会发现文件夹全是英文名&#xff0c;一个也看不懂&#xff0c;生怕删错了重要文件搞坏手机。其实因为我们手机使用…

软件ETest

ETest简介 ETest是一款软件开发环境IDE&#xff0c;基于该IDE可以完成嵌入式系统测试软件的开发与部署。该产品是由凯云科技率先在行业内推出的国产自主可控半实物仿真测试开发平台&#xff0c;有效打破了国内该领域长期由进口软件LabView、DSpace等产品垄断的格局。ETest可广…

Geetest极验验证码的使用

后端部署 1.首先从Github: gt3-python-sdk下载.zip文件 &#xff0c;用于后台搭建 gt3-java-sdk-master\src\sdk\GeetestLib.java 这个文件相当java中的实体类 gt3-java-sdk-master\src\demo\demo1\GeetestConfig.java &#xff0c;是geetest的配置文件&#xff0c;用来放我们在…

GEE scale

以下从gee 官网翻译 gee中scale 表示像素分辨率&#xff0c;与其他GIS和图像处理平台不同&#xff0c;分析的规模由输出决定&#xff0c;而不是由输入决定。比如&#xff0c;当你从服务器请求返回一个图像或者统计结果时&#xff0c;您可以指定输入数据的scale到分析过…

gtest 单元测试工具的基本使用

gtest 单元测试 gtest 简介gtest 优点安装 gtest测试 demo总结 gtest 简介 gtest是Google的一套用于编写C测试的框架&#xff0c;可以运行在很多平台上&#xff08;包括Linux、Mac OS X、Windows、Cygwin等等&#xff09;。基于xUnit架构。支持很多好用的特性&#xff0c;包括…

Python Selenium破解滑块验证码最新版(GEETEST 95%以上通过率)

一、滑块验证码简述 有爬虫&#xff0c;自然就有反爬虫&#xff0c;就像病毒和杀毒软件一样&#xff0c;有攻就有防&#xff0c;两者彼此推进发展。而目前最流行的反爬技术验证码&#xff0c;为了防止爬虫自动注册&#xff0c;批量生成垃圾账号&#xff0c;几乎所有网站的注册页…

Python Selenium 破解极验(GeeTest)滑动验证

A r m o u r G e e T e s t ArmourGeeTest ArmourGeeTest [TOS] 本项目仅供交流学习&#xff0c;有疑问请在issue中提出&#xff1b;本项目不提供面向任何商业需求的版本迭代&#xff1b;关于本项目源码的使用请遵循Apache-2.0 License&#xff1b;禁止任何人使用本项目及其分支…

基于行为式验证的GeeTest验证码研究

什么是行为式验证 行为式验证的核心思想是利用用户的“行为特征”来做验证安全判别。整个验证框架采用高效的“行为沙盒”主动框架, 这个框架会引导用户在“行为沙盒”内产生特定的行为数据&#xff0c;利用“多重复合行为判别”算法从特指、视觉、思考等多重行为信息中辨识出生…

reactNative集成极验(GeeTest)

考虑到网上还没有rn极验的集成文章&#xff0c;前俩天公司业务正好集成了一下android和ios的sdk&#xff0c;平时时间少没时间写&#xff0c;今天简单介绍一下集成方案&#xff0c;要是时间允许的话&#xff0c;我搞一个极验的rn版sdk&#xff0c;给大家分享一下&#x1f604; …

项目gtest测试框架 - GoogleTest(十)

精简版本的C单元测试框架 &#xff0c;通过编写这个简单的测试框架&#xff0c;将有助于我们理解gtest。 1. 目录 类型文件说明文件./CMakeLists.txt整体项目工程文件目录./debiandeb包打包脚本目录&#xff0c;未实现目录./rpmrpm打包目录&#xff0c;rpm打包的详细内容可以…

Geetest极验+VUE把验证码绑定到自己的按钮(例如获取验证码)

极验流程 客户端gt.js里调用initGeetest发起初始化&#xff0c;会向后端获取gt等参数&#xff08;后端会跟极验通信&#xff09;&#xff0c;然后前端会根据传回的数据去决定用什么做验证&#xff0c;然后验证通过之后会有三个参数提供给后端进行二次校验的。具体接入看极验官…

【日常】Geetest滑动验证码(三代canvas版)处理小结(以B站登录验证为例)

问题描述 这个问题确实让我困扰了太长时间&#xff0c;今天花了半天时间&#xff0c;并没有找到非常完满的解决方案&#xff0c;只是在解决问题的过程中学会了一些其他知识&#xff0c;我最后还是要通过人工来判断大致的移动距离&#xff0c;然后根据误差做微调。大致做个总结…

geetest极验空间推理验证码破解与研究

看了很多的破解滑动验证码&#xff0c;决定破解一下空间推理验证码。破解思路&#xff0c;通过分析接口请求&#xff0c;对图片物体进行定位分类&#xff0c;通过模拟请求破解验证码。 研究的网站为 https://www.geetest.com/show 一、极验请求分析 请求详细 一、register-s…

googletest简介

googletest是由谷歌的测试技术团队开发的测试框架&#xff0c;使用c实现&#xff0c;具有跨平台等特性。 好的测试框架 引用谷歌给出的文档&#xff0c;好的测试应当具备以下特征&#xff1a; 测试应该是独立的和可重复的。调试一个由于其他测试而成功或失败的测试是一件痛苦…

破解极验(geetest)验证码

最近在搞爬虫的时候在好几个网站都碰到了一种叫做geetest的滑动条验证码,一直没有太好的办法只能在触发这个验证码后发个报警去手动处理一下。http://www.geetest.com/exp_embed是他们官网的样例。 后来研究了下觉得要破解这个验证码有这么几个问题: 无法直接通过发送…

破解滑块验证码最新版(GEETEST 95%以上通过率)

一、滑块验证码简述 有爬虫&#xff0c;自然就有反爬虫&#xff0c;就像病毒和杀毒软件一样&#xff0c;有攻就有防&#xff0c;两者彼此推进发展。而目前最流行的反爬技术验证码&#xff0c;为了防止爬虫自动注册&#xff0c;批量生成垃圾账号&#xff0c;几乎所有网站的注册页…

极验GeeTest简单demo

概述 人机验证 3.0 解决方案(基于生物行为与人工智能) 2012 年极验将人机验证从1.0时代推动到了 2.0 时代。在 5 年时间中&#xff0c;超过千亿次数据学习与优化&#xff0c;极验利用三角防护理论和 AI 智能决策引擎&#xff0c;全面更新安全架构。2017 年&#xff0c;正式推出…

极验geetest的使用

项目中会遇到 滑块验证的需求&#xff1a; 前端vue里 1.新建/utils/gt3.js "v0.4.8 Geetest Inc.";(function (window) {"use strict";if (typeof window undefined) {throw new Error(Geetest requires browser environment);}var document window.do…