博客列表 >5月21日作业: 编写一个自己的动态相册管理器

5月21日作业: 编写一个自己的动态相册管理器

鲨鱼辣椒的博客
鲨鱼辣椒的博客原创
2019年06月07日 16:56:26665浏览

jQuery编写一个自己的动态相册管理器

详细内容以代码注释介绍,代码如下:

实例

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>在线相册管理</title>
    <style>
    .warp {
    width: 360px;
    height: auto;
    background-color: linen;
    border: 3px double grey;
    color: #363636;
    border-radius: 2%;
    box-shadow: 2px 2px 2px #888;
    }
    .warp .header {
    padding: 15px;
    }
    .warp .header h2 {
    text-align: center;
    }
    .add {
    width: 100px;
    height: 30px;
    border: none;
    cursor: pointer;
    background-color: deepskyblue;
    color: white;
    }
    .add:hover {
    background-color: orange;
    font-size: 1.1rem;
    }
    .main {
    overflow: hidden;
    }

    .main ul {
    padding: 0;
    margin: 0;
    }

    .main ul li {
    list-style-type: none;
    float: left;
    margin-left: 20px;
    margin-bottom: 10px;
    width: 150px;
    height: 200px;
    text-align: center;
    }

    .main ul li button {
    margin: 3px;
    border: none;
    border-radius: 5%;
    background-color: deepskyblue;
    }
    .main ul li button:hover {
    background-color: orange;
    color: white;
    cursor: pointer;
    }

    </style>
</head>
<body>
<div class="warp">
    <div class="header">
        <h2>私人相册</h2>
        <p>
            <label for="img_url">输入图片地址</label>
            <input type="file" name="img_url" id="img_url" placeholder="图片地址">
        </p>
        <p>
            图片类型:
            <input type="radio" id="rect" name="border" value="0" checked><label for="rect">直角</label>
            <input type="radio" id="radius" name="border" value="10%"><label for="radius">圆角</label>
            <input type="radio" id="circle" name="border" value="50%"><label for="circle">圆形</label>
        </p>
        <p>
            <label for="shadow">是否添加阴影:</label>
            <select name="shadow" id="shadow">
                <option value="0" selected>不添加</option>
                <option value="1">添加</option>
            </select>
        </p>
        <p><button class="add">添加图片</button></p>
    </div>
    <div class="main">
        <ul>
            <!--            <li>-->
            <!--                <img src="http://html.io/0521/static/images/2.jpg" alt="" width="150">-->
            <!--                <button>前移</button>-->
            <!--                <button>后移</button>-->
            <!--                <button>删除</button>-->
            <!--            </li>-->
        </ul>
    </div>
</div>

<script src="static/js/jquery-3.4.1.js"></script>

<script>
    $(function () {
        $('.add').on('click',function () {
            // 1. 获取图片信息
            // 判断用户是否选择了图片?
            var img_url = $('#img_url').val();
            if (img_url.length === 0){
                alert('请选择一张图片上传');
                $('#img_url').focus();
                // console.log($(this));
                return false;
            }

            //获取图片的外观特征
            var img_type = $('input[type="radio"]:checked').val();
            var shadow = 'none';
            if ($(':selected').val() === 1){
                shadow = '2px 2px 2px #888';
            }
            console.log(img_type);
            //2. 创建图片并添加到页面中
            // 这里图片真实地址的获取是一个小难点
            console.log(img_url);
            console.log(img_url.split('\\')); // ["C:", "fakepath", "3.jpg"]
            // 最后一个值,满足要求
            console.log(img_url.split('\\')[2]); //
            var realImgUrl = img_url.split('\\')[2];
            // console.log('http://html.io/0521/static/images/'+img_url.split('\\')[2]);
            img_url = 'http://html.io/0521/static/images/'+realImgUrl;
            console.log(img_url);

            //创建图片与按钮,并且打包到一个容器中,添加到页面中
            var img = $('<img>').attr({
                src: img_url,
                width: 150,
                height: 150,
                alt: '明星相册'
            }).css({
                'border-radius': img_type,
                'box-shadow': shadow
            });

            //三个操作按钮
            var before = $('<button>').text('前移');
            var after = $('<button>').text('后移');
            var remove = $('<button>').text('删除');

            // 创建一个<li>用来放所有的内容
            var contaier = $('<li>');
            //将图片和三个按钮打包到<li>中
            contaier.append(img,before,after,remove);
            //将<li>添加到页面中的<ul>中
            contaier.appendTo('ul');
            /**************************************************************/
            //3. 为三个操作添加功能
            //前移功能:
            before.on('click',function () {
               //获取到要移动的图片
                // 按钮的父元素,才是<li>就是当前要移动的图片
               var current = $(this).parent();
               var prev = current.prev();// 前一个元素
                // 在前一个元素之前将当前元素插入,实际上就是交换一下位置
                prev.before(current);
            });
            //后移功能:
            after.on('click',function () {
               //获取到要移动的图片
                // 按钮的父元素,才是<li>就是当前要移动的图片
               var current = $(this).parent();
               var next = current.next();// 后一个元素
                // 在后一个元素之后将当前元素插入,实际上就是交换一下位置
                next.after(current);
            });
            //删除
            remove.on('click', function () {
                if (confirm('确认删除吗?')) {
                    $(this).parent().remove();
                }
                return false;
            })
        })
    })
</script>
</body>
</html>

运行实例 »

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


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