博主信息
博文 100
粉丝 8
评论 2
访问量 174894
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
20180409作业(动态相册,增加了一个小功能)
lilove的博客
原创
924人浏览过

主题:

利用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举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学