博客列表 >20180409作业(动态相册,增加了一个小功能)

20180409作业(动态相册,增加了一个小功能)

lilove的博客
lilove的博客原创
2018年04月11日 14:06:45797浏览

主题:

利用jquery生成新的元素插入到网页中,并实现移动和删除功能,在此基础上,我增加了一个下拉菜单的联动功能。

实现效果:

20180409作业效果.png

代码实例:

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>动态相册</title>
	<style type="text/css">
		/*整体容器样式*/
		.box {
			width:440px;
			height:auto;
			background-color: lightskyblue;
			border:1px solid grey;
		}

		/*标题样式*/
		h3{
			text-align: center;
		}
		
		/*表单容器样式*/
		.input_box {
			padding-left:25px;
			padding-bottom:25px;
		}
		
		/*添加图片的按钮样式*/
		.new {
			width:100px;
			height:30px;
			border:0;
			background-color: coral;
			color:#fff;
			font-size: 18px;
		}
		.new:hover {
			background-color:green;
			cursor: pointer;
		}
		
		/*图片容器样式*/
		.img_box {
			overflow: hidden;
			/*background-color: pink;*/
		}
		.img_box ul {
			margin:0;
			padding:0;
		}
		.img_box ul li {
			width:200px;
			float:left;
			list-style-type:none;
			margin:10px;
			text-align: center;
		}

		/*图片下方按钮样式*/
		.img_box ul li button {
			width:60px;
			height:30px;
			border:0;
			background-color: coral;
			color:#fff;
		}

		.img_box ul li button:hover {
			background-color:green;
			cursor: pointer;
		}
	</style>
	<script type="text/javascript" src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script>
	<script type="text/javascript">
		// 如果代码写在头部中,就需要使用$(document).ready()使html加载完毕之后再执行js代码
		$(document).ready(function(){
			//选择图片生成图片url
			$('#img_body').on('change',function(){
				var img_val = $('#img_body option:selected').val()
				$('#img_url').val(img_val)
				// console.log($('#img_url').val())
			})

			//添加按钮事件
			$('button.new').click(function(){
				// 获取图片url变量,注意这个变量需要放到函数内部
				var img_url = $('#img_url').val()
				// console.log(img_url.length)

				//判断如果没有选择任何图片就弹出提示
				if (img_url.length == 0){
					alert('请选择图片!')
					$('#img_url').focus()
					return false
				}

				//获取图片外形
				var img_type = $(':radio:checked').val()
				// console.log(img_type)

				// 获取阴影
				// 直接设置阴影变量为无
				var img_shadow = 'none'
				//如果选择了有阴影则将阴影变量设置为1px 1px 1px #ddd
				if ($('#shadow option:selected').val() == 1){
					img_shadow = '2px 2px 2px #666'
				}
				// console.log(img_shadow)

				//创建新生成的图片变量
				var imgNew = $('<img>')
					.attr('src',img_url)
					.css({
						'width':'200px',
						'height':'200px',
						'border-radius':img_type,
						'box-shadow':img_shadow
					})
					// console.log(imgNew)

				//给图片添加操作按钮
				var front = $('<button>').text('前移')
				var back = $('<button>').text('后移')
				var remove = $('<button>').text('删除')
				var img_btn = $('<li>').append(imgNew,front,back,remove)

				//在ul里面插入新生成图片元素
				img_btn.appendTo('ul')

				// 添加图片的按钮事件
				front.click(function(){
					// console.log(this)
					// 向前移动按钮(先取得按钮的父级元素li,然后将li向前移动)
					$(this).parent().prev().before($(this).parent())
				})
				
				// 向后移动按钮(参照向前移动方法)
				back.click(function(){
					$(this).parent().next().after($(this).parent())
				})
				
				// 删除按钮
				remove.click(function(){
					$(this).parent().remove()
				})
			})
		})
	</script>
</head>
<body>
	<div class="box">
		<h3>动态相册</h3>
		<div class="input_box">
			<p>
				<label for="img_url">请选择图片:</label>
				<select name="img_body" id="img_body">
					<option value="">请选择</option>
					<option value="http://t1.aixinxi.net/o_1ca18bjeh854shmjt16m9j4la.jpg-w.jpg">sb1</option>
					<option value="http://t1.aixinxi.net/o_1ca18ajjo5ffrun1n2s94nsd2a.jpg-w.jpg">sb2</option>
					<option value="http://t1.aixinxi.net/o_1ca0asokrfnl153njb1717106ha.jpg-w.jpg">前田敦子</option>
					<option value="http://t1.aixinxi.net/o_1ca0at7c76tnnmqv3kviv1b4fa.jpg-w.jpg">小嶋阳菜</option>
				</select>
				<input type="text" id="img_url" name="img_url" placeholder="图片路径">
			</p>
			<p>
				<span>请选择外形:</span>
				<input type="radio" id="radius" name="border" value="10%">圆角
				<input type="radio" id="circle" name="border" value="50%">圆形
				<input type="radio" id="rect" name="border" value="0%" checked="checked">矩形
			</p>
			<p>
				<label for="shadow">是否添加阴影:</label>
				<select name="shadow" id="shadow">
					<option value="0">无阴影</option>
					<option value="1">有阴影</option>
				</select>
			</p>
			<button class="new">提交</button>
		</div>
		<div class="img_box"><ul></ul></div>
	</div>
</body>
</html>

运行实例 »

点击 "运行实例" 按钮查看在线实例

总结:

在利用jquery操作DOM过程中,特别要注意事件的语法和逻辑,js代码写在文件头部和底部的区别,对于append(),prepend(),after(),before()与appendTo(),prependTo(),insertAfter,insertBefore()方法的区别和各自的特点。

作业手写:

0409作业手写1.png0409作业手写2.png

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议