javascript - 常用基础动效

文章目录:
for 循环
——
1.0、切换图片(for循环遍历)
2.0、封装id进行 - 图片切换
3.0、封装+排他思想(闭包)- 选项卡切换

for 循环 9*9乘法表:

for(var i = 1; i < 10; i++) {
	// 绘制三角形,列数要跟着行数走
	for(var j = 1; j <= i; j++){
		window.document.white("<span>" + j +"*"+ i +"="+ j * i + "</span>")
	}
	window.document.white("<br/>")
}

切换图片:
<script>
	var ul = document.getElementById("fj");
	var aList = document.getElementsByTagName("a");
	var des = document.getElementById("des");
	var big_img = document.getElementById("big_img");
	//绑定事件,for循环遍历
	for(var i = 0; i<aList.length; i++) {
		//切换不同的 a标签
		aList[i].onclick = function() {
			// this传值给 src,innerHTML
			big_img.src = this.href; 
			des.innerHTML = this.title;
			return false; //结束方法
		}
	}
</script>
<p id="dec">蒲公英</p>
<img src="img/img01.jpg" alt="蒲公英" id="big_img" />
<ul id="fj">
	<li>
		<a href="img/img01.jpg" title="蒲公英">
			<img src="img/img01.jpg" alt="蒲公英" id="" />
		</a>
	</li>
	<li>
		<a href="img/img01.jpg" title="蒲公英">
			<img src="img/img01.jpg" alt="蒲公英" id="" />
		</a>
	</li>
</ul>

在这里插入图片描述

封装id:
分析:
—— $(liID):调用 $() 方法,就相当于 var 了一个 document.getElementById("") ,传入一个id,拿到img标签
第二种方法则是用 for循环遍历
<script>
	//封装id
	window.onload = function() {
		// $ -表示函数的名称,id - 为传参,获取标签是根据id
		// 对应 var li01 = document.getElemenetById('li01'); 操作
		function $(id) {
			//1.0、做判断,如果id为字符串类型,则输出id
			return typeof id === "string" ? document.getElementById(id) : null;
		}
		// 2.0 改变背景图片
		/* 对应 
		li01.onmouseover = function() {
			box.style.background = 'url("img/img01.png") no-repeat center center';
		};*/
		function changeImage(liId,imgSrc) {
			$(liID).onmouseover = function() {
				$('box').style.background = imgSrc;
			};
		}
		//传入两个字符串的值
		changeImage('li01', 'url("img/img01.png") no-repeat center center');
		changeImage('li02', 'url("img/img02.png") no-repeat center center');
		changeImage('li03', 'url("img/img03.png") no-repeat center center');
		
		--------------------------------------------------------------------
		/* 第二种方法 */
		--------------------------------------------------------------------
		
		var box = document.getElementById('box');
		var aList = box.getElementsTagName('li');
		for (var i=0; i<aList.length; i++) {
			var sli = aList[i]; // 取到每个li,做监听
			sli.index = i+1; // 动态取到不同li的index(下标)值
			sli.onmouseover = function() {
				box.style.background = 'url("img/img0"+ this.index +".png") no-repeat center center'
			};
		}
	}
</script>
// 大的图片为box的背景图
<div id="box">
	<ul>
		<li id="li01">
			<img src="img/img01.png" alt="" />
		</li>
	</ul>
</div>

在这里插入图片描述

tab选项卡:
分析:
排他思想 — this:在事件中,函数中的this就指向了数据源
排他思想 — 同步 与 异步看两个示例
<script>
	var btns = document.querySelectorAll('button');
	//遍历,如果不处理,点击会一直弹出 i 的总个数(无论点哪个)
	for (var i=0; i<btns.length; i++) { // for循环是一个同步的,会一次性执行完循环体(三次 0,1,2)
		// 方法1 :加入一个索引
		btns[i].index = i;
		btns[i].onclick = function() {
			alert("你点击了第" + this.index + "个按钮") // 点击哪个就会对应哪个索引
		};
		-----------------------------------------------------------------------
		// 方法2: 闭包
		(function (i) {
			btns[i].onclick = function() {
				alert("你点击了第" + i + "个按钮") 
			};
		})(i)
	}
</script>
<button>按钮1</button>
<button>按钮2</button>
<button>按钮3</button>
  • display 的none 和 block 相互切换并不会影响 性能,而dom操作的删除和插入则会;
