day19

案例

  1. 流氓软件

    <!DOCTYPE html>
    <html>
    	<head>
    		<meta charset="utf-8">
    		<title></title>
    		
    		<style type="text/css">
    			div{
    				background-color: blue;
    				width: 250px;
    				height: 200px;
    				position: absolute;
    				top: 0;
    				right: 0;
    			}
    			span{
    				color: yellow;
    				font-size: 14px;
    			}
    			button{
    				float: right;
    				border: 0;
    				background-color: grey;
    				color: white;
    			}
    		</style>
    	</head>
    	<body>
    		<div>
    			<span>此广告位招租</span>
    			<button type="button" onclick="move1()">关闭</button>
    		</div>
    		<script type="text/javascript">
    			top1 = 0
    			right1 = 0
    			count1 = 0
    			
    			function move1(){
    				count1 ++
    				var div = document.getElementsByTagName('div')[0]
    				
    				if(count1 == 5){
    					div.remove()
    				}else{
    					top1 += 50
    					right1 += 50
    					div.style.top = top1 + 'px'
    					div.style.right = right1 + 'px'
    				}
    			}
    		</script>
    	</body>
    </html>
    
  2. 闪烁

    <!DOCTYPE html>
    <html>
    	<head>
    		<meta charset="utf-8">
    		<title></title>
    		<style type="text/css">
    			#box1{
    				width: 800px;
    				height: 400px;
    				border: 1px solid gray;
    				margin-left: auto;
    				margin-right: auto;
    				
    			}
    			#box2{
    				text-align: center;
    				margin-top: 10px;
    			}
    			#box2>button{
    				border: 0;
    				background-color: red;
    				color: white;
    				width: 70px;
    				height: 30px;
    			}
    			
    			#box1>div{
    				width: 80px;
    				height: 80px;
    				float: left;
    			}
    		</style>
    	</head>
    	<body>
    		<div id="box1">
    			
    		</div>
    		
    		<div id="box2">
    			<button type="button" onclick="addAction()">添加</button>
    			<button id="btn1" type="button">闪烁</button>
    		</div>
    		<script type="text/javascript">
    			function randowColor(a=1){
    				r = parseInt(Math.random()*255)
    				g = parseInt(Math.random()*255)
    				b = parseInt(Math.random()*255)
    				return 'rgba('+r+','+g+','+b+','+a+')'
    			}
    			
    			// 1.添加小方块
    			count = 0
    			function addAction(){
    				var div = document.createElement('div')
    				div.style.backgroundColor = randowColor(0.3)
    				var box1 = document.getElementById('box1')
    				box1.insertBefore(div, box1.firstElementChild)
    				count++
    				if(count>50){
    					box1.lastElementChild.remove()
    					count--
    				}
    			}
    			
    			//2.闪烁
    			document.getElementById('btn1').onclick = function(){
    				if(this.innerText == '闪烁'){
    					this.innerText = '暂停'
    					t1 = setInterval(function(){
    						//修改每个小盒子的背景颜色
    						var allSamllDiv = document.getElementById('box1').children
    						for(index=0;index<allSamllDiv.length;index++){
    							allSamllDiv[index].style.backgroundColor = randowColor(0.3)
    						}
    					}, 100)
    					
    				}else{
    					this.innerText = '闪烁'
    					clearInterval(t1)
    				}
    			}
    			
    		</script>
    	</body>
    </html>
    
    

常用弹框

a. alert(提示信息) - 弹出提示信息(带确定按钮)

b. confirm(提示信息) - 弹出提示信息(带确定和取消按钮),返回值是布尔值,取消-false, 确定-true

c. prompt(提示信息,输入框中的默认值) - 弹出一个带输入框和取消,确定按钮的提示框; 点取消,返回值是null;点确定返回值是输入框中输入的内容

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<button onclick="message1()">弹框1</button>
		<button onclick="message2()">弹框2</button>
		<button onclick="message3()">弹框3</button>
	</body>
1.第一类弹框

只有提示信息和确定按钮的弹框

alert(提示信息)

		function message1(){
			alert('添加成功')
		}
2.第二类弹框

有提示信息、确定按钮和取消按钮的弹框
返回值如果是true表示用户点击的是确定按钮,如果是false表示用户点击的是取消按钮

		function message2(){
			var result = confirm('是否要删除这个数据')
			//console.log(result)
			if(result == true){
				//确定的时候做的事情
			}else{
				//取消的时候做的事情
			}
		}
3.第三类弹框

有提示信息、输入框、确定按钮和取消按钮的弹框
返回值如果是null表示用户点击的是取消按钮,返回值如果是输入框中内容,表示点击的是确定按钮

			function message3(){
			var result = prompt('请输入你的名字:','张三')
			console.log(result)
		}

jQuery的用法

jQuery是一个js库,它可以让js的DOM操作变得更简单。

使用jQuery前必须先导入jQuery的库

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script src="js/jquery.min.js" type="text/javascript" charset="utf-8"></script>
	</head>
	<body>
		<div id="div1">
			<p>我是段落1</p>
			<p class="c1">我是段落2</p>
			<a href="">我是超链接1</a>
		</div>
		
		<div id="div2">
			<p class="c1">我是段落3</p>
			<p>我是段落4</p>
		</div>
		
		<a id="a1" href="https://www.baidu.com">百度</a>
		<input type="" name="" id="" value="张三" />
	</body>
