javascript案例,专辑前6名

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/czh500/article/details/84947249

javascript案例,专辑前6名

看下面的截图和代码

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>javascript案例,专辑前6名案例,雪豹软件工作室</title>
<link rel="stylesheet" type="text/css" href="top6.css"/>
<link rel="stylesheet" type="text/css" href="mark.css">
<link rel="stylesheet" type="text/css" href="body.css">
<style type="text/css">

body {
	padding: 0;
	margin: 0;
}

*{
/*不把边框,padding(内边距)计算进去*/
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}

div {
opacity:1.0;
}

</style>
<script type="text/javascript">

	//初始化(加载所有专辑图片)
	function initAllImg(){
		var divNode = document.getElementById("allImg");//获取专辑div层
		var imgSrc = "imgTop6" + "/"; //图片路径
		var imgSuffix = ".jpg"; //图片后缀
		for (var imgName = 1; imgName <= 25; imgName++) {
			//var imgNode = new Image(); //也可以使用new的方式创建图片元素对象
			var imgNode = document.createElement("IMG");//创建图片元素对象
			imgNode.src = imgSrc + imgName + imgSuffix;
			imgNode.title = "专辑" + imgName;
			imgNode.width = 320;
			imgNode.height = 200;
			imgNode.style.borderRadius = "12px";
			imgNode.className = "imgNormal";
			imgNode.onmouseout = imgOnmouseout;
			imgNode.onmouseover = imgOnmouseover
			imgNode.onclick = imgOnclick_Top6;
			divNode.appendChild(imgNode);////将图片添加到div层中
			
			/*
			//创建数字span
			var spanNode = document.createElement("span");
			spanNode.appendChild(document.createTextNode("周杰伦"));
			spanNode.className = "num";
			divNode.insertBefore(spanNode, imgNode);
			*/
		}
	}

	//鼠标从图片上移出时的效果
	function imgOnmouseout(){
		this.className = "imgNormal";
		//alert("鼠标从图片上移出时 = " + this);
	}
	
	//鼠标移入到图片上时的效果
	function imgOnmouseover(){
		this.className = "imgHover";
	}
	
	//将图片专辑加入到前6名的div层中
	function imgOnclick_Top6(){
		var top6DivNode = document.getElementById("top6");
		console.log("top6div层的高=" + getComputedStyle(top6DivNode, null).getPropertyValue("height"));
		var MyChilds = top6DivNode.childNodes;
		var childsCount = MyChilds.length;//获取前6名的div层中的子节点个数
		var count = 0; //已选择了的专辑的数量
		for (var index = 0; index < childsCount; index++) {
// 			if (MyChilds[index].nodeName.toUpperCase() == "IMG") {
// 				count++;
// 			}
			if (MyChilds[index].nodeName.toUpperCase() == "DIV") {
				count++;
			}
		}
		if (count >= 6) {
			alert("对不起,您只能选择6张专辑!");
			return;
		}
		var finalStyle = this.currentStyle ? this.currentStyle
				: document.defaultView.getComputedStyle(this, null);
		var divNode = document.createElement("div");
		console.log(getComputedStyle(divNode, false)["opacity"]);
		divNode.style.opacity = "1.0";
		divNode.style.position = "relative";
		divNode.style.padding = "0px";
		divNode.style.display = "inline-block";
		divNode.style.margin = "20px";
// 		divNode.style.width = finalStyle.getPropertyValue("width");
// 		divNode.style.height = finalStyle.getPropertyValue("height");
		divNode.style.border = "none";
		divNode.style.backgroundColor = "transparent";
		divNode.style.width = "auto";
		divNode.style.height = "auto";
		console.log("看看宽高是否会带px=" + divNode.style.width);

		/*
		如下这样获取width和height得到的值不准确,因为受到鼠标移上去的影响,导
		致图片width和height比原来的width和height更小了(受到样式的影响,不把边
		框,padding(内边距)计算进去)
		 */
		console.log(this.className + " - " + this.src + " - 图片的宽=" + this.width
				+ " - 高=" + this.height + "-this=" + this);
		console.log("宽=" + finalStyle.getPropertyValue("width") + " /高="
				+ finalStyle.getPropertyValue("height"));
		divNode.appendChild(this);//将专辑图片移动到这个层中
		top6DivNode.appendChild(divNode);
		this.className = "imgNormal";
		this.style.margin = 0;
		// 		this.style.padding = 0;
		//创建数字span
		var spanNode = document.createElement("span");
		spanNode.appendChild(document.createTextNode("NO" + (count + 1)
				+ "-new"));
		spanNode.className = "num";
		// 		alert("this=" + this);
		divNode.insertBefore(spanNode, this);
		//创建醒目的span(醒目的显示免费2个字)
		var spanNode2 = document.createElement("span");
		spanNode2.appendChild(document.createTextNode("免费"));
		spanNode2.className = "striking";
		divNode.insertBefore(spanNode2, this);
		//创建醒目的span(醒目的显示免费2个字)
		var spanNode3 = document.createElement("span");
		spanNode3.appendChild(document.createTextNode("vip"));
		spanNode3.className = "vip";
		divNode.insertBefore(spanNode3, this);
		top6DivNode.style.height = "auto";
		this.onclick = imgRemoveTop6;

	}

	//把前6的专辑图片从top6这个层中移回到allImg层中
	function imgRemoveTop6() {
		var top6DivNode = document.getElementById("top6");
		var MyChilds = top6DivNode.childNodes;
		var childsCount = MyChilds.length;//获取前6名的div层中的子节点个数
		console.log("childsCount=" + childsCount);
		if (childsCount <= 1) {
			top6DivNode.style.height = "250px";
		}
		
		var divNode = document.getElementById("allImg");//获取专辑div层
// 		this.parentNode.removeChild(this.previousSibling);//删除数字span节点
		this.parentNode.parentNode.removeChild(this.parentNode);
// 		this.style.margin = "20px";
		console.log("style=" + this.getAttribute("style") + " / " + this.getAttributeNode("style"));
// 		this.removeAttributeNode(this.getAttributeNode("style"));
// 		this.removeAttribute("style");
		this.style.removeProperty("margin");
		divNode.appendChild(this);
		this.className = "imgNormal";
		//alert( "我是 = " + this);
		//如果在这里调用imgOnmouseout()函数,那么此时在imgOnmouseout()函数中的this就代表window对象
		//imgOnmouseout();
		this.onclick = imgOnclick_Top6;
		resetSpanNodText();
	}

	//把top6这个层中现有的图片的顺序重新排列一下
	function resetSpanNodText() {
		var number = 0;
		var top6DivNode = document.getElementById("top6");
		var MyChilds = top6DivNode.childNodes;
		var childsCount = MyChilds.length;//获取前6名的div层中的子节点个数
		for (var index = 0; index < childsCount; index++) {
			if (MyChilds[index].nodeName.toUpperCase() == "DIV") {
				number++;
				MyChilds[index].childNodes[0].innerHTML = "NO" + number + "-new";
			}
// 			if (MyChilds[index].nodeName.toUpperCase() == "SPAN") {
// 				number++;
// 				MyChilds[index].innerHTML = "NO" + number + "-new";
// 			}
		}

	}
