0


【前端】实际开发案例

文章目录

1. 侧边栏

鼠标经过时,变色

<!DOCTYPEhtml><htmllang="Cn_zh"><head><metacharset="UTF-8"><metahttp-equiv="X-UA-Compatible"content="IE=edge"><metaname="viewport"content="width=device-width, initial-scale=1.0"><title>选择器</title><style>div{display: inline-block;width: 200px;height: 300px;background-color:rgb(224, 118, 118);}a{display: inline-block;text-decoration: none;width: 200px;height: 50px;font-size: 20px;text-indent: 2em;line-height: 50px;color:rgb(248, 241, 241);background-color:rgb(83, 87, 88);}a:hover{background-color:rgb(225, 111, 0);}</style></head><div><ahref="#">手机</a><ahref="#">电视</a><ahref="#">笔记本</a><ahref="#">出行</a><ahref="#">智能</a><ahref="#">健康</a><ahref="#">耳机</a></div></body></html>

在这里插入图片描述

2. 调查报告

基础的表单实例

<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metahttp-equiv="X-UA-Compatible"content="IE=edge"><metaname="viewport"content="width=device-width, initial-scale=1.0"><title>综合案列</title><style>input:focus{/* color: pink; */background-color:rgb(100, 223, 18);}</style></head><body><tablecellspacing="10"width="600"><tr><tdcolspan="2"><h4>青春不常在,抓紧谈恋爱</h4></td></tr><!-- 第一行 --><tr><td>性别</td><td><inputtype="radio"required="required "name="xingbie"id="男"/><labelfor="男"><imgsrc="图片/桌面GIF图标/性别男.jpg"width="25"/>男</label>&nbsp;<inputtype="radio"name="xingbie"id="女"/><labelfor="女"><imgsrc="图片/桌面GIF图标/性别女.jpg"width="25"/>女</label></td></tr><!-- 第二行 --><tr><tdclass="red">生日</td><td><select><option>---请选择年---</option><option>1991年</option><option>1992年</option><option>1993年</option><option>1994年</option><option>1995年</option><option>1996年</option><option>1997年</option><option>1998年</option><option>1999年</option><option>2000年</option><option>2001年</option><option>2002年</option><option>2003年</option><option>2004年</option><option>2005年</option><option>2006年</option><option>2007年</option><option>2008年</option><option>2009年</option><option>2010年</option><option>2011年</option><option>2012年</option><option>2013年</option><option>2014年</option><option>2015年</option><option>2016年</option><option>2017年</option><option>2018年</option><option>2019年</option><option>2020年</option><option>2021年</option><option>2022年</option></select><select><option>---请选择月---</option><option>1月</option><option>2月</option><option>3月</option><option>4月</option><option>5月</option><option>6月</option><option>7月</option><option>8月</option><option>9月</option><option>10月</option><option>11月</option><option>12月</option></select><select><option>---请选择日---</option><option>1日</option><option>2日</option><option>3日</option><option>4日</option><option>5日</option><option>6日</option><option>7日</option><option>8日</option><option>9日</option><option>10日</option><option>11日</option><option>12日</option><option>13日</option><option>14日</option><option>15日</option><option>16日</option><option>17日</option><option>18日</option><option>19日</option><option>20日</option><option>21日</option><option>22日</option><option>23日</option><option>24日</option><option>25日</option><option>26日</option><option>27日</option><option>28日</option><option>29日</option><option>30日</option><option>31日</option></select></td></tr><!-- 第三行 --><tr><td>所在地区</td><td><inputtype="text"/></td></tr><!-- 第四行 --><tr><td>婚姻情况</td><td><inputtype="radio"name="hunyin"id="未婚"/><labelfor="未婚">未婚</label>&nbsp;<inputtype="radio"name="hunyin"id="已婚"/><labelfor="已婚">已婚</label>&nbsp;<inputtype="radio"name="hunyin"id="离婚"/><labelfor="离婚">离婚</label>&nbsp;</td></tr><!-- 第五行 --><tr><td>学历</td><td><inputtype="text"/></td></tr><!-- 第六行 --><tr><td>喜欢的水果</td><td><inputtype="checkbox"name="hunyin"id="1"/><labelfor="1">苹果</label>&nbsp;<inputtype="checkbox"name="hunyin"id="2"/><labelfor="2">橘子</label>&nbsp;<inputtype="checkbox"name="hunyin"id="3"/><labelfor="3">葡萄</label>&nbsp;<inputtype="checkbox"name="hunyin"id="4"/><labelfor="4">梨子</label>&nbsp;<inputtype="checkbox"name="hunyin"id="5"/><labelfor="5">芒果</label>&nbsp;</td></tr><tr><tb><inputtype="file"multiple:"multiple"name="hunyin"id="1"/><labelfor="1">上传资源</label></tb></tr><!-- 第七行 --><tr><td>自我介绍</td><td><textarearows="3"cols="20"></textarea></td></tr><!-- 第八行 --><tr><td></td><td><inputtype="submit"value="免费注册"/><br><inputtype="checkbox"checked="checked"id="同意"/><labelfor="同意">我同意注册条款和会员加入标准</label><br><ahref="#">我是会员,立即登录</a></td></tr><!-- 第九行 --><tr><td></td><td><h3>我承诺</h3><ul><li>年满18岁,单身</li><li>把着严肃的态度</li><li>真诚寻找另一半</li></ul></td></tr></table></body></html>