1.获取节点

$(css选择器)

	<script type="text/javascript">
		document.getElementsByClassName('c1')
		
		result= $('.c1')
		console.log(result)
	</script>
2.创建、添加和删除节点

创建节点😒(html代码)

		p = $('<p class="c1">我是段落5</p>')
		
		div = $('<div class="c2"><p>苹果</p><span>×</span></div>')

添加节点

节点1.append(节点2) - 在节点1中的最后添加节点2
节点1.prepend(节点2) - 将节点2插入到节点1中的最前面
节点1.before(节点2) - 将节点2放到节点1的前面
节点1.after(节点2) - 将节点2放到节点1的后面

		$('body').append(div)
		$('body').prepend(p)
		$('#div2').before($('<img src="img/car.png">'))

删除节点

		$('#div1').remove()
3.节点属性和节点内容

获取和修改标签内容

获取:标签.text()、标签.html()
修改:标签.text(新的数据)、标签.html(新的数据)

		result = $('#a1').text()
		console.log(result)
		// $('#a1').text('<span>京东</span>')
		$('#a1').html('<span>京东</span>')

普通的属性的修改和获取

标签.attr(属性名)
标签.attr(属性名, 新的属性值)

		result = $('#a1').attr('href')
		console.log(result)
		
		$('#a1').attr('href', 'https://www.jd.com')
		
		// value属性:
		result = $('input').val()
		console.log(result)
		
		$('input').val('李四')	

jQuery事件绑定

	<body>
		<button class="c1">按钮1</button>
		<button class="c1">按钮2</button>
		<button class="c1">按钮3</button>
		<button class="c1">按钮4</button>
		<button id="add" onclick="addBtn()">添加</button>
	</body>
	
	<script type="text/javascript">
		number =4
		function addBtn(){
			number++
			$('#add').before($('<button class="c1">按钮'+number+'</button>'))
		}
1.直接绑定
		$('#btn1').on('click',function(){
			alert('你好!')
		})
	</script>
</html>
2.通过父标签给指定的子标签绑定事件

标签.on(事件名,子标签选择器,函数)

		$('body').on('click','.c1',function(){
			alert('你好!'+this.innerText)
		})
	</script>
</html>

Vue基本用法

Vue的原则:通过控制数据来控制标签

1.控制标签内容

{{vue中data的属性名}}

		<div id="app1">
			<p>{{name}}</p>
			<button onclick="app1.name='hello world!'">修改</button>
			<p>{{age}}</p>
			<p>{{gender}}</p>
		</div>
2.控制标签属性

v-bind:标签属性名=“vue中data的属性名”

		<div id="app1">
			<a v-bind:href="url">{{appName}}</a>
		</div>
3.for循环

v-for=“变量 in vue中data的容器属性名”

		<div id="app2">
			<div v-for="x in fruits">
				<p>{{x}}</p>
				<span>×</span>
			</div>
		</div>
4.双向绑定

v-mode:vue中data的属性名

		<div id="app2">		
			<p>{{addName}}</p>
			<input v-model="addName" />
			<button type="button" onclick="app2.fruits.push(app2.addName)">添加</button>
		</div>

script:

	<script type="text/javascript">
		// 1. 创建Vue对象
		app1 = new Vue({
			el:'#app1',		//确定绑定对象, 当前这个Vue能控制的只能是id为app1的标签中的所有标签
			data:{
				name:'张三',
				age:18,
				gender:'男',
				appName: '百度',
				url: 'https://www.baidu.com'
			}
		})
		
		app2 = new Vue({
			el:'#app2',
			data:{
				fruits:['苹果', '西瓜', '葡萄', '火龙果', '山竹', '榴莲'],
				addName: '123'
			}
		})	
	</script>
5.购物车案例
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>
	</head>
	<body>
		<div id="box1">
			<div v-for="goods in goodsList">
				<img v-bind:src="goods.image" >
				<p>{{goods.name}}</p>
				<p>{{goods.price}}</p>
				<button type="button" v-on:click="goods.count++">+</button>
				<input v-bind:value="goods.count" />
				<button type="button" v-on:click="goods.count--">-</button>
				<p>{{goods.price * goods.count}}</p>
				<button type="button">删除</button>
				<hr >
			</div>
			<span>合计:</span><span>{{totalPrice}}</span>
		</div>
		
		<script type="text/javascript">
			var app1 = new Vue({
				el: '#box1',
				data:{
					goodsList:[
						{
							image:"img/a1.jpg", 
							name:'海澜之家/Heilan Home春装商务白衬衫男修身HNCAD3A067Y 漂白(69) 漂',
							price:138,
							count:1,
						},
						{
							image:"img/a2.jpg", 
							name:'海澜之家/Heilan Home春装商务白衬衫男修身HNCAD3A067Y 漂白(69) 漂',
							price:198,
							count:1,
						},
						{
							image:"img/a3.jpg", 
							name:'海澜之家/Heilan Home春装商务白衬衫男修身HNCAD3A067Y 漂白(69) 漂',
							price:200,
							count:1,
						}
					]
				},
				computed:{
					totalPrice: function(){
						var result = 0
						for(index=0;index<this.goodsList.length;index++){
							var x = this.goodsList[index]
							result += x.price * x.count
						}
						return result
					}
				}
			})
		</script>
	</body>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值