</script>

</head>
<body  onload="initAllImg()">
<a href="http://www.baidu.com" target="_blank">
百度搜索(getComputedStyle获得外部的css样式,不知道能否删除外部的css样式中的属性?)
</a>
<a href="https://www.cnblogs.com/whchensir/p/5743521.html" target="_blank">
删除元素中的style中的单个属性(元素对象.style.removeProperty('style中的属性名');)
</a>
<a href="http://www.cnblogs.com/susufufu/p/5749922.html" target="_blank">
删除行内样式的style中的某个属性
</a>
<a href="https://blog.csdn.net/charlene0824/article/details/50532908" target="_blank">
元素对象.style.removeProperty('style中的属性名');
</a>
<a href="https://www.jb51.net/article/132341.htm" target="_blank">
移除style中的单个属性
</a>
<div id="caption" class="header" style="width: 100%;height: 150px;">
<h2 style="color: white;font-family: 楷体;">请您选出心目中的6佳专辑!(单击图片即可)</h2>
</div>
<br>
<div id="top6" style="height: 250px;position: relative;"></div><br>
<!-- <fieldset>  -->

<!--<legend>专辑列表:</legend>-->
<!--<font color="black" style="position: relative; top: -10px; left: 10px; background-color: White">
专辑列表:</font>-->
<!-- 在div控件的边框上写文字的效果,还不是很明白怎么实现这种效果,这里先放一放,有时间再研究吧,这几天还有其他一些事情要赶进度处理,有空再研究这个问题 -->
<span class="title" style="z-index: 2000;background-color: #CD0000;color: white;border-radius: 6px;">专辑列表</span>
<div id="allImg" class="album">
</div>
<!--</fieldset>-->
<div class="myTest1">div1</div>
<div class="myTest1">div2</div>
<div class="myTest1">div3</div>
<div class="myTest1">div4</div>
<input id="test1" value="一万年太久只争朝夕" type="text" alt="hello" size="66" height="300px" style="border-radius: 15px;width: 100%;height: 60px;background-color: #ea9393;border:5px solid #4B0082;font-size: 36px;">
<input type="button" onclick="testRemoveAttribute()" value="测试RemoveAttribute(删除style中的属性)">
<div id="myDiv1" style="width: 100%;background-color: #d4c4df;border: solid 5px #CD0000;">
<span id="span1">
<input style="margin: 20px;width: 900px;height: 50px;border: solid 5px #CD0000;font-size: 30px;border-radius: 12px;" type="text" id="text1" value="天若有情天亦老(点击我就会移动我的位置)" onclick="testMyself(this)">
</span>
</div>
<div id="myDiv2" style="width: 100%;border: solid 5px #0000AA;margin-top: 20px;background-color: #C5C1AA;">
</div>