在这里插入图片描述

3. 显示隐藏遮罩案列

鼠标在上面显示播放图标

<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metahttp-equiv="X-UA-Compatible"content="IE=edge"><metaname="viewport"content="width=device-width, initial-scale=1.0"><title>仿土豆网显示隐藏遮罩案列</title>>

    <style>*{margin: 0;padding: 0;}.tudou{position: relative;width:444px;height: 320px;background-color: pink;margin: 30px auto;}.tudou img{width: 100%;height: 100%;}.mask{/* 隐藏 */display: none;position: absolute;top: 0;left: 0;width: 100%;height: 100%;background:rgba(0, 0, 0, .4)url(图片/播放图标.png) no-repeat center;}.tudou:hover .mask{/* 显示 */display: block;}</style></head><body><divclass="tudou"><divclass="mask"></div><imgsrc="http://t15.baidu.com/it/u=1810572718,3307870279&fm=224&app=112&f=JPEG?w=350&h=350"alt=""></div></body></html>

在这里插入图片描述

4. 鼠标经过,图片放大

<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metahttp-equiv="X-UA-Compatible"content="IE=edge"><metaname="viewport"content="width=device-width, initial-scale=1.0"><title>2D动画之图片放大</title><style>.doxss{overflow: hidden;margin: 10px;float: left;}.doxss img{transition: all 1s;}.doxss img:hover{transform:scale(1.5);}</style></head><body><divclass="doxss"><imgsrc="/Picture/动图合集/2.gif"alt=""></div></body></html>

在这里插入图片描述

5. 奔跑的熊

<!DOCTYPEhtml><htmllang="Cn_zh"><head><metacharset="UTF-8"><metahttp-equiv="X-UA-Compatible"content="IE=edge"><metaname="viewport"content="width=divdiv, initial-scale=1.0"><title>Document</title><style>.ss{width: 100%;height: 450px;background-image:url(/Picture/静态合集/山峰.jpg);}.ss .ss1{position: absolute;width: 185px;height: 100px;top: 64%;background:url(/Picture/静态合集/熊.png) no-repeat;animation: xiong 1s steps(8) infinite, zhongxin 3s forwards;}@keyframes xiong{0%{background-position: 0 0;}100%{background-position: -1500px 0;}}@keyframes zhongxin{0%{left:0;}100%{left:45%;transform:translateX(-50%);}}</style></head><body><divclass="ss"><divclass="ss1"></div></div></body></html>

在这里插入图片描述

6. 旋转木马

<!DOCTYPEhtml><htmllang="Cn_zh"><head><metacharset="UTF-8"><metahttp-equiv="X-UA-Compatible"content="IE=edge"><metaname="viewport"content="width=device-width, initial-scale=1.0"><title>Document</title><style>body{perspective: 1000px;background-color: pink;}section{position: relative;transform-style: preserve-3d;width: 300px;height: 200px;margin: 300px auto;animation: xzmm 10s linear infinite;}section:hover{animation-play-state: paused;}@keyframes xzmm{0%{transform:rotateY(0);}100%{transform:rotateY(360deg);}}section div{position: absolute;top: 0;left: 0;width: 100%;height: 100%;background:url(/Picture/动图合集/雨滴.gif) no-repeat;}section div:nth-child(1){transform:translateZ(300px);}section div:nth-child(2){transform:rotateY(60deg)translateZ(300px);}section div:nth-child(3){transform:rotateY(120deg)translateZ(300px);}section div:nth-child(4){transform:rotateY(180deg)translateZ(300px);}section div:nth-child(5){transform:rotateY(240deg)translateZ(300px);}section div:nth-child(6){transform:rotateY(300deg)translateZ(300px);}</style></head><body><section><div></div><div></div><div></div><div></div><div></div><div></div><div></div></section></body></html>

在这里插入图片描述

7. 百度换肤

点击图片,更换背景
<!DOCTYPEhtml><htmllang="Cn_zh"><head><metacharset="UTF-8"><metahttp-equiv="X-UA-Compatible"content="IE=edge"><metaname="viewport"content="width=device-width, initial-scale=1.0"><!-- <script src="my.js"></script> --><title>Document</title></head><body><style>img{position: relative;width: 100px;height: 100px;margin: auto;left: 20%;margin-top: 50px;}</style><imgsrc="/Picture/静态合集/大背景.gif"alt=""><imgsrc="/Picture/静态合集/黑背景.gif"alt=""><imgsrc="/Picture/动图合集/雨滴.gif"alt=""><imgsrc="/Picture/动图合集/1.gif"alt=""><script>// 1. 获取元素var imgs = document.getElementsByTagName('img');var body = document.body;// 2. 循环注册事件for(var i =0; i < imgs.length; i++){
            imgs[i].onclick=function(){// 1) 先把所有的背景去掉  干掉所有人for(var i =0; i < imgs.length; i++){
                    body.style.backgroundImage ='';}// 2) 然后让当前点击元素的url为body的url  留下我自己
                body.style.background ='url('+this.src+')';}}</script></body></html>

