# 前端基础案例 **Repository Path**: stonebox/web-basic-cases ## Basic Information - **Project Name**: 前端基础案例 - **Description**: 基于HTML、CSS、Javascript的基础案例,为便于记忆和查找,文件均采用中文命名。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2024-01-24 - **Last Updated**: 2024-01-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 前端基础案例 ### 介绍 基于HTML、CSS、Javascript的基础案例,为便于记忆和查找,文件均采用中文命名。 ### 目录 #### HTML和CSS案例 ##### 01浮动布局案例 需求:利用浮动进行页面布局  ##### 02粘性定位案例 需求:窗口滚动到相应区域标题固定,超出区域则隐藏  ##### 03元素居中方式 ```css /* 方案一:定位+变换 */ /* position: relative; */ /* 方案二:flex布局+margin:auto */ /* display: flex; */ /* 方案三:flex布局 */ /* display: flex; justify-content: center; align-items: center; */ ``` ##### 04过渡案例 需求:鼠标悬浮于图片显示文字阴影效果,背景图片旋转  ##### 05动画案例 需求:骑自行车动画效果  ##### 06伸缩盒模型案例 需求:使用flex布局渲染页面  #### Javascript案例 ##### 01书写位置 js书写位置 ##### 02输出 ```js // document.getElementById("demo").innerHTML=5+8; // document.write(5+6); // window.alert(5+6); // console.log(5+6); // alert('你好js') ``` ##### 03综合案例渲染表格 需求:提示框输入商品名称、价格、数量、收货地址,计算总价并以表格形式展示  ##### 04数字补0 ```js let num=prompt('输入数字') num = num<10?0+num:num alert(num) ``` ##### 05简单计算器 ```js let num1=+prompt('输入一个数字') let str=prompt('输入运算符') let num2=+prompt('输入一个数字') switch (str) { case '+': alert(num1+num2) break; case '-': alert(num1-num2) break; case '*': alert(num1*num2) break; case '/': alert(num1/num2) break; default: alert(false) break; } ``` ##### 06简单取款机 ```js let money = 1000 while (true) { let op = +prompt(` 请选择: 1、存钱 2、取钱 3、查看余额 4、退出 `) if(op===4){ break } switch (op) { case 1: let cun = +prompt('存钱金额') money+=cun break; case 2: let qu = +prompt('取钱金额') money-=qu break; case 3: alert(money) break; default: alert('请选择1-4') break; } } ``` ##### 07综合案例渲染柱形图 需求:根据输入数据渲染柱形图  ##### 08冒泡排序 ```js function getSort(arr) { for (let i = 0; i < arr.length - 1; i++) { for (let j = 0; j < arr.length - 1 - i; j++) { if (arr[j] > arr[j + 1]) { let temp = 0; temp = arr[j] arr[j] = arr[j + 1] arr[j + 1] = temp } } } return arr } ``` ##### 09时间转换 ```js let second = prompt('输入秒数:') function getTime(t){ let h=parseInt(t/60/60%24) let m=parseInt(t/60%60) let s=parseInt(t%60) h=h<10?'0'+h:h m=m<10?'0'+m:m s=s<10?'0'+s:s return `转换后的时间为${h}时${m}分${s}秒` } let str=getTime(second) document.write(str) ``` ##### 10猜数字游戏 ```js // 最多猜三次 let flag = true for (let i = 0; i < 3; i++) { let num = +prompt('请输入1-10之间的数字') if (num > random) { alert('猜大了') } else if (num < random) { alert('猜小了') } else { flag=false alert('猜对了') break } } if(flag){ alert('次数已用完') } ``` ##### 11随机颜色案例 ```js function getColor(flag=true){ if(flag){ let str='#' let arr= ['0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f'] for(let i=0;i<6;i++){ let random=Math.floor(Math.random()*arr.length) str+=arr[random] } return str }else{ let r=Math.floor(Math.random()*256) let g=Math.floor(Math.random()*256) let b=Math.floor(Math.random()*256) return `rgb(${r},${g},${b})` } } console.log(getColor(true)) ``` ##### 12dom随机抽奖  ##### 13dom轮播图 需求:1、图片每隔1.5s自动切换 2、标题和小圆点切换为当前图片 3、鼠标悬浮图片定制播放 4、左右按钮切换图片  ##### 14定时器 需求:确定按钮5s后方可点击  ##### 15随机点名案例 需求:1、点击开始按钮动态随机显示姓名 2、点击结束显示随机姓名 3、已点过名的不能再次点名  ##### 16小米搜索框 需求:搜索框输入显示搜索提示  ##### 17发布评论案例 需求:1、鼠标悬浮文本框,高度增加 2、文本框获取焦点显示字数统计 3、按下回车或点击发布按钮,显示发布的信息  ##### 18tab切换案例 需求:鼠标经过tab栏链接变为红色,内容随之更换  ##### 19全选按钮案例  ##### 20事件委托 ```html
p标签