<div style="background-color:#825ce6;width: 600px;height: 200px;border: solid 6px #CD0000;margin:30px;display: inline-block;color: white; font-size: 20px;vertical-align: top;font-weight: bold;">
测试margin是不是从元素的边框开始算的
</div>
<div style="background-color:#825ce6;width: 600px;height: 200px;border: solid 30px black;margin:30px;display: inline-block;color: white; font-size: 20px;vertical-align: top;font-weight: bold;">
测试margin是不是从元素的边框开始算的
</div>
<div style="width: 100%;height: auto;border:5px solid #551A8B!important;background-color:#EEEED1!important;padding: 20px;opacity:1.0;">
<p align="justify" style="color: #0000AA; font-size: 20px;">
北国风光,千里冰封,万里雪飘。
望长城内外,惟余莽莽;大河上下,顿失滔滔。
山舞银蛇,原驰蜡象,欲与天公试比高。
须晴日,看红装素裹,分外妖娆。
江山如此多娇,引无数英雄竞折腰。
惜秦皇汉武,略输文采;唐宗宋祖,稍逊风骚。
一代天骄,成吉思汗,只识弯弓射大雕。
俱往矣,数风流人物,还看今朝。
独立寒秋,湘江北去,橘子洲头。
看万山红遍,层林尽染;
漫江碧透,百舸争流。
鹰击长空,鱼翔浅底,
万类霜天竞自由。
怅寥廓,问苍茫大地,谁主沉浮?
携来百侣曾游,
忆往昔峥嵘岁月稠。
恰同学少年,风华正茂;
书生意气,挥斥方遒。
指点江山,激扬文字,
粪土当年万户侯。
曾记否,到中流击水,浪遏飞舟! 
</p>
</div>
</body>
<script type="text/javascript">

function testRemoveAttribute(){
	var textNode = document.getElementById("test1");
// 	textNode.removeAttributeNode("style");//报错,因为参数需要的是一个对象,所以不能传字符串
// 	textNode.removeAttribute('style');
// 	textNode.removeAttributeNode(textNode.getAttributeNode("style"));
// 	var result = textNode.removeAttributeNode(textNode.getAttributeNode("style"));
// 	console.log(result);
console.log(textNode.style);
console.log(textNode.getAttribute("style"));

console.log(textNode.getAttributeNode("style"));
console.log(textNode.getAttribute("style"));
console.log(textNode.getAttributeNode("size"));
console.log(textNode.getAttribute("size"));
textNode.removeAttributeNode(textNode.getAttributeNode("alt"));
	textNode.removeAttribute("width");
	textNode.removeAttribute("height");
// 	textNode.removeAttribute("size");
	textNode.removeAttribute(textNode.getAttributeNode("size"));
	textNode.style.removeProperty("width");
}

function testMyself(obj){
	if (!document.getElementById("span1")) {
		return;
	}
// 	obj.parentNode.parentNode.removeChild(obj.parentNode);
// 	document.getElementById("myDiv2").appendChild(obj);
	
// 	document.getElementById("myDiv2").appendChild(obj);
	document.getElementById("myDiv2").appendChild(document.getElementById("text1"));
	document.getElementById("myDiv1").removeChild(document.getElementById("span1"));
// 	document.getElementById("myDiv2").appendChild(document.getElementById("text1"));
// 	document.getElementById("myDiv2").appendChild(obj);
}

</script>
</html>

猜你喜欢

转载自blog.csdn.net/czh500/article/details/84947249