在这里插入图片描述

8. tab栏切换

跟着tab栏切换,内容也跟着变
<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metahttp-equiv="X-UA-Compatible"content="IE=edge"><metaname="viewport"content="width=device-width, initial-scale=1.0"><title>tab栏切换</title><style>*{margin: 0;padding: 0;}.tab{padding: 10px 20px;}.tab .tab_list{background-color: #eef1ee;height: 39px;border: 1.5px solid #d8dad8;}.tab_list li{float: left;line-height: 38px;padding: 0 20px;list-style: none;text-align: center;cursor: pointer;}.tab_list .current{position: relative;top: -1px;background-color: #c81623;color: #fff;border: 1.5px solid #b95c53;}.tab_con .item{display: none;}</style></head><body><divclass="tab"><divclass="tab_list"><ul><liclass="current">商品介绍</li><li>规格与包装</li><li>销后保障</li><li>商品评价</li><li>手机社区</li></ul></div><divclass="tab_con"><divclass="item"style="display: block;">
                商品介绍模块内容
            </div><divclass="item">
                规格与包装模块内容
            </div><divclass="item">
                销后保障模块内容
            </div><divclass="item">
                商品评价模块内容
            </div><divclass="item">
                手机社区模块内容
            </div></div></div><script>var lis = document.getElementsByTagName('li');var item = document.getElementsByClassName('item');
        console.log(lis);for(var i =0; i < lis.length; i++){
            lis[i].setAttribute('index', i);
            lis[i].onclick=function(){for(var i =0; i < lis.length; i++){
                    lis[i].className ='';
                    item[i].style ='display: none;';}this.className ='current';var index =this.getAttribute('index');
                item[index].style ='display: block;';}}</script></body></html>

在这里插入图片描述

9. 下拉菜单

鼠标经过,显示下拉菜单
<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metahttp-equiv="X-UA-Compatible"content="IE=edge"><metaname="viewport"content="width=device-width, initial-scale=1.0"><title>下拉菜单</title><style>li{list-style: none;}a{text-decoration: none;}.nav>li{float: left;margin: 0 10px;}.nav li a{/* background-color: pink; */padding-left: 10px;}.nav>li>a:hover{background-color: #eee;}.nav ul{display: none;position: absolute;padding: 0px;margin: 0;/* width: 100%; */border-left: 1px solid #FECC5B;border-right: 1px solid #FECC5B;}.nav ul li{border-bottom: 1px solid #FECC5B;}.nav ul li a{padding: 0 10px;}.nav ul li a:hover{background-color: #FFF5DA;}</style></head><body><ulclass="nav"><li><!-- ∧∨ --><ahref="#">微博<spanid="l">∨</span></a><ul><li><ahref="">私信</a></li><li><ahref="">评论</a></li><li><ahref="">@我</a></li></ul></li><li><ahref="#">微信<spanid="l">∨</span></a><ul><li><ahref="">私信</a></li><li><ahref="">评论</a></li><li><ahref="">@我</a></li></ul></li><li><ahref="#"> QQ <spanid="l">∨</span></a><ul><li><ahref="">私信</a></li><li><ahref="">评论</a></li><li><ahref="">@我</a></li></ul></li></ul><script>// 1. 获取元素var nav = document.querySelector('.nav');var span = document.querySelectorAll('#l');var lis = nav.children;
        console.log(span);// 2. 循环注册事件for(var i =0; i < lis.length; i++){
            lis[i].onmouseover=function(){this.children[1].style.display ='block';}
            lis[i].onmouseout=function(){this.children[1].style.display ='none';}}</script></body></html>

在这里插入图片描述

10. 发布留言

进行留言,删除等操作
<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metahttp-equiv="X-UA-Compatible"content="IE=edge"><metaname="viewport"content="width=device-width, initial-scale=1.0"><title>发言留言板</title><style>*{padding: 0;margin: 0;}textarea{resize: none;}.box{background-color:rgb(255, 234, 234);width: 300px;padding: 20px 10px;}li{margin-top: 10px;list-style: none;background-color: pink;}li a{text-decoration: none;float: right;}</style></head><body><divclass="box"><textarearows="4"id="wenbenyu"></textarea><inputtype="button"value="发布"name=""id="anniu"><ul></ul></div><script>var textarea = document.getElementById('wenbenyu');var input = document.getElementById('anniu');var ul = document.querySelector('ul');// 获取父节点

        input.onclick=function(){if(textarea.value ==''){alert('你没有输入内容');returnfalse;}else{// 1. 创建节点元素节点var li = document.createElement('li');
                li.innerHTML = textarea.value +'<a href="#">删除</a>';// 添加元素
                ul.insertBefore(li, ul.children[0]);// 删除元素varas= document.querySelectorAll('a');for(var i =0; i <as.length; i++){as[i].onclick=function(){
                        ul.removeChild(this.parentNode);}}}}</script></body></html>

在这里插入图片描述

11. 动态生成表格