<script>
//tab: 
window.onload = function() {
	//1.0、先获取到 头部 和 内容 的两个标签下的所有内容
	var allList = $('tab_header').getElementsByTagName('li'); //数组 - 0,1,2,3,4,5
	var allDom = $('tab_content').getElementsByClassName('dom'); //数组 - 0,1,2,3,4,5
	
	//2.0、遍历监听
	for(var i=0; i<allList.length; i++) { // 同步
		var li = allList[i];
		li.index = i;  // 索引,方便找到当前对应的 this 的 allDom 内容( allDom 则通过数组的形式拿到对应内容 ) 
	
		li.onmouseover = function() {
			//遍历,排他思想,清除掉除了当前 this 以外的样式
			for(var j=0; j<allList.length; j++) {
				allList[j].className = '';
				allDom.style.display = 'none';
			};
			this.className = "selected";
			allDom[this.index].style.display = "block";
		}
	}
}
//封装一个id, 直接$调用:
function $(id) {
	return typeof id === "string" ? document.getElementById(id) : null;
}
</script>
//class 用中划线, id 用下划线
<div id="tab">
	// 头部
	<div id="tab_heder">
		<ul>
			<li class="selected">公告</li>
			<li>规则</li>
		</ul>
	</div>
	// 内容
	<div id="tab_content">
		<div class="dom" style="display: block">1111</div>
		<div class="dom" style="display: none">2222</div>
	</div>
</div>

在这里插入图片描述

要成功地进行Xilinx Zynq-7000 SoC的集成开发,你将需要熟悉TLZ7xH-EVM开发板的硬件特性以及相应的软件编程。在此,我们推荐参考以下资源《创龙TLZ7xH-EVM开发板:Xilinx Zynq-7000双核Cortex-A9+Kintex-7》,这将为你的项目提供详尽的支持。 参考资源链接:[创龙TLZ7xH-EVM开发板:Xilinx Zynq-7000双核Cortex-A9+Kintex-7](https://wenku.youkuaiyun.com/doc/80nyorov3y) 首先,在硬件编程方面,你需要了解开发板的硬件架构和资源。TLZ7xH-EVM开发板集成了双核ARM Cortex-A9处理器和Kintex-7 FPGA。你应该首先阅读Zynq-7000开发板规格书,了解各个硬件接口和信号引脚的详细信息。根据你的项目需求,进行硬件资源配置,包括配置处理器的时钟频率、电源管理、存储接口以及外设接口等。 其次,在软件编程方面,Xilinx提供了Vivado和SDK套件,用于硬件逻辑设计和软件应用开发。在Vivado中,你需要完成硬件平台的设计和生成,包括创建项目、综合、实现和生成比特流文件。完成硬件设计后,你可以通过Xilinx SDK进行软件编程,创建应用程序和驱动,以与硬件平台交互。编写代码时,你需要参考开发板提供的Demo程序,这些示例程序展示了如何加载和运行用户代码。 确保你具备相关的硬件编程经验,以及掌握至少一种用于嵌入式开发的编程语言,如C/C++。在软件开发过程中,你还需要了解操作系统的选择和配置,比如使用PetaLinux等。 集成开发成功的关键在于硬件和软件的紧密配合,这通常需要进行多次迭代和调试。使用TLZ7xH-EVM开发板上的调试接口,比如JTAG和串口,进行代码调试和性能分析。 在开发过程中,不妨利用创龙科技提供的技术支持和服务,及时解决开发中遇到的问题。此外,你可以利用公司提供的增值服务平台,如定制化开发、培训等,进一步提升开发效率和产品品。 综上所述,通过阅读相关规格书,使用Vivado和SDK进行硬件设计和软件编程,结合创龙科技的技术支持,你将能够高效地完成Zynq-7000 SoC的集成开发任务。对于那些希望深入学习和探索更多高级功能和技巧的读者,我们再次推荐《创龙TLZ7xH-EVM开发板:Xilinx Zynq-7000双核Cortex-A9+Kintex-7》,这份资料不仅帮助你入门,还将引导你掌握更深层次的知识。 参考资源链接:[创龙TLZ7xH-EVM开发板:Xilinx Zynq-7000双核Cortex-A9+Kintex-7](https://wenku.youkuaiyun.com/doc/80nyorov3y)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值