找到
177
篇与
站长可乐
相关的结果
- 第 5 页
-
一个花里胡哨的确认按钮(可复制源代码) 640.gif图片 真的很不错! <!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8" /> <title>一个花里胡哨的确认按钮</title> <style>.button{ --background: #1e2235; --color: #f6f8ff; --shadow: rgba(0, 9, 61, 0.24); --cannon-dark: #a6accd; --cannon-light: #f6f8ff; --cannon-shadow: rgba(13, 15, 24, 0.9); --confetti-1: #892ab8; --confetti-2: #ea4c89; --confetti-3: #ffff04; --confetti-4: #4af2fd; --z-before: -6; display: block; outline: none; cursor: pointer; position: relative; border: 0; background: none; padding: 9px22px9px16px; line-height: 26px; font-family: inherit; font-weight: 600; font-size: 14px; color: var(--color); -webkit-appearance: none; -webkit-tap-highlight-color: transparent; transition: transform var(--transform-duration, 0.4s); will-change: transform; transform-style: preserve-3d; transform: perspective(440px) rotateX(calc(var(--rx, 0) * 1deg)) rotateY(calc(var(--ry, 0) * 1deg)) translateZ(0);} .button:hover{ --transform-duration: 0.16s;} .button.success{ --confetti-scale: 0; --stroke-dashoffset: 15;} .button:before{ content: ""; position: absolute; left: 0; top: 0; right: 0; bottom: 0; border-radius: 12px; transform: translateZ(calc(var(--z-before) * 1px)); background: var(--background); box-shadow: 04px8pxvar(--shadow);} .button.icon, .buttonspan{ display: inline-block; vertical-align: top; position: relative; z-index: 1;} .button.icon{ --z: 2px; width: 24px; height: 14px; margin: 8px16px00; transform: translate( calc(var(--icon-x, 0) * 1px), calc(var(--icon-y, 0) * 1px) ) translateZ(2px);} .button.icon.confetti{ position: absolute; left: 17px; bottom: 9px;} .button.icon.confettisvg{ width: 18px; height: 16px; display: block; stroke-width: 1px; fill: none; stroke-linejoin: round; stroke-linecap: round;} .button.icon.confettisvg *{ transition: stroke-dashoffset 0.2s; stroke-dasharray: 1520; stroke-dashoffset: var(--stroke-dashoffset, 0); stroke: var(--stroke-all, var(--stroke, var(--confetti-2)));} .button.icon.confettisvg *:nth-child(2){ --stroke: var(--confetti-3);} .button.icon.confettisvg *:nth-child(3){ --stroke: var(--confetti-1);} .button.icon.confetti.emitter{ position: absolute; left: 4px; bottom: 4px; pointer-events: none;} .button.icon.confetti.emitterdiv{ width: 4px; height: 4px; margin: -2px00 -2px; border-radius: 1px; position: absolute; left: 0; top: 0; transform-style: preserve-3d; background: var(--confetti-all, var(--b, none));} .button.icon.confettii{ width: 4px; height: 4px; display: block; transform: scale(var(--confetti-scale, 0.5)); position: absolute; transition: transform 0.25s; left: var(--left, -1px); top: var(--top, 3px); border-radius: var(--border-radius, 1px); background: var(--confetti-background, var(--confetti-3));} .button.icon.confettii:nth-child(2){ --left: 9px; --top: -1px; --border-radius: 2px; --confetti-background: var(--confetti-4);} .button.icon.confettii:nth-child(3){ --left: 5px; --top: 3px; --confetti-background: var(--confetti-1);} .button.icon.confettii:nth-child(4){ --left: 10px; --top: 14px; --confetti-background: var(--confetti-2);} .button.icon.confettii:nth-child(5){ --left: 9px; --top: 7px; --confetti-background: var(--confetti-4);} .button.icon.confettii:nth-child(6){ --left: 6px; --top: 8px; --border-radius: 2px; --confetti-background: var(--confetti-2);} .button.icon.cannon{ position: relative; width: 24px; height: 14px; transform: translate(0, 3px) rotate(-45deg); filter: drop-shadow(-2px2px2px var(--cannon-shadow));} .button.icon.cannon:before, .button.icon.cannon:after{ content: ""; display: block; height: 14px;} .button.icon.cannon:before{ background: linear-gradient( var(--cannon-dark), var(--cannon-light) 50%, var(--cannon-dark) ); width: 100%; -webkit-clip-path: polygon(25px -1px, 052%, 25px15px); clip-path: polygon(25px -1px, 052%, 25px15px);} .button.icon.cannon:after{ width: 6px; position: absolute; right: -3px; top: 0; border-radius: 50%; box-shadow: inset 0000.5pxvar(--cannon-light); background: linear-gradient( 90deg, var(--cannon-dark), var(--cannon-light) );} .button.white{ --background: #fff; --color: #1e2235; --border: #e1e6f9; --shadow: none; --cannon-dark: #103fc5; --cannon-light: #275efe; --cannon-shadow: rgba(0, 9, 61, 0.2);} .button.white:before{ box-shadow: inset 0001pxvar(--border);} .button.grey{ --background: #404660; --cannon-shadow: rgba(13, 15, 24, 0.2); --cannon-dark: #d1d6ee; --cannon-light: #ffffff;} html{ box-sizing: border-box; -webkit-font-smoothing: antialiased;} *{ box-sizing: inherit;} *:before, *:after{ box-sizing: inherit;} body{ min-height: 100vh; display: flex; font-family: "Inter", Arial; justify-content: center; align-items: center; background: #f6f8ff;} body.button{ margin: 012px;} body.dribbble{ position: fixed; display: block; right: 20px; bottom: 20px;} body.dribbbleimg{ display: block; height: 28px;} body.twitter{ position: fixed; display: block; right: 64px; bottom: 14px;} body.twittersvg{ width: 32px; height: 32px; fill: #1da1f2;} </style> </head> <body> <button class="button"><div class="icon"><div class="cannon"></div><div class="confetti"><svg viewBox="0 0 18 16"><polyline points="1 10 4 7 4 5 6 1" /><path d="M4,13 C5.33333333,9 7,7 9,7 C11,7 12.3340042,6 13.0020125,4" /><path d="M6,15 C7.83362334,13.6666667 9.83362334,12.6666667 12,12 C14.1663767,11.3333333 15.8330433,9.66666667 17,7" /></svg><i></i><i></i><i></i><i></i><i></i><i></i><div class="emitter"></div></div></div><span>Confirm</span></button> <script src="https://cdn.jsdelivr.net/npm/gsap@3.13.0/dist/gsap.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/gsap@3.13.0/dist/Physics2DPlugin.min.js"></script> <script>document.querySelectorAll(".button").forEach((button)=>{ const bounding=button.getBoundingClientRect(); button.addEventListener("mousemove", (e)=>{ let dy=(e.clientY - bounding.top - bounding.height / 2) / -1; let dx=(e.clientX - bounding.left - bounding.width / 2) / 10; dy=dy >10 ? 10 : dy < -10 ? -10 : dy; dx=dx >4 ? 4 : dx < -4 ? -4 : dx; button.style.setProperty("--rx", dy); button.style.setProperty("--ry", dx);}); button.addEventListener("mouseleave", (e)=>{ button.style.setProperty("--rx", 0); button.style.setProperty("--ry", 0);}); button.addEventListener("click", (e)=>{ button.classList.add("success"); gsap.to(button,{ "--icon-x": -3, "--icon-y": 3, "--z-before": 0, duration: 0.2, onComplete(){ particles(button.querySelector(".emitter"), 100, -4, 6, -80, -50); gsap.to(button,{ "--icon-x": 0, "--icon-y": 0, "--z-before": -6, duration: 1, ease: "elastic.out(1, .5)", onComplete(){ button.classList.remove("success");},});},});});}); function particles(parent, quantity, x, y, minAngle, maxAngle){ let colors=["#FFFF04", "#EA4C89", "#892AB8", "#4AF2FD"]; for (let i=quantity - 1; i >=0; i--){ let angle=gsap.utils.random(minAngle, maxAngle), velocity=gsap.utils.random(70, 140), dot=document.createElement("div"); dot.style.setProperty( "--b", colors[Math.floor(gsap.utils.random(0, 4))] ); parent.appendChild(dot); gsap.set(dot,{ opacity: 0, x: x, y: y, scale: gsap.utils.random(0.4, 0.7),}); gsap .timeline({ onComplete(){ dot.remove();},}) .to( dot, { duration: 0.05, opacity: 1,}, 0 ) .to( dot, { duration: 1.8, rotationX: `-=${gsap.utils.random(720, 1440)}`, rotationZ: `+=${gsap.utils.random(720, 1440)}`, physics2D:{ angle: angle, velocity: velocity, gravity: 120,},}, 0 ) .to( dot, { duration: 1, opacity: 0,}, 0.8 );}} </script> </body> </html> -
程序员财务自由幻觉图鉴 1. "等公司上市就好了" 2016年加入创业公司时,CEO拍着我肩膀说: "现在工资是低了点,但等B轮融资后..." 2018年B轮了,他说:"等C轮估值上去..." 2020年终于上市了——我的期权刚好够买公司纪念品商店里的一个马克杯。 2. 程序员的财富幻想进化史 阶段1:接私活暴富 学生时代觉得"会写代码=印钞机" 第一次接外包:仿今日头条,预算5000块 结局:甲方要加"小小小功能",工时翻三倍 阶段2:等期权变现 每天查公司估值像查股票 学会新词:"行权价"、"锁定期"、"资本利得税" 最后发现税后还不够买厕所一平米 阶段3:加密货币 2017年错过比特币(觉得是骗局) 2021年错过狗狗币(觉得是玩笑) 2023年冲进屎币——终于成功被割 阶段4:知识付费 录了《21天成为全栈工程师》课程 销量主要靠亲朋好友友情支持 算上录制时间,时薪不如麦当劳打工 3. 那些年我们信过的财富神话 传说1:"有个前辈早年加入阿里..." 现实:你加入的是"阿里系"创业公司 区别相当于正版孙悟空和景区cosplay 传说2:"我朋友炒币赚了千万" 现实:他忘了说后来亏了两千万 以及他所谓的"炒币"其实是传销 传说3:"技术大牛都靠接咨询发财" 现实:你接到的咨询都是 "帮我侄子看下毕业设计" "简单做个淘宝那样的网站" 4. 财务自由等级对照表 等级描述实现方式幻觉级植发自由年终奖够做一次FUE入门级显卡自由买RTX4090不眨眼进阶级外卖自由点餐敢选"无需凑单"终极级离职自由存款够骂老板后裸辞(大部分人卡在"星巴克自由"和"打车自由"之间) 5. 可乐的破产经验谈 (1) 那些亏钱的骚操作 跟风买矿机(到货时矿难了) 投资朋友"绝对靠谱"的区块链项目(后来他失联了) 炒股(把技术分析学成了玄学) (2) 唯一赚到钱的项目 老实写代码领工资 虽然无聊,但比炒币踏实 (3) 血泪教训 当你听说某个"稳赚"的机会时,已经晚了 程序员最容易犯的错:以为技术好=投资厉害 真实财富密码:有个富二代室友/前同事/同学 6. 当代程序员财富焦虑解决方案 方案1:降低标准 把"财务自由"重新定义为"外卖自由" 发现瞬间就实现了 方案2:转移焦点 关注"时间自由"而不是"财富自由" 比如争取远程工作,省下通勤时间 方案3:创造副业 写技术博客(虽然赚不到钱但能装逼) 做开源项目(虽然倒贴钱但能镀金) 方案4:终极解法 卸载所有财经APP 屏蔽那些"成功上岸"的前同事朋友圈 专注写代码,等35岁被优化时再说 7. 残酷真相 用Python分析了身边100个"财务自由"案例: 80%靠家里拆迁/继承家产 15%是早期加入巨头公司的幸运儿 5%是真正的创业成功者(其中4个已秃) 最终觉悟: 我们这代人注定在"等公司上市"和"等老家拆迁"之间反复横跳。 (所以还是先把今天的代码提交了吧) (完) 下期预告 《程序员年龄焦虑实录:从"少年天才"到"大龄码农"》 那些25岁当CTO和35岁送外卖的故事 技术更新的速度 vs 头发掉落的速度 如何让自己在年轻同事面前不显得像出土文物 (想看扣⌨️,让我看看多少同行开始焦虑了) -
程序员相亲指南:从"我修电脑的"到"我搞算法的" 1. "你是做什么工作的?" 这道送命题 第一次相亲,我老实回答:"我是程序员。" 对方眼睛一亮:"太好了!我电脑特别卡..." 第二次相亲,我改口:"我是搞算法的。" 对方若有所思:"就是抖音那种让人上瘾的?" 第三次相亲,我直接说:"我是做人工智能的。" ——终于成功把天聊死了。 2. 技术直男相亲翻车现场 场景一:约会地点选择 ❌ "我知道有家网吧环境不错..." ✅ "我订了VR体验馆的双人套餐"(虽然最后还是去网吧开黑了) 场景二:聊天话题 ❌ "你知道TCP三次握手吗?" ✅ "你平时刷短视频多吗?其实推送算法..."(强行拐回舒适区) 场景三:形象管理 ❌ 格子衫+双肩包+三天没洗的头 ✅ 黑色hoodie+MacBook Air(假装不经意露出苹果logo) 3. 程序员相亲简历优化指南 真实情况简历写法修bug的分布式系统稳定性工程师写CRUD的企业级应用架构师调参的机器学习算法专家删库跑路的前数据中心安全顾问特别技巧: 在自我介绍里加一句"偶尔写技术博客"(即使你上次更新是2018年) 4. 相亲市场技术栈鄙视链 顶层: 量化交易(听起来像能赚大钱) 自动驾驶("下一个Elon Musk"光环) 中层: 人工智能(已从神坛跌落,但还有余温) 区块链(解释不清但感觉很厉害) 底层: 前端开发("就是做网页的吧?") 测试工程师("你们是不是专门找bug的?") 地狱级: "我在家接外包" "目前待业,但有个很棒的创业idea" 5. 当约会遇上线上故障 真实故事: 烛光晚餐刚上菜 企业微信报警:生产环境挂了 掏出笔记本当场改代码 对方感动地说:"你工作的样子好专注..." 第二天收到信息:"我觉得你更爱你的电脑" 6. 来自可乐的保命建议 (1) 话题黑名单 解释什么是前后端分离 吐槽产品经理的奇葩需求 展示你的机械键盘收藏 (2) 形象急救包 常备一件纯色衬衫在办公室 学会用发蜡(至少约会前洗头) 把"我平时就爱宅着"改成"我享受深度思考的独处时光" (3) 终极话术 当被问"你们是不是都很木讷"时: "我们只是习惯用二进制思考——要么0,要么1。但对你,我想试试浮点数。" (慎用,可能收获白眼或心动) 7. 残酷真相 最近用Python分析了相亲数据: 提到"年薪"时回复率提升200% 提到"加班"时对话结束概率80% 提到"期权"的效果取决于对方知不知道这可能是废纸 最终觉悟: 与其在相亲市场被算法匹配,不如自己写个推荐系统。 (但写着写着发现,还是和代码谈恋爱比较单纯) (完) 下期脑洞 《程序员财务自由幻觉图鉴》 从"等公司上市"到"接外包暴富"的幻想演变史 那些年我们错过的比特币和狗狗币 终极真相:其实只想赚够植发钱 (想看扣💰,让我看看多少同行还在做暴富梦) -
程序员养生指南:从枸杞保温杯到电子针灸 1. "年纪轻轻就开始养生?" 上周团队来了个00后实习生,看到我工位上的装备后发出灵魂拷问: 升降桌(调到最高站着写代码) 护眼仪(午休时像戴个VR眼镜) 分装药盒(维生素B+护肝片) 他憋了半天问:"可乐哥...您今年贵庚?" 我默默按下电动升降桌的下降按钮:"这叫未雨绸缪,等你debug到凌晨三点就懂了。" 2. 工位养生装备大赏 青铜段位:基础生存包 枸杞保温杯(中年程序员的入场券) 颈椎按摩仪(skg基础款,用久了会积灰) 防蓝光眼镜(实际用途:掩饰黑眼圈) 黄金段位:硬核朋克养生 电子针灸贴片(写着写着代码突然开始电自己) 血糖监测手表(用来发现咖啡因摄入超标) 便携式吸氧瓶(冲刺上线时使用) 王者段位:赛博修仙 脑电波监测头环(号称能提升专注力) 红外线理疗腰带(边修复腰椎边coding) 智能药盒(蓝牙连接手机提醒吃药) 3. 那些年我们交过的养生智商税 踩雷清单: 石墨烯内裤(宣称防辐射,实际只是贵) 量子波动速读U盘(插电脑上屁用没有) 程序员专用能量手环(就是LED灯会闪) 幸存清单: 人体工学椅(真的能救老腰) 升降桌(站坐交替确实舒服) 褪黑素软糖(失眠时比数羊管用) 4. 硅谷生物黑客 vs 中关村朋克养生 流派硅谷玩法中关村玩法提神防弹咖啡+莫达非尼红牛泡枸杞监测全天候血糖仪+脑电波头环小米手环测睡眠治疗高压氧舱+冷冻疗法盲人按摩+拔火罐终极目标活到120岁还能写代码35岁前别猝死就行5. 可乐的实用养生技巧 (1) 办公室微运动 每小时代码评审时做颈椎操(动作要自然,像在思考) 上厕所走最远的那个坑位(强行增加步数) 用深蹲姿势捡掉落的U盘(一举两得) (2) 饮食黑客 把维生素分装进药盒(看起来像资深病号) 点外卖时备注"少油少盐"(然后配着辣条吃) 下午茶换成坚果(但薯片也在抽屉里备着) (3) 心理按摩 设置"假下班"闹钟(18点准时关显示器发呆5分钟) 在IDE里装彩虹括号插件(保护心理健康) 把产品经理需求文档打印出来当减压玩具 6. 当养生遇上deadline 真实场景: 养生闹钟响起:"该做眼保健操了" 看了眼未解决的bug 长按闹钟关闭:"今天先养死,明天再养生" 7. 终极觉悟 最近体检报告显示: 颈椎曲度变直 轻度脂肪肝 维生素D缺乏 医生建议:"少熬夜多运动" 我的改进方案: 换了更贵的护颈枕 买了能监测睡眠的手环 把熬夜改叫"错峰养生" 毕竟—— 只要保养做得早,35岁还能跑得动 (跑路转行的跑) (完) 下期预告 《程序员相亲指南:从"我修电脑的"到"我搞算法的"》 技术直男如何包装LinkedIn式相亲简历 第一次约会该穿格子衫还是hoodie 当对方问"你具体是做什么的"时的艺术回答 (想看扣❤️,让我看看多少同行需要抢救感情生活)