C1-4任务笔记

任务1生成图片广告

  1. 首先,能够用HTML+CSS+ JavaScript在页面正中生成一幅广告图片
    在这里插入图片描述

具体实现代码及效果图:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style type="text/css">
			* {
				margin: 0px;
				padding: 0px;
			}

			#mydiv {
				//设置为相对定位
				position: relative;
			}

			#mydiv img {
				position: relative;
				width: 300px;
				height: 400px;
				top: 120px;
				left: 40%;
			}

			p {
				font-size: 40px;
				color: #F2A263;
				text-align: center;
			}
		</style>

	</head>
	<body>
		<p>广告图片</p>
		<div id="mydiv">
			<img src="img/html页面广告图/图片%20(1).jpeg">	
		</div>
	</body>
</html>

在这里插入图片描述

  1. 其次,用 JavaScript数组在页面上放置多张广告图片,同时动态计算不同广告位之间的布局,实现水平等间距布局
    在这里插入图片描述
    具体实现代码及效果图:
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style type="text/css">
			* {
				margin: 0px;
				padding: 0px;

			}

			#mydiv {
				/* 设置为相对定位 */
				position: relative;
			}
			/* 统一设置mydiv下的img标签的属性 */
			#mydiv img {
				position: relative;
				width: 200px;
				height: 300px;
				top: 120px;
				/* left属性留在后面一次性设置 */
			}

			p {
				font-size: 40px;
				color: #F2A263;
				text-align: center;
			}
		</style>

	</head>
	<body>
		<script>
			// window可以省略不写,默认就是window
			onload = function() {  
					//获取所有img标签,element获取的对象如果是多个则是以数组形式存在
					var imgs = document.getElementsByTagName("img");
					//电脑屏幕宽度
					var pingmu = screen.width;	
					//计算标签数量
					var count = imgs.length;
					//这里用var是为了后面也能取用到,不清楚的可以百度下let和var的区别		
					var left = 0;
					//遍历取出元素
					for (var i=0;i<imgs.length;i++) {
						//将屏幕排放图片后剩余的位置平均分配给每个图片,因为要预留一个空位所以+1
						left = (pingmu - count * (imgs[i].width)) / (count+1) + left;
						//设置图片的left属性,px用字符表示是为了下次循环不出现leftpxpx
						imgs[i].style.left = left + "px";	
						}	
					}
		</script>
		<p>广告图片</p>
		<div id="mydiv">
			<!-- 图片之间不能有空格,不然会有空隙 -->
			<img src="img/html页面广告图/图片%20(1).jpeg"><img src="img/html页面广告图/图片%20(2).jpeg"><img
				src="img/html页面广告图/图片%20(3).jpeg"><img src="img/html页面广告图/图片%20(4).jpeg"><img
				src="img/html页面广告图/图片%20(5).jpeg">
		</div>


	</body>
</html>

在这里插入图片描述

  1. 最后,用 JavaScript代码实现多张广告图片轮播效果:在页面正中每隔3秒切换不同的广告图片,多张图片轮流显示

在这里插入图片描述

具体实现代码及效果图:

<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        *{
            margin: 0;
            padding: 0;
            position: static;
        }
        #imgId{
            width: 400px;
        }
        .mydiv{
            position: sticky;
            top: 200px;
            margin-left: 35%;
        }
    </style>
</head>
<body>
    <script>
        onload = function(){
            let imgId = document.getElementById("imgId");
            var imgs = ["img\\html页面广告图\\图片%20(1).jpeg",
						"img\\html页面广告图\\图片%20(3).jpeg",
						"img\\html页面广告图\\图片%20(4).jpeg",
						"img\\html页面广告图\\图片%20(5).jpeg",
						"img\\html页面广告图\\图片%20(6).jpeg",
                        "img\html页面广告图\\图片%20(2).jpeg"];     
            var imgsLength = imgs.length;
            let flag = 0;
			//使用setInterval方法将函数和播放时间传入进去
			setInterval(function(){fun(imgs,imgsLength);},1000);
			// for (let i = 0; i < imgs.length; i++) {
			// 	if(flag > imgsLength - 1){
			// 	    flag = 0;
			// 	}
			// 	imgId.src = imgs[flag++]; 
			// }
            function fun(imgs,imgsLength){
                if(flag > imgsLength - 1){
                    flag = 0;
                }
                imgId.src = imgs[flag++];
            }
            
        }
    </script>
    <div class="mydiv">
        <img id="imgId" >
    </div>
</body>
</html>

这里由于是截图所以没有办法演示效果:
在这里插入图片描述

任务2程序逻辑训练

后续有时间更新

在code.org上以「所见即所得(WYSIWYG) 」的编码方式完成「应用实验室」系列任务,加深对代码逻辑和程序语法的理解 。

  1. 变量,条件和函数相关任务

  2. 列表、循环和遍历相关任务

  3. 计算机程序算法相关的任务

  4. 可选任务:参数、返回值和库

拓展任务:实现多级联动菜单

有时间再更新

  • 用HTML + CSS + JavaScript实现网页上常见的【省市区多级联动下拉单】
  • 选择直辖市的过程
    在这里插入图片描述