动态生成表格,可以对其进行删除
<!DOCTYPEhtml><htmllang="Cn_zh"><head><metacharset="UTF-8"><metahttp-equiv="X-UA-Compatible"content="IE=edge"><metaname="viewport"content="width=device-width, initial-scale=1.0"><title>动态表格</title><style>table{width: 500px;margin: 100px auto;border-collapse: collapse;text-align: center;}td, th{border: 1px solid #333;}thead tr{height: 40px;background-color: #ccc;}</style></head><body><tablecellspacing="0"><thead><trstyle="background-color: #cacdca;"><th>姓名</th><th>科目</th><th>成绩</th><th>操作</th></tr></thead><tbody></tbody></table><script>// 1. 准备数据var dates =[{name:'买买提',subject:'Javascript',score:100},{name:'古丽',subject:'Javascript',score:100},{name:'艾莉',subject:'Javascript',score:100},{name:'卖力',subject:'Javascript',score:100},];// 2. tbody创建行var tbody = document.querySelector('tbody');for(var i =0; i < dates.length; i++){// 1) 创建 trvar tr = document.createElement('tr');
            tbody.appendChild(tr);// 2) 行里面创建单元格for(var k in dates[i]){// 创建单元格var td = document.createElement('td');// 把对象里面的属性值 dates[i][k] 给td
                td.innerHTML = dates[i][k];
                tr.appendChild(td);}// 3) 操作单元格创建var td = document.createElement('td');
            td.innerHTML ='<a href="javascript:;">删除</a>';
            tr.appendChild(td);}// 3. 删除操作设置var a = document.querySelectorAll('a');for(var i =0; i < a.length; i++){
            a[i].onclick=function(){
                tbody.removeChild(this.parentNode.parentNode);}}</script></body></html>

在这里插入图片描述

12. 图片跟随鼠标移动

图片随着鼠标一起移动
<!DOCTYPEhtml><htmllang="Cn_zh"><head><metacharset="UTF-8"><metahttp-equiv="X-UA-Compatible"content="IE=edge"><metaname="viewport"content="width=device-width, initial-scale=1.0"><title>图片跟随鼠标移动</title><style>img{position: absolute;}</style></head><body><imgsrc="/Picture/桌面GIF图标/播放图标.png"alt=""><script>var img = document.querySelector('img');
        document.addEventListener('mousemove',function(e){
            console.log(e.clientX);
            console.log(e.clientY);
            img.style.left = e.pageX -15+'px';
            img.style.top = e.pageY -15+'px ';});</script></body></html>

在这里插入图片描述

13. 按键输入内容

按 s 键,输入框获取焦点
<!DOCTYPEhtml><htmllang="Cn_zh"><head><metacharset="UTF-8"><metahttp-equiv="X-UA-Compatible"content="IE=edge"><metaname="viewport"content="width=device-width, initial-scale=1.0"><title>按键输入内容</title><style></style></head><body><inputtype="text"name=""placeholder="请输入"id=""><script>var input = document.querySelector('input');
        document.onkeyup=function(e){
            console.log(e.keyCode);if(e.keyCode ==83){
                input.focus();
                input.onkeypress=function(e){
                    input.value = e.key;}}}</script></body></html>

在这里插入图片描述

14. 定时器实现

实现计时功能
<!DOCTYPEhtml><htmllang="Cn_zh"><head><metacharset="UTF-8"><metahttp-equiv="X-UA-Compatible"content="IE=edge"><metaname="viewport"content="width=device-width, initial-scale=1.0"><title>定时器</title><style>span{float: left;width: 20px;height: 20px;background-color: #000;color: #fff;padding-left: 10px;padding-right: 10px;margin: 2px;}</style></head><body><spanclass="hour">1</span><spanclass="minute">1</span><spanclass="second">1</span><script>// 获取元素var hour = document.querySelector('.hour');// 小时var minute = document.querySelector('.minute');// 分钟var second = document.querySelector('.second');// 秒var inputTime =+newDate('2022-12-26 14:41:00');// 返回的是用户输入时间总的毫秒数conutDown();// 先调用一次// 开启定时器var timer =setInterval(conutDown,1000);functionconutDown(){var nowTIme =+newDate();// 返回的时当前时间总的毫秒数var times =(inputTime - nowTIme)/1000;// time 是剩余时间总的毫秒数if(times <=0){
                window.clearInterval(timer);}var h =parseInt(times /60/60%24);// 时
            h = h <10?'0'+ h : h;
            hour.innerHTML = h;var m =parseInt(times /60%60);// 分
            m = m <10?'0'+ m : m;
            minute.innerHTML = m;var s =parseInt(times %60);// 当前的秒
            s = s <10?'0'+ s : s;
            second.innerHTML = s;}</script></body></html>

在这里插入图片描述

15. 发送短信

点击按钮,发送短信,五秒后获取
<!DOCTYPEhtml><htmllang="Cn_zh"><head><metacharset="UTF-8"><metahttp-equiv="X-UA-Compatible"content="IE=edge"><metaname="viewport"content="width=device-width, initial-scale=1.0"><title>发送短信</title><style></style></head><body><inputtype="text"name=""placeholder="请输入验证码"><button>发送</button><script>// 获取元素var input = document.querySelector('input');var btn = document.querySelector('button');
        btn.addEventListener('click',function(){this.disabled =true;conutDown();var timer =setInterval(conutDown,1000);})// 开启定时器var inputTime =+newDate('2022-12-7 13:49:00');// 返回的是用户输入时间总的毫秒数functionconutDown(){var nowTIme =+newDate();// 返回的时当前时间总的毫秒数var times =(inputTime - nowTIme)/1000;// time 是剩余时间总的毫秒数if(times <=0){
                input.value ='235432';
                btn.innerHTML ='发送';
                btn.disabled =false;
                window.clearInterval(timer);}else{var s =parseInt(times %60);// 当前的秒
                s = s <10?'0'+ s : s;
                btn.innerHTML ='还剩'+ s +'秒再次点击';}}</script></body></html>

