GuestBook/web/index.jsp
2023-06-09 01:59:08 +08:00

451 lines
15 KiB
Plaintext

<%--
Created by IntelliJ IDEA.
User: landaiqing
Date: 2023/6/8
Time: 19:20
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core_rt" %>
<html>
<head>
<title>留言本</title>
<%-- Lay-ui组件库--%>
<%-- <script type="text/javascript" src="./static/layui/layui.js"></script>--%>
<%-- &lt;%&ndash; Lay-ui样式&ndash;%&gt;--%>
<%-- <link rel="stylesheet" type="text/css" href="./static/layui/css/layui.css">--%>
<script src="https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
<!-- 引入 layui.css -->
<link href="//unpkg.com/layui@2.8.0/dist/css/layui.css" rel="stylesheet">
<!-- 引入 layui.js -->
<script src="//unpkg.com/layui@2.8.0/dist/layui.js">
// <link rel="stylesheet" href="./static/css/index.css" type="text/css">
// <script language=JavaScript type="text/javascript" src="static/js/index.js"></script>
<style type="text/css">
@IMPORT url("./static/css/index.css");
</style>
</head>
<body>
<div class="main">
<div class="header">
<div style="display: flex;flex-direction: row;flex-wrap: nowrap;align-items: center;">
<div style="width: 570px;height: 45px;">
<span style="font-size: 2rem;font-weight: 700;font-family: FZShuTi;color:coral;">留 &nbsp;&nbsp;言&nbsp;&nbsp; 本</span>
</div>
<button type="button" class="layui-btn layui-btn-warm layui-btn-radius" lay-on="wrap">
<i class="layui-icon layui-icon-edit"></i>
发布留言
</button>
<!-- <button type="button" class="layui-btn layui-btn-radius" lay-on="admin">
<i class="layui-icon layui-icon-set-fill"></i>
管理
</button> -->
<div>
<ul class="layui-nav" style="background: transparent;">
<li class="layui-nav-item" lay-unselect>
<a href="javascript:;">
<img src="./static/img/touxiang.png" class="layui-nav-img">
</a>
<dl class="layui-nav-child">
<button type="button" class="layui-btn layui-btn-radius" lay-on="admin">
<i class="layui-icon layui-icon-set-fill"></i>
管理
</button>
</dl>
</li>
</ul>
</div>
</div>
</div>
<blockquote class="layui-elem-quote layui-text">
留言列表
</blockquote>
<!-- 管理员登陆 -->
<div class="layui-form" id="adminform" lay-filter="filter-test-layer" style="margin: 16px;display: none;">
<form action="/Guestbook_war_exploded/login" method="post">
<div class="demo-login-container">
<div class="layui-form-item">
<div class="layui-input-wrap">
<div class="layui-input-prefix">
<i class="layui-icon layui-icon-username"></i>
</div>
<input type="text" name="username" value="" lay-verify="required" placeholder="用户名"
lay-reqtext="请填写用户名" autocomplete="off" class="layui-input" lay-affix="clear">
</div>
</div>
<div class="layui-form-item">
<div class="layui-input-wrap">
<div class="layui-input-prefix">
<i class="layui-icon layui-icon-password"></i>
</div>
<input type="password" name="password" value="" lay-verify="required" placeholder="密 码"
lay-reqtext="请填写密码" autocomplete="off" class="layui-input" lay-affix="eye">
</div>
</div>
<div class="layui-form-item">
<div class="layui-row">
<div class="layui-col-xs7">
<div class="layui-input-wrap">
<div class="layui-input-prefix">
<i class="layui-icon layui-icon-vercode"></i>
</div>
<input type="text" name="code" value="" lay-verify="required" placeholder="验证码"
lay-reqtext="请填写验证码" autocomplete="off" class="layui-input" lay-affix="clear">
</div>
</div>
<div class="layui-col-xs5">
<div style="margin-left: 10px;">
<img src=VerifycodeServlet
onclick="this.src='VerifycodeServlet?'+ new Date().getTime();">
</div>
</div>
</div>
</div>
<div class="layui-form-item">
<input type="checkbox" name="remember" lay-skin="primary" title="记住密码">
</div>
<%-- <div class="layui-form-item">--%>
<%-- <button class="layui-btn layui-btn-fluid" lay-submit lay-filter="demo-login">登录</button>--%>
<%-- </div>--%>
<input type="submit" value="注册"/>
</div>
</form>
</div>
<!-- 发布留言的主体 -->
<div class="wrap" id="warp" style="display: none;">
<div class="userIfo">
<div class="layui-panel">
<div style="padding: 32px;" class="panel">
<div class="layui-input-wrap">
<div class="layui-input-prefix">
<i class="layui-icon layui-icon-username"></i>
</div>
<input type="text" placeholder="昵称" class="layui-input">
</div>
<div class="layui-input-wrap">
<div class="layui-input-prefix">
<i class="layui-icon layui-icon-login-qq"></i>
</div>
<input type="text" placeholder="QQ" class="layui-input">
</div>
<div class="layui-input-wrap">
<div class="layui-input-prefix">
<i class="layui-icon layui-icon-email"></i>
</div>
<input type="text" placeholder="Email" class="layui-input">
</div>
</div>
</div>
</div>
<div class="layui-panel">
<div class="wrap-head">
<div class="head-logo">
<img src="./static/img/留言.png" style="height: 20px;width: 20px;" />
</div>
<div class="head-txt">
<a class="title-txt"
href="javascript:void(0)">111111111111111111111111111&nbsp;&nbsp;&nbsp;热门</a>
</div>
</div>
<div class="main-txt">
<textarea name="" rows="" cols="" class="main-area"></textarea>
</div>
<div class="warp-footer">
<div class="warp-icon-cont">
<ul>
<li><img src="./static/img/发表情.png" alt="" />
<a href="javascript:void(0)">表情</a>
</li>
<li><img src="./static/img/图片_填充.png" alt="" />
<a href="javascript:void(0)">图片</a>
</li>
<li><img src="./static/img/视频_填充.png" alt="" />
<a href="javascript:void(0)">视频</a>
</li>
<li><img src="./static/img/话题选中.png" alt="" />
<a href="javascript:void(0)">话题</a>
</li>
<li><img src="./static/img/文章.png" alt="" />
<a href="javascript:void(0)">文章</a>
</li>
</ul>
</div>
<div class="warp-footer-btns">
<div class="release-btn">
<a href="javascript:void(0)">发布</a>
</div>
</div>
</div>
</div>
</div>
<!-- 显示留言的主体 -->
<div class="show">
<div class="show-content">
<div class="show-name">
<div class="avtors"><img src="./static/img/touxiang.png" alt="" style="width: 40px;height: 40px;border-radius: 50%;"></div>
<span style="margin-left: 10px;font-size: 1rem;">Xx</span>
</div>
<div class="show-txt">
<p class="">这是内容111111111111111111111111111111111111111111111111111111111</p>
</div>
<div class="show-time">2018年10月24日</div>
<!-- <button type="button" class="layui-btn layui-btn-xs" lay-on="wrap">
<i class="layui-icon layui-icon-release"></i> 回复
</button> -->
<div class="layui-panel">
<div class="comments">
<div class="comment-wrap">
<div class="photo">
<div class="avatar" style="background-image: url('./static/img/touxiang.png')"></div>
</div>
<div class="comment-block">
<form action="">
<textarea name="" id="" cols="30" rows="3" placeholder="Say somthing..." style="resize:none"></textarea>
<button type="button" class="layui-btn layui-btn-xs">
<i class="layui-icon layui-icon-release"></i> 回复
</button>
</form>
</div>
</div>
<div class="comment-wrap">
<div class="photo">
<div class="avatar" style="background-image: url('./static/img/touxiang.png')"></div>
</div>
<div class="comment-block">
<p class="comment-text">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Iusto temporibus iste nostrum dolorem natus recusandae incidunt voluptatum. Eligendi voluptatum ducimus architecto tempore, quaerat explicabo veniam fuga corporis totam reprehenderit
quasi sapiente modi tempora at perspiciatis mollitia, dolores voluptate. Cumque, corrupti?</p>
<div class="bottom-comment">
<div class="comment-date">23.5 2014</div>
<ul class="comment-actions">
<li class="complain">Complain</li>
<li class="reply">Reply</li>
</ul>
</div>
</div>
</div>
</div>
</div>
<div class="show-close">x</div>
</div>
</div>
</div>
<script>
layui.use(function () {
var $ = layui.$;
var layer = layui.layer;
var util = layui.util;
var form = layui.form;
util.on('lay-on', {
'wrap': function () {
layer.open({
type: 1,
resize: true,
title: '发表留言',
shade: false, // 不显示遮罩
content: $('#warp'), // 捕获的元素
end: function () {
// layer.msg('关闭后的回调', {icon:6});
}
});
},
'admin': function () {
layer.open({
type: 1,
area: '350px',
resize: false,
shadeClose: true,
title: '管理员登录',
content: $('#adminform'),
}, )
}
})
})
// 匿名函数包裹,防止外界操作的修改
$(function () {
// 还能输入的字得个数
var able_count = 140;
// 是否可以发布留言
var release_able = false;
// 右上角文字
var $title_txt = $('.title-txt');
// 留言框
var $main_area = $('.main-area');
// 发布按钮
var $release_btn = $('.release-btn');
// 输入框获取焦点
$main_area.focus(function () {
console.log("获取焦点");
$(this).parent().addClass('outline');
$title_txt.addClass('title');
if (able_count >= 0) {
$title_txt.html("还可以输入" + able_count + "个字");
} else {
$title_txt.html("你以超出" + (-able_count) + "个字");
}
})
// 输入框失去焦点
$main_area.blur(function () {
console.log("失去焦点");
$(this).parent().removeClass('outline');
$title_txt.removeClass('title');
$title_txt.html("111");
})
// 输入框文本修改
$main_area.on('input', function () {
console.log("文本修改");
// 剩余可输入的字个数
able_count = 140 - $main_area.val().length;
// console.log(able_count);
// 根据可输入字的个数决定右上角文本的提示 与 是否能发布的状态
if (able_count >= 0 && able_count <= 140) {
$title_txt.html("还可以输入" + able_count + "个字");
if (able_count != 140) {
release_able = true;
} else {
release_able = false;
}
} else {
$title_txt.html("你以超出" + (-able_count) + "个字");
release_able = false;
}
// 根据发布状态决定发布按钮的样式
if (release_able) {
$release_btn.css({
backgroundColor: "orange",
borderColor: "orange"
})
} else {
$release_btn.css({
backgroundColor: "#ffc09f",
borderColor: "#ffc09f"
})
}
})
// 发布事件
$release_btn.click(function () {
console.log("发布");
if (release_able) {
console.log('可以发布');
// 创建show对象的各个部位
var $showContent = $('<div class="show-content"></div>'),
$showName = $('<div class="show-name"></div>'),
$showTxt = $('<div class="show-txt"></div>'),
$showTime = $('<div class="show-time"></div>'),
$showClose = $('<div class="show-close"></div>'),
$showP = $('<p class=""></p>');
var date = new Date();
// 设置,对象结构内内容
$showName.text("XxXx");
$showP.text($main_area.val());
$showTime.text(date);
$showClose.text("x");
// 添加进入主结构
$showTxt.append($showP);
$showContent.append($showName);
$showContent.append($showTxt);
$showContent.append($showTime);
$showContent.append($showClose);
// 向所有匹配元素内部的开始处插入内容
$('.show').prepend($showContent);
// 添加动画
// 位置从输入框处下移
$showContent.css({
top: '-150px'
})
$showContent.animate({
top: 0
}, 200)
// 删除事件
$showClose.click(function () {
// 显示插入的索引位置
// console.log($(this).parent().index());
// console.log($showContent.index());
// 删除操作为顺便
// $showContent.remove();
// 使用删除动画,创建效果
$showContent.animate({
height: 0
}, 200, function () {
// 动画结束后将自身从dom中移除
$showContent.remove();
})
})
// 发布成功后收尾工作
$main_area.val(""); //输入框清空
able_count = 140; //输入框可输入内容数重置
release_able = false;
$release_btn.css({
backgroundColor: '#ffc09f',
borderColor: '#ffc09f'
}) //按钮点击事件重置
}
})
})
</script>
</body>
</html>