天我要带大家一起来实现一款小巧玲珑、美轮美奂的开源滑动验证码组件,用React打造,让我们的网页增添一丝神秘与乐趣!
验证码,一个看似简单却又不可或缺的存在。在网络安全日益受到重视的今天,验证码成为了区分人类和机器人的一大法宝。而滑动验证码,凭借其新颖、有趣的形式,逐渐受到了广大用户的喜爱。
我们的目标是,用React实现一个既小巧又美观的滑动验证码组件,让用户在滑动的同时,也能感受到一丝丝的艺术气息。
首先,我们需要创建一个新的React项目。可以使用
create-react-app
快速搭建项目框架。
npx create-react-app sliding-captcha
cd sliding-captcha
我们的滑动验证码组件可以分为三个主要部分:背景图、滑块和缺口。
接下来,我们开始编写组件的代码。
import React, { useState, useRef, useEffect } from 'react';
import './SlidingCaptcha.css';
const SlidingCaptcha=({ onVerified })=> {
const [sliderPosition, setSliderPosition]=useState(0);
const sliderRef=useRef(null);
const gapPosition=200; // 缺口位置,可以根据实际情况调整
useEffect(()=> {
const handleSliderMove=(e)=> {
const newPosition=e.clientX - sliderRef.current.offsetWidth / 2;
newPosition > 0 && newPosition < gapPosition
? setSliderPosition(newPosition)
: setSliderPosition(sliderPosition);
};
const handleSliderUp=()=> {
if (Math.abs(sliderPosition - gapPosition) < 10) {
onVerified();
} else {
setSliderPosition(0);
}
};
window.addEventListener('mousemove', handleSliderMove);
window.addEventListener('mouseup', handleSliderUp);
return ()=> {
window.removeEventListener('mousemove', handleSliderMove);
window.removeEventListener('mouseup', handleSliderUp);
};
}, [sliderPosition, gapPosition, onVerified]);
return (
<div className="captcha-container">
<img src="background.jpg" alt="captcha-background" />
<div
className="slider"
style={{ left: `${sliderPosition}px` }}
ref={sliderRef}
/>
</div>
);
};
export default SlidingCaptcha;
在SlidingCaptcha.css文件中,我们可以对组件进行样式调整,使其更加美观。
.captcha-container {
position: relative;
width: 300px;
height: 200px;
overflow: hidden;
}
.captcha-container img {
width: 100%;
height: 100%;
}
.slider {
position: absolute;
width: 50px;
height: 50px;
background-color: #3498db;
border-radius: 50%;
cursor: pointer;
user-select: none;
touch-action: none;
}
在需要使用滑动验证码的地方,引入SlidingCaptcha组件,并传入一个onVerified回调函数,当验证通过时调用。
import React from 'react';
import SlidingCaptcha from './SlidingCaptcha';
const App=()=> {
const handleVerified=()=> {
alert('验证通过!');
};
return (
<div>
<h1>滑动验证码示例</h1>
<SlidingCaptcha onVerified={handleVerified} />
</div>
);
};
export default App;
通过以上步骤,我们就实现了一个简单而美观的滑动验证码组件。当然,这只是一个基础版本,还有许多可以改进和扩展的地方。
通过以上的介绍,我们可以看到,用React实现一款滑动验证码组件并不是一件难事。只要你敢于尝试和创新,就能够创造出有趣而实用的前端组件。希望这篇文章能够给你带来一些启发和乐趣,也期待你在开源社区中展现出你的才华和热情!
滑动验证码小贴士: 当你在网页上遇到滑动验证码时,不妨尝试一下用鼠标、触摸板或者手机来滑动,看看哪种方式更顺手。也许你会发现,滑动验证码也是一种有趣的小游戏呢!
天的推文是之前答应大家的配色网站分享
文中提到的所有网站
基本上都是小编经常在用的
就觉得还蛮好用的
真诚地分享给大家
这些网站里有纯色配色网站,也有渐变色网站,大家可以根据自己的喜好选择适合自己的哦~言外之意就是,我觉得好用但你不一定觉得好用,如果你觉得不好用,那请别杠……谢谢
纯色配色网站
1
https://colordrop.io/
这个网站主要以四宫格颜色为一组配色,选择自己喜欢的一组颜色点击,然后在页面右边会显示每个颜色的颜色值:
2
https://colorhunt.co/
这个网站的配色也是以四个颜色为一组,但它对配色有进行分类:
3
http://zhongguose.com/
这个网站的颜色主要是一些中国传统色,每种颜色都有命名。然后,同色系的颜色是摆在一起的,所以用来做同色系配色也蛮好用的:
4
https://www.happyhues.co/
之前和咱们粉丝聊天时,她说直接拿到一组配色,完全不知道哪个颜色适合做背景,哪个颜色适合做点缀,就不太适合新手小白。
那这个网站呢,除了有配色方案,它还会给一张图片,图片的配色会根据配色方案来显示,所以颜色比例会比较直观。
然后在图片的下方,会有颜色值,注明了哪个颜色可以用作背景,哪个颜色可以用作高亮等,大家就可以参考着来完成自己的配色。
5
https://mycolor.space/
这个网站既可以提供纯色配色方案,也可以自主调整渐变色。
点击紫色按钮,选择一个颜色,再点下方的GENERATE生成按钮,页面往下滑,就会看到一些以该颜色生成的配色方案:
然后,我们可以点页面右上角第二个入口GRADIENT进入两种颜色渐变设置页面,第三个入口3-COLOR-GRADIENT是三种颜色渐变设置页面,两者的操作是一样的。
渐变色网站
1
http://gradientsguru.com/
这个网站都是现成的渐变色,找到自己喜欢的渐变色,点右上角的复制图标,复制颜色代码。
2
https://webgradients.com/
这也是一个现成的渐变色网站,点颜色圆圈右下角的Copy CSS可以复制渐变色颜色代码
3
https://cssgradient.io/
这个网站可以用来调渐变色,颜色长条一左一右的两个滑块可以左右滑动,调整颜色的区域:
鼠标点击长条中间任意位置,可以添加颜色:
调色区域下方可以选择线性渐变还是径向渐变,以及设置渐变角度:
4
https://www.css-gradient.com/
这个网站也是用来自主调渐变色的,主要是两种颜色渐变。
颜色可以自己选择,还可以设置径向渐变和线性渐变,也可以设置渐变角度:
5
https://www.grabient.com/
这个网站虽然有现成的渐变色,但我觉得更适合用它来自主调整渐变色。
它默认的有两色或三色渐变,点渐变色显示区域下面的加号可以自主增加渐变的颜色,点颜色圆圈可以修改颜色,想要删掉颜色拖动到加号即可删掉:
点左下角的角度图标,再用鼠标沿圆环转动,可以调整渐变角度:
好啦~
以上就是今天的全部内容
如果你们有其他用起来比较好的配色网站
也欢迎在留言里发出来讨论一下哦~
众号 web前端开发
翻译 | 杨小二
地址:https://grid.layoutit.com/
Layoutit grid 是一个 CSS Grid 布局生成器。使用干净的编辑器可以快速绘制网页布局,并获取HTML和CSS代码以快速启动你的下一个项目。你也可以在 CodePen上看到代码!
地址:https://cssgrid-generator.netlify.app/
该站点收集了示例、视频和其他信息,可帮助你学习 CSS 网格布局。由Rachel Andrew开发和维护。
地址:https://gridbyexample.com/
地址:https://cssgridgarden.com/
在学习 CSS Grid 的同时种植您的胡萝卜园。
地址:https://mastery.games/
在这里,你可以奠定周围的僵尸和实践Flexbox的; 在学习 CSS 网格的同时拯救一个可爱的外星物种。
地址:https://grid.malven.co/
地址:https://css-tricks.com/snippets/css/complete-guide-grid/
CSS Tricks 的 CSS 网格综合指南。
地址:https://cubic-bezier.com/#.17,.67,.83,.67
使用此工具可以快速生成预览三次贝塞尔曲线。
地址:http://cssanimation.io/
使用这个工具可以非常容易的创建你的动画,它还支持 GSAP。
地址:https://cssanimation.rocks/css-animation-101/
地址:https://flukeout.github.io/
使用 CSS Diner 练习你的 CSS 定位技巧。
地址:https://www.flexboxpatterns.com/
在这里你可以获得很多使用 Flexbox 的技巧和模式。
地址:https://flexboxfroggy.com/
地址:https://darekkay.com/flexbox-cheatsheet/
地址:https://devinduct.com/workshop/flexbox
地址:https://css-tricks.com/almanac/
地址:https://keyframes.app/
简单的可视化工具可帮助你为项目生成 CSS。
类似于视频编辑软件的可视化编辑器,可以用CSS创建基本或复杂的动画效果。
只需移动一些滑块即可创建单层或多层框阴影。并且可以获取 CSS 输出。
选择你喜欢的颜色,在十六进制和 RGB 之间转换,并创建和保存调色板。
地址:https://frontend30.com/css-selectors-cheatsheet/
此工具旨在快速查询搜索 CSS 选择器。
地址:https://www.cssfontstack.com/
从 Dan 的工具中获取 Web 安全字体等。
地址:https://bennettfeely.com/clippy/
获取你的剪辑路径的工具。
地址:https://tympanus.net/codrops/css_reference/
包含所有重要属性和广泛 CSS 信息参考,可帮助你从基础知识中学习CSS。
地址:https://cssreference.io/
这是另一个 CSS 参考资源。
地址:https://www.frontendmentor.io/
Frontend Mentor 有很多基于 HTML 和 CSS 的项目,你可以通过实际项目来完成挑战并改进你的风格。
地址:https://thecodeplayer.com/
视频样式演练展示了从头开始创建的很酷的东西。
地址:https://cssdb.org/
cssdb 是 CSS 功能及其在成为已实现的 Web 标准过程中的位置的综合列表。
地址:https://border-radius.com/
地址:https://cssbuttoncreator.com/
地址:https://www.bestcssbuttongenerator.com/
地址:https://www.samanthaming.com/
地址:https://specificity.keegan.st/
一种理解 CSS 特异性的直观方式。更改选择器或粘贴您自己的选择器。
地址:https://www.cleancss.com/css-minify/
压缩你的 CSS。
地址:https://100dayscss.com/
地址:https://csslayout.io/
使用 CSS 制作的流行布局和模式的集合。
地址:https://doodad.dev/pattern-generator/
地址:https://freefrontend.com/css-code-examples/
来自codepen.io和其他资源的免费 CSS 代码示例。
地址:https://hype4.academy/tools/glassmorphism-generator
地址:https://smolcss.dev/
现代 CSS 布局和组件的最小片段。
地址:https://lottiefiles.com/featured
免费动画。
*请认真填写需求信息,我们会在24小时内与您取得联系。