在这里插入图片描述

16. 5秒后跳转页面

五秒后自动跳转页面
<!DOCTYPEhtml><htmllang="Cn_zh"><head><metacharset="UTF-8"><metahttp-equiv="X-UA-Compatible"content="IE=edge"><metaname="viewport"content="width=device-width, initial-scale=1.0"><title>倒计时跳转页面</title><style></style></head><body><div></div><script>var div = document.querySelector('div');var timer =5;setInterval(function(){if(timer ==0){
                location.href ='http://www.baidu.com';}else{
                div.innerHTML ='你将在'+ timer +'秒钟之后跳转到百度';
                timer--;}},1000);</script></body></html>

在这里插入图片描述

17. 获取URL参数数据

// login.html

<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metahttp-equiv="X-UA-Compatible"content="IE=edge"><metaname="viewport"content="width=device-width, initial-scale=1.0"><title>登陆页面</title></head><body><formaction="index.html"><div>登陆页面</div>
        用户名:<inputtype="text"name="uname"id=""><inputtype="submit"name=""value="登录"></form></html>

// index.html

<!DOCTYPEhtml><htmllang="Cn_zh"><head><metacharset="UTF-8"><metahttp-equiv="X-UA-Compatible"content="IE=edge"><metaname="viewport"content="width=device-width, initial-scale=1.0"><title>首页</title><style></style></head><body><div>首页</div><divclass="s"style="margin: 100px;">欢迎光临</div><script>var div = document.querySelector('.s');var ss = location.search;// ?uname=12// 1. 先去掉? substr('起始位置',截取几个字符)var params = ss.substr(1);//uname=12// 2. 利用 = 把字符串分割为数组 split('=');var arr = params.split('=');// ['uname', '12']// 3. 把数据写入div中
        div.innerHTML = arr[1]+' 欢迎光临';</script></body></html>

在这里插入图片描述

18. 拖动模态框(登陆界面)

<!DOCTYPE html><html lang="Cn_zh"><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>.login-header {
            margin-left:40%;}.login {display: none;width: 512px;height: 280px;position: fixed;border: #ebebeb solid 1px;left:50%;top:50%;background: #fff;
            box-shadow: 0px 0px 20px #ddd;
            z-index:9999;transform:translate(-50%,-50%);}.login-title {width:100%;
            text-align: center;
            line-height: 40px;height: 40px;
            font-size: 18px;position: relative;cursor: move;background: #ebebeb;
            border-bottom: #ebebeb 1px solid;}.login-input-content {
            margin-top: 20px;}.login-button {width:50%;margin: 30px auto 0px auto;
            line-height: 40px;
            font-size: 14px;border: #ebebeb 1px solid;
            text-align: center;}.login-bg {display: none;width:100%;height:100%;position: fixed;top:0;right:0;background:rgba(0,0,0,.3);}
        a {
            text-decoration: none;color: #000;}.login-button a {display: block;}.login-input input.list-input {float: left;
            line-height: 35px;height: 35px;width: 350px;border: #ebebeb 1px solid;
            text-indent: 5px;}.login-input {overflow: hidden;margin: 0px 0px 20px 0px;}.login-input label {float: left;width: 90px;
            padding-right: 10px;
            text-align: right;
            line-height: 35px;height: 35px;
            font-size: 14px;}.login-title span {position: absolute;
            font-size: 12px;right:-20px;top:-23px;background: #ebebeb;border: #d8d8d8 solid 1px;width: 40px;height: 40px;
            border-radius: 20px;}</style></head><body><div class="login-header"><a id="link" href="javascrip:;">点击,弹出登录框</a></div><div id="login"class="login"><div id="title"class="login-title">登陆会员
            <span><a href="javascript:void(0);"class="close-login" id="closeBtn">关闭</a></span></div><div class="login-input-content"><div class="login-input"><label for="">用    户    名:</label><input type="text" placeholder="请输入用户名" name="info[username]" id="username"class="list-input"></div><div class="login-input"><label for="">登陆密码:</label><input type="password" placeholder="请输入登陆密码" name="info[password]" id="password"class="list-input"></div></div><div id="loginBtn"class="login-button"><a href="javascript:vodi(0);" id="login-button-submit">登陆会员</a></div></div><!-- 遮罩层 --><div id="bg"class="login-bg"></div><script>var login = document.querySelector('.login');var bg = document.querySelector('.login-bg');var header = document.querySelector('.login-header');var close = document.querySelector('.close-login');var title = document.querySelector('#title');// 显示登录窗口
        header.addEventListener('click',function(){
            login.style.display ='block';
            bg.style.display ='block';});// 隐藏登录窗口
        close.addEventListener('click',function(){
            login.style.display ='none';
            bg.style.display ='none';});// 窗口拖拽
        title.addEventListener('mousedown',function(e){var x = e.pageX - login.offsetLeft;var y = e.pageY - login.offsetTop;
            document.addEventListener('mousemove', move);functionmove(e){
                login.style.left = e.pageX - x +'px';
                login.style.top = e.pageY - y +'px';}
            document.addEventListener('mouseup',function(e){
                document.removeEventListener('mousemove', move);});});</script></body></html>