<!DOCTYPE html>
<html lang="zh">
	<head>
		<meta charset="UTF-8">
		<title>Document</title>
		<style>
			* {
				margin: 0;
				padding: 0;
			}
			span,#info{
				font-size: 20px;
				color: #F7CC9F;
			}	
			select{
				width: 200px;
				height: 40px;
				font-size: 20px;
				border: skyblue solid 1px;
			}
		</style>
	</head>
	<body>
		<script>
			onload = function() {
				let l_sheng = document.getElementById("sheng");
				let l_shi = document.getElementById("shi");
				let l_qu = document.getElementById("qu");
				let l_info = document.getElementById("info");

				let sheng = [["江西省"], ["福建省"], ["北京"]];
				let shi = [["南昌市"], ["漳州市"], ["北京市"]];
				//为了后面取到的i是南城县所以这里用了多个[]包裹
				let qu = [[["南城县"]], [["芗城区"]],[["东城区"]]];
				
				//用于拼接省市区打印汇总
				let sheng_info = "";
				let shi_info = "";
				let qu_info = "";
				l_sheng.innerHTML = "<option value=''>---未选择---</option>";
				for (let i = 0; i < sheng.length; i++) {
					l_sheng.innerHTML += "<option value='" + i + "'>" + sheng[i] + "</option>";
				}
				l_sheng.onchange = function() {
					//每次改变省选项,都将清空省市县信息
					sheng_info_str = "";
					shi_info_str = "";
					qu_info_str = "";

					sheng_info_str += sheng[l_sheng.value];
					l_shi.innerHTML = "";
					l_qu.innerHTML = "";
					l_shi.innerHTML = "<option value=''>---未选择---</option>";
					for (let i = 0; i < shi.length; i++) {
						l_shi.innerHTML += "<option value='" + i + "'>" + shi[l_sheng.value][i] + "</option>";
					}
					l_shi.onchange = function() {
						//每次改变市选项,都将清空市县信息
						shi_info_str = "";
						xian_info_str = "";

						shi_info_str += shi[l_sheng.value][l_shi.value];
						l_qu.innerHTML = "";
						l_qu.innerHTML = "<option value=''>---未选择---</option>";
						for (let i = 0; i < qu.length; i++) {
							l_qu.innerHTML += "<option value='" + i + "'>" + qu[l_sheng.value][l_shi.value][i] + "</option>";
						}
						l_qu.onchange = function() {
							//每次改变县选项,都将清空县信息
							xian_info_str = "";
							xian_info_str += qu[l_sheng.value][l_shi.value][l_qu.value];
							l_info.innerText = "您的选择:" + sheng_info_str + " " + shi_info_str + " " + xian_info_str;
						}
					}
				}
			}
		</script>
		<div id="mydiv">
			<span></span><select id="sheng">
	<!-- 方便复制比较懒 -->
					<!-- <option value="">江西省</option>-->
				</select>
				<span></span></span><select id="shi">
				</select>
				
				<span></span></span><select id="qu">
				</select>
				
				<div id="info">详细地址: </div>
			</div>
		</body>
	</html>

在这里插入图片描述

自测题目

后续有时间更新

  • 实现对数组[0,9,12,1,6,3,11的冒泡排序


  • 解释JavaScript中的堆和栈数据结构的区别


  • a=1,b-2,使用至少三种方法交换变量a和b的值


  • 使用for循环求出0~300之间的奇数之和


  • 去除数组18,7,2, 1, 5,0, 1,9,2中年重复的值,相同的值只保留一个


  • 使用非递归方式对数组[8, 7, 12, 1, 5, 0, 6, 9,2)执行折半查找


基于SSM框架的智能家政保洁预约系统,是一个旨在提高家政保洁服务预约效率和管理水平的平台。该系统通过集成现代信息技术,为家政公司、家政服务人员和消费者提供了一个便捷的在线预约和管理系统。 系统的主要功能包括: 1. **用户管理**:允许消费者注册、登录,并管理他们的个人资料和预约历史。 2. **家政人员管理**:家政服务人员可以注册并更新自己的个人信息、服务类别和服务时间。 3. **服务预约**:消费者可以浏览不同的家政服务选项,选择合适的服务人员,并在线预约服务。 4. **订单管理**:系统支持订单的创建、跟踪和管理,包括订单的确认、完成和评价。 5. **评价系统**:消费者可以在家政服务完成后对服务进行评价,帮助提高服务质量和透明度。 6. **后台管理**:管理员可以管理用户、家政人员信息、服务类别、预约订单以及处理用户反馈。 系统采用Java语言开发,使用MySQL数据库进行数据存储,通过B/S架构实现用户与服务的在线交互。系统设计考虑了不同用户角色的需求,包括管理员、家政服务人员和普通用户,每个角色都有相应的权限和功能。此外,系统还采用了软件组件化、精化体系结构、分离逻辑和数据等方法,以便于未来的系统升级和维护。 智能家政保洁预约系统通过提供一个集中的平台,不仅方便了消费者的预约和管理,也为家政服务人员提供了一个展示和推广自己服务的机会。同时,系统的后台管理功能为家政公司提供了强大的数据支持和决策辅助,有助于提高服务质量和管理效率。该系统的设计与实现,标志着家政保洁服务向现代化和网络化的转型,为管理决策和控制提供保障,是行业发展中的重要里程碑。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值