在这里插入图片描述

19. 放大镜效果

<!DOCTYPEhtml><htmllang="Cn_zh"><head><metacharset="UTF-8"><metahttp-equiv="X-UA-Compatible"content="IE=edge"><metaname="viewport"content="width=device-width, initial-scale=1.0"><title>放大镜效果</title><style>.imgs{position: relative;width: 200px;height: 310px;border: #dbdbdb 1px ridge;}.imgl{width: 100%;height: 100%;}.imgs .ss{width: 70%;padding-left: 30px;}.imgs .zhezhao{display: none;position: absolute;top: 0;left: 0;width: 100px;height: 100px;background:rgb(255, 255, 3, .5);cursor: move;}.imgs .big{display: none;position: absolute;left: 210px;top: 0px;width: 310px;height: 310px;border: 1px solid #ccc;overflow: hidden;}.imgs .ds{position: absolute;top: 0;left: 0;padding: 0 80px;width: 130%;}</style></head><body><divclass="imgs"><divclass="imgl"><imgsrc="/Picture/静态合集/手机.png"class="ss"alt=""><divclass="zhezhao"></div></div><divclass="big"><imgclass="ds"src="/Picture/静态合集/手机.png"alt=""></div></div><script>var img = document.querySelector('.imgl');var zhezhao = document.querySelector('.zhezhao');var big = document.querySelector('.big');var ds = document.querySelector('.ds');// 鼠标进入图片框内时,显示遮罩层和放大层
        img.addEventListener('mouseover',function(){
            zhezhao.style.display ='block';
            big.style.display ='block';});// 鼠标离开图片框区域时,隐藏遮罩层和放大层
        img.addEventListener('mouseout',function(){
            zhezhao.style.display ='none';
            big.style.display ='none';});// 遮罩层和放大层跟着鼠标移动
        img.addEventListener('mousemove',function(e){// 鼠标移动距离var x = e.pageX -this.offsetLeft -57;var y = e.pageY -this.offsetTop -57;if(x <=0){
                x =0;}elseif(x >=100){
                x =100;}if(y <=0){
                y =0;}elseif(y >=210){
                y =210;}
            zhezhao.style.left = x +'px';
            zhezhao.style.top = y +'px';// 放大区最大移动距离var bigMax = ds.offsetWidth - big.offsetWidth;// 移动距离 x y var xx = x * bigMax /100;var yy = y * bigMax /90;

            ds.style.left =-xx +'px';
            ds.style.top =-yy +'px';});</script></body></html>

在这里插入图片描述

20. 仿淘宝固定侧边栏

<!DOCTYPEhtml><htmllang="Cn_zh"><head><metacharset="UTF-8"><metahttp-equiv="X-UA-Compatible"content="IE=edge"><metaname="viewport"content="width=device-width, initial-scale=1.0"><title>首页</title><style>*{margin: 0;padding: 0;}.w{width:600px;margin: auto;margin-bottom: 10px;}.header{height: 100px;background-color: #881382;}.banner{height: 200px;background-color: #7ec9ec;}.main{height: 700px;background-color: #96bf2a;}.bar{position: absolute;left: 50%;top: 45.5%;margin-left: 300px;width: 50px;height: 150px;background-color: pink;}.goBack{margin-left: 10px;font-size: 20px;display: none;}</style></head><body><divclass="bar"><spanclass="goBack"><ahref="#tou">︿  </a><br> 顶部</span></div><divclass="header w"id="tou">头部区域</div><divclass="banner w">banner 区域</div><divclass="main w">主体部分</div><script>var bar = document.querySelector(".bar");var goBack = document.querySelector(".goBack");
        document.onscroll=function(){if(window.pageYOffset >=108){
                bar.style.position ="fixed";
                bar.style.top ="220px";}else{
                bar.style.position ="absolute";
                bar.style.top ="45.5%";}if(window.pageYOffset >=320){
                goBack.style.display ="block";}else{
                goBack.style.display ="none";}}</script></body></html>

在这里插入图片描述

21. 轮播图

<!DOCTYPEhtml><htmllang="Cn_zh"><head><metacharset="UTF-8"><metahttp-equiv="X-UA-Compatible"content="IE=edge"><metaname="viewport"content="width=device-width, initial-scale=1.0"><linkrel="stylesheet"href="/Case/实例——JS/index.css"><title>轮播图</title><style>.focus{position: relative;margin-left: 110px;margin-top: 50px;width: 500px;height: 300px;border-top: 10px solid rgb(22, 20, 20);border-bottom: 10px solid rgb(22, 20, 20);border-right: 10px solid rgb(1, 185, 41);border-left: 10px solid rgb(1, 185, 41);background-color: pink;overflow:hidden;}.arrow-l{position: absolute;font-size: 30px;width: 25px;top: 130px;padding-bottom: 4px;color:rgba(255, 255, 255, 0.629);background-color:rgba(0, 0, 0, 0.34);border-top-right-radius:100px;border-bottom-right-radius:100px;display: none;z-index: 3;text-align: center;}.arrow-r{position: absolute;font-size: 30px;width: 25px;top: 130px;text-align: center;padding-bottom: 4px;color:rgba(255, 255, 255, 0.629);background-color:rgba(0, 0, 0, 0.34);margin-left: 475px;border-top-left-radius:100px;border-bottom-left-radius: 100px;display: none;z-index: 3;}.focus ul{position: absolute;top: 0px;left: 0px;width: 600%;z-index: 1;}ul li{float: left;display:inline;width: 500px;height: 300px;}ul img{width: 500px;height: 300px;}.focus ol{position: relative;top: 95%;width: 200px;left: 12%;z-index: 3;}ol li{float: left;margin-left: 5px;border-radius: 10px;border: 1.5px solid #fff;width: 8px;height: 8px;}.current{background-color: #fff;}</style></head><body><divclass="focus"><!-- 左按钮 --><ahref="javascript:;"class="arrow-l"> &lt </a><!-- 右按钮 --><ahref="javascript:;"class="arrow-r"> &gt </a><!-- 核心滚动区域 --><ul><li><ahref="#"><imgsrc="/Picture/静态合集/浪涌海水.png"alt=""></a></li><li><ahref="#"><imgsrc="/Picture/静态合集/海水浪涛.png"alt=""></a></li><li><ahref="#"><imgsrc="/Picture/静态合集/白林.jpg"alt=""></a></li></ul><olclass="circle"></ol></div><script>// 简单动画函数封装functionanimate(obj, target, callback){// 清除以前的定时器,只保留当前定时器clearInterval(obj.timer);
            obj.timer =setInterval(function(){// console.log(obj.offsetLeft);// 步长值var step =(target - obj.offsetLeft)/10;// 判断正负,并解决小数点的问题
                step = step >0? Math.ceil(step): Math.floor(step);// console.log(step);// 达到目标距离,结束定时器,执行回调函数if(obj.offsetLeft == target){clearInterval(obj.timer);// if(callback) {//     callback();// }
                    callback &&callback();}// 吧每次加一 这个步长值改为一个缓慢变小的值, 步长公式:(目标值 - 现在的位置) / 10
                obj.style.left = obj.offsetLeft + step +'px';},15);}var arrow_l = document.querySelector('.arrow-l');var arrow_r = document.querySelector('.arrow-r');// 1. 鼠标经过显示左右按钮,离开隐藏左右按钮var focus = document.querySelector('.focus');
        focus.addEventListener('mouseover',function(){
            arrow_l.style.display ='block';
            arrow_r.style.display ='block';clearInterval(timer);// 停止自动播放
            timer =null;// 清除定时器变量})
        focus.addEventListener('mouseout',function(){
            arrow_l.style.display ='none';
            arrow_r.style.display ='none';// 鼠标离开开启定时器,自动播放
            timer =setInterval(function(){// 手动调用点击事件
                arrow_r.click();},2500);})// 获取focus宽度var focusWidth = focus.clientWidth;// 2. 动态生成小圆圈,有几张图片,就生成几个小圆圈var ul = focus.querySelector('ul');var ol = focus.querySelector('.circle');for(var i=0; i < ul.children.length; i++){// 创建一个小livar li = document.createElement('li');// 记录当前小圆圈的索引号, 通过自定义属性来做
            li.setAttribute('index', i);// 吧li插入ol里面
            ol.appendChild(li);// 小圆圈排他思想
            li.addEventListener('click',function(){// 干掉所有人,吧所有小li 清除 current 类名for(var i=0; i <ol.children.length; i++){
                    ol.children[i].className='';}// 留下我自己 当前小li 设置类名this.className ='current';// 3. 点击小圆圈,移动图片// 获取小li 索引号var index =this.getAttribute('index');// 当我们点击了某个小圆点,就拿到索引号 给num 和 circle
                num = index;
                circle = index;// 移动距离animate(ul,-index * focusWidth);})}// 第一个小li 设置类名
        ol.children[0].className ='current';// 4. 克隆第一张图片,放最后var first = ul.children[0].cloneNode(true);
        ul.appendChild(first);// 5. 点击右侧按钮,图片滚动一张var num =0;// 控制图片滚动var circle =0;// 控制小圆圈的播放// flag 节流阀var flag =true;// 右侧按钮功能
        arrow_r.addEventListener('click',function(){if(flag){
                flag =false;// 关闭节流阀// 如果走到了最后一张图片,此时,我们的ul 要快速复原 left 为 0if(num == ul.children.length-1){
                    ul.style.left =0;
                    num =0;}
                num++;animate(ul,-num * focusWidth,function(){
                    flag =true;// 打开节流阀});// 6. 点击右侧按钮,小圆圈跟着变化 
                circle++;// 如果 circle =3 说明到了最后,就复原if(circle == ol.children.length){
                    circle =0;}// 调用函数circleChange();}})// 7. 左侧按钮功能
        arrow_l.addEventListener('click',function(){if(flag){
                flag =false;// 关闭节流阀// 如果走到了最后一张图片,此时,我们的ul 要快速复原 left 为 0if(num ==0){
                    num = ul.children.length-1;
                    ul.style.left =-num * focusWidth +'px';}
                num--;animate(ul,-num * focusWidth,function(){
                    flag =true;// 打开节流阀});// 7. 点击左侧按钮,小圆圈跟着变化 
                circle--;// 如果 circle <0  说明第一张图片,则小圆圈要改为最后一个小圆圈if(circle <0){
                    circle = ol.children.length-1;}// 调用函数circleChange();}})functioncircleChange(){// 先清除其余的小圆圈的类名for(var i =0; i < ol.children.length; i++){
                ol.children[i].className='';}// 留下当前的小圆圈的类名
            ol.children[circle].className ='current';}// 8. 自动播放轮播图var timer =setInterval(function(){// 手动调用点击事件
            arrow_r.click();},2500);</script></body></html>

在这里插入图片描述

22. 导航栏背景图移动

<!DOCTYPEhtml><htmllang="Cn_zh"><head><metacharset="UTF-8"><metahttp-equiv="X-UA-Compatible"content="IE=edge"><metaname="viewport"content="width=device-width, initial-scale=1.0"><linkrel="stylesheet"href="index.css"><title>导航栏背景图移动</title><style>body{background: #000;}div{position: relative;margin: 20px auto;width: 67%;height: 30px;background: #fff;border-radius: 5px;overflow:hidden;}div ul{position: absolute;top: 3px;left: 0px;width: 600%;z-index: 1;}ul li{float: left;margin: 5px 10px;font-weight: bold;}.cloud{width: 70px;height: 30px;/* background: pink; */display: inline-block;background:url(/Picture/桌面GIF图标/表格头部.jpg);}.currents a{color:rgb(43, 176, 176);}.cloud{position: relative;left: 0px;top: 0px;}</style></head><body><divid="c-nav"class="c-nav"><spanclass="cloud"></span><ul><liclass="currents"><ahref="#">首页新闻</a></li><li><ahref="#">师资力量</a></li><li><ahref="#">活动策划</a></li><li><ahref="#">企业文化</a></li><li><ahref="#">招聘信息</a></li><li><ahref="#">公司简介</a></li><li><ahref="#">上海校区</a></li><li><ahref="#">广州校区</a></li></ul></div><script>// 简单动画函数封装functionanimate(obj, target, callback){// 清除以前的定时器,只保留当前定时器clearInterval(obj.timer);
            obj.timer =setInterval(function(){// console.log(obj.offsetLeft);// 步长值var step =(target - obj.offsetLeft)/10;// 判断正负,并解决小数点的问题
                step = step >0? Math.ceil(step): Math.floor(step);// console.log(step);// 达到目标距离,结束定时器,执行回调函数if(obj.offsetLeft == target){clearInterval(obj.timer);if(callback){callback();}}// 吧每次加一 这个步长值改为一个缓慢变小的值, 步长公式:(目标值 - 现在的位置) / 10
                obj.style.left = obj.offsetLeft + step +'px';},15);}</script><script>

        // 1. 获取元素
        var cloud = document.querySelector('.cloud');
        var c_nav = document.querySelector('.c_nav');
        var li = document.querySelector('ul').children;
        // 2. 给所有的小li绑定事件
        // 筋斗云起始位置
        var current = 0;
        for(var i=0; i<li.length; i++) {
            // 1) 鼠标经过,吧当前li的位置作为目标值
            li[i].addEventListener('mouseenter', function() {
                animate(cloud, this.offsetLeft-10);
            })
            // 2) 鼠标离开就回到起始位置
            li[i].addEventListener('mouseleave', function() {
                animate(cloud, current-10);
            })
            // 3)当我们鼠标点击,就把当前位置作为目标值
            li[i].addEventListener('click', function() {
                current = this.offsetLeft;
                for(var j=0; j<li.length; j++) {
                    li[j].className = '';
                }
                this.className = 'currents';
            })
        }
</body></html>

在这里插入图片描述

23. 记住用户名

<!DOCTYPEhtml><htmllang="Cn_zh"><head><metacharset="UTF-8"><metahttp-equiv="X-UA-Compatible"content="IE=edge"><metaname="viewport"content="width=device-width, initial-scale=1.0"><title>index</title></head><body><inputtype="text"name=""id=""class="uname"><inputtype="checkbox"class="cbox">记住用户名
    <script>var uname = document.querySelector('.uname');var cbox = document.querySelector('.cbox');// 判断用户名是否存在if(localStorage.getItem('uname')){// 给文本框赋值
            uname.value = localStorage.getItem('uname');// 勾选多选框
            cbox.checked =true;}// 多选框发生改变
        cbox.addEventListener('change',function(){// 若勾选上if(this.checked){// 本地存储用户名
                localStorage.setItem('uname', uname.value);}else{//本地存储中删除对应的用户名
                localStorage.removeItem('uname');}})</script></body></html>

在这里插入图片描述

标签: 前端 css css3

本文转载自: https://blog.csdn.net/qq_51712954/article/details/128218357
版权归原作者 码字小萌新♡ 所有, 如有侵权,请联系我们删除。

“【前端】实际开发案例”的评论:

还没有评论