JavaWeb——JavaScript应用案例

目录

1. 菜单栏

1.1 HTML代码

1.2 CSS代码

1.3 JavaScript代码 

2. 轮播图

2.1 HTML代码

2.2 CSS代码

2.3 JavaScript代码 

3. 模态框

3.1 HTML代码

3.2 CSS代码

3.3 JavaScript代码

4. 侧边固定栏

4.1 HTML代码

4.2 CSS代码

4.3 JavaScript代码 


1. 菜单栏

实现思路:

        1.首先,需要编写HTML和CSS代码来创建导航栏菜单和下拉菜单的样式。在下拉菜单中,需要为每个下拉菜单项创建一个列表项,并使用CSS将其隐藏起来。

        2.使用JavaScript编写代码来监听导航菜单的鼠标事件。例如,可以使用mouseover和mouseout事件来检测鼠标指针是否进入或离开导航菜单的区域。

        3.当鼠标指针进入导航菜单时,可以使用JavaScript来显示下拉菜单。可以使用CSS的display属性将下拉菜单设置为可见,并将其位置设置为与导航菜单项对齐。

        4.当鼠标指针离开导航菜单时,可以使用JavaScript来隐藏下拉菜单。可以再次使用CSS的display属性来将下拉菜单设置为隐藏,并将其位置为不可见。

1.1 HTML代码

<nav>
    <ul>
        <li>
            <a href="#">主菜单1</a>
            <ul>
                <li><a href="#">子菜单1</a></li>
                <li><a href="#">子菜单2</a></li>
                <li><a href="#">子菜单3</a></li>
            </ul>
        </li>
        <li>
            <a href="#">主菜单2</a>
            <ul>
                <li><a href="#">子菜单4</a></li>
                <li><a href="#">子菜单5</a></li>
                <li><a href="#">子菜单6</a></li>
            </ul>
        </li>
        <li><a href="#">主菜单3</a></li>
    </ul>
</nav>

1.2 CSS代码

主菜单样式:让主菜单都在一行

nav ul {
    list-style: none;
    margin: 0;
    padding: 0;
}
/* 主菜单1和主菜单2以及主菜单3在同一行 */
nav li {
    display: inline-block;
    position: relative;
}

子菜单隐藏

nav li ul {
    width: 100%;
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
}

CSS解决方法

nav li:hover > ul {
    display: block;
}

 其他样式

nav a {
    display: block;
    padding: 10px;
    background-color: #eee;
    text-decoration: none;
    color: #333;
}
nav ul{
    background-color: #fff;
    border: 1px solid #ccc;
}

1.3 JavaScript代码 

    //获取所有的主菜单
    var navItems = document.querySelectorAll('nav li');
    // 给每个导航菜单项添加鼠标事件监听器
    for (var i = 0; i < navItems.length; i++) {
        navItems[i].addEventListener('mouseover', showSubMenu);
        navItems[i].addEventListener('mouseout', hideSubMenu);
    }
    function showSubMenu() {
        //判断主菜单下是否有子菜单
        if (this.children.length > 1) {
            this.children[1].style.display = 'block';
        }
    }
    function hideSubMenu() {
        if (this.children.length > 1) {
            this.children[1].style.display = 'none';
        }
    }

2. 轮播图

在JavaScript中实现轮播图的原理,主要是通过控制CSS样式和DOM元素来实现的。

具体实现步骤如下:

        1.在HTML中,创建轮播图的HTML结构,并添加相应的CSS样式,用来控制轮播图的位置、大小等。轮播图通常是一个容器元素,其中包含多个轮播项元素,每个轮播项元素包含要展示的图片或内容等。

        2.在JavaScript中,添加定时器或事件监听器来触发轮播图的切换。比如,可以设置一个定时器来定时切换轮播项,或者在用户点击轮播图的控制按钮触发事件。

        3.在事件处理程序中,通过JavaScript控制CSS样式和DOM元素,将当前轮播项隐藏,将下一个轮播项显示出来,以达到轮播切换的效果。可以使用display属性或者opacity和transform等属性来控制轮播项的显示和隐藏,并通过JavaScript来控制轮播项的索引位置。

        4.可以使用CSS3动画和过渡效果等,以实现更加丰富的轮播效果。比如,可以使用transition属性来控制轮播项的渐变过渡效果,或者使用animation属性来控制轮播项的旋转或缩放动画效果等。

        5.可以添加轮播图的控制按钮,比如上一页、下一页、点状导航等,以方便用户进行轮播项的切换。在JavaScript中,需要添加事件监听器来响应用户的点击事件,并根据不同的控制按钮来切换不同的轮播项。

2.1 HTML代码

<div class="slideshow-container">
    <div class="slideshow-slide">
        <img src="image/1/8.jpg" alt="图片1">
    </div>
    <div class="slideshow-slide">
        <img src="image/1/3.jpg" alt="图片2">
    </div>
    <div class="slideshow-slide">
        <img src="image/1/4.jpg" alt="图片3">
    </div>
    <div class="slideshow-slide">
        <img src="image/1/9.jpg" alt="图片4">
    </div>
    <a class="prev" onclick="changeSlide(-1)">&#10094;</a>
    <a class="next" onclick="changeSlide(1)">&#10095;</a>
</div>

2.2 CSS代码

<style>
    .slideshow-container {
        position: relative;
        width: 100%;
        height: 400px;
        overflow: hidden;/* 隐藏溢出 清除浮动  解决坍塌*/
    }

    .slideshow-slide {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        opacity: 0; /* 完全透明 */
        transition: opacity 0.5s ease-in-out;/* 动画效果 */
    }

    .slideshow-slide.active {
        opacity: 1;  /* 完全可见 */
    }

    .slideshow-slide img {
        width: 100%;
        height: 100%;
        object-fit: cover;/* 防止图片挤压变形 */
    }

    .prev, .next {
        position: absolute;
        top: 50%;
        transform: translateY(-50%);
        font-size: 2rem;
        color: #fff;
        cursor: pointer;
        z-index: 1;
    }

    .prev {
        left: 10px;
    }

    .next {
        right: 10px;
    }

</style>

2.3 JavaScript代码 

<script>
    // 获取存放图片的div
    var slides = document.querySelectorAll('.slideshow-slide');
    //当前为0
    var currentSlide = 0;
    // 自动轮播
    var slideInterval = setInterval(nextSlide, 1000);
    // 手动切换
    function changeSlide(n) {
        clearInterval(slideInterval);
        currentSlide += n;
        if (currentSlide >= slides.length) {
            currentSlide = 0;
        } else if (currentSlide < 0) {
            currentSlide = slides.length - 1;
        }
        showSlide(currentSlide);
    }
    // 显示当前轮播项
    function showSlide(n) {
        for (var i = 0; i < slides.length; i++) {
            slides[i].classList.remove('active');
        }
        slides[n].classList.add('active');
    }
    // 下一张轮播图
    function nextSlide() {
        currentSlide++;
        if (currentSlide >= slides.length) {
            currentSlide = 0;
        }
        showSlide(currentSlide);
    }

</script>

3. 模态框

在JavaScript中实现模态框的原理,主要是通过控制CSS样式和DOM元素来实现的。

具体实现步骤如下:

        1.在HTML中,创建模态框的HTML结构,并添加相应的CSS样式,使其隐藏在页面中,等待触发。

        2.在JavaScript中,添加事件监听器来触发模态框的显示。比如,可以在点击某个按钮时触发事件,通过修改CSS样式来显示模态框。

        3.在事件处理程序中,通过JavaScript控制CSS样式,将模态框显示在屏幕中央,同时将背景屏幕设置为不可用状态。

        4.可以使用display属性来控制模态框的显示和隐藏,也可以使用opacity和transform属性等控制透明度和位置等,以达到更好的视觉效果。

        5.当用户完成模态框中的操作后,可以通过JavaScript控制CSS样式,将模态框隐藏,同时将背景屏幕还原为可用状态。 

3.1 HTML代码

<div class="modal" id="myModal">
    <div class="modal-content">
        <div class="modal-header">
            <span class="close">×</span>
            <h2>模态框头部</h2>
        </div>
        <div class="modal-body">
            <p>主要内容</p>
            <p>其它内容</p>
        </div>
        <div class="modal-footer">
            <h3>模态框底部</h3>
        </div>
    </div>
</div>

<button id="myBtn">打开模态框</button>

3.2 CSS代码

<style>
    .modal {
        display: none;
        position: fixed;
        z-index: 1;
        left: 0;
        top: 0;
        width: 100%;
        height: 100%;
        overflow: auto;
        background-color: rgb(0,0,0);
        background-color: rgba(0,0,0,0.4);
    }
    .modal-content {
        background-color: #fefefe;
        margin: 15% auto;
        padding: 20px;
        border: 1px solid #888;
        width: 80%;
    }
    .close {
        color: #aaa;
        float: right;
        font-size: 28px;
        font-weight: bold;
    }

    .close:hover,
    .close:focus {
        color: black;
        text-decoration: none;
        cursor: pointer;
    }

</style>

3.3 JavaScript代码

<script>
    var modal = document.getElementById("myModal");
    var btn = document.getElementById("myBtn");
    var span = document.getElementsByClassName("close")[0];

    btn.onclick = function() {
        modal.style.display = "block";
    }

    span.onclick = function() {
        modal.style.display = "none";
    }

    window.onclick = function(event) {
        if (event.target == modal) {
            modal.style.display = "none";
        }
    }
</script>

4. 侧边固定栏

实现侧边栏固定的原理,主要是通过滚动监听技术和CSS样式控制来实现的。

具体实现步骤如下:

        1.获取需要固定的侧边栏元素的位置,获取元素在视口中的位置信息。

        2.监听页面滚动事件,通过window.addEventListener('scroll',callback)方法添加滚动监听事件,回调函数中获取滚动距离。

        3.判断当前滚动距离是否大于等于需要固定的侧边栏元素在视口中的位置信息中的top值,如果是,则添加一个类名或者改变样式,使其固定在页面的特定位置上,否则就去除该类名或样式,还原原来的位置。

4.1 HTML代码

<div class="container">
    <div class="content">
        <h2>主要内容区域</h2>
        <p>这里是页面的主要内容区域。</p>
        <p>这里是页面的主要内容区域。</p>
        <p>这里是页面的主要内容区域。</p>
        <p>这里是页面的主要内容区域。</p>
        <p>这里是页面的主要内容区域。</p>
        <p>这里是页面的主要内容区域。</p>
        <p>这里是页面的主要内容区域。</p>
        <p>这里是页面的主要内容区域。</p>
        <p>这里是页面的主要内容区域。</p>
        <p>这里是页面的主要内容区域。</p>
        <p>这里是页面的主要内容区域。</p>
        <p>这里是页面的主要内容区域。</p>
        <p>这里是页面的主要内容区域。</p>
        <p>这里是页面的主要内容区域。</p>
        <p>这里是页面的主要内容区域。</p>
        <p>这里是页面的主要内容区域。</p>
        <p>这里是页面的主要内容区域。</p>
        <p>这里是页面的主要内容区域。</p>
        <p>这里是页面的主要内容区域。</p>
        <p>这里是页面的主要内容区域。</p>
        <p>这里是页面的主要内容区域。</p>
        <p>这里是页面的主要内容区域。</p>
        <p>这里是页面的主要内容区域。</p>
    </div>
    <div class="sidebar">
        <div class="sidebar-item">
            <h3>侧边固定栏</h3>
            <ul>
                <li><a href="#section1">Section 1</a></li>
                <li><a href="#section2">Section 2</a></li>
                <li><a href="#section3">Section 3</a></li>
                <li><a href="#section4">Section 4</a></li>
                <li><a href="#section5">Section 5</a></li>
            </ul>
        </div>
        <div class="sidebar-item">
            <h3>联系方式</h3>
            <p>电话:123456789</p>
            <p>邮箱:example@example.com</p>
        </div>
        <div class="sidebar-item">
            <h3>广告</h3>
        </div>
    </div>
</div>

4.2 CSS代码

<style>
    .container {
        display: flex;
        flex-direction: row;
        max-width: 1200px;
        margin: 0 auto;
        padding: 20px;
    }

    .content {
        width: 70%;
    }

    .sidebar {
        position: fixed;
        top: 80px;
        right: 50px;
        width: 25%;
    }

    .sidebar-item {
        margin-bottom: 30px;
    }

    .sidebar-item h3 {
        margin-bottom: 10px;
    }

    .sidebar-item ul {
        list-style: none;
        margin: 0;
        padding: 0;
    }

    .sidebar-item li {
        margin-bottom: 10px;
    }

    .sidebar-item li a {
        color: #333;
        text-decoration: none;
    }

    .sidebar-item li a:hover {
        color: #666;
    }

</style>

4.3 JavaScript代码 

<script>
    //获取侧边栏
    var sidebar = document.querySelector('.sidebar');
    //元素到顶部的距离
    var sidebarTop = sidebar.offsetTop;
    //内容页自身的高度
    var contentHeight = document.querySelector('.content').offsetHeight;
    //添加事件
    window.addEventListener('scroll', function() {
        //在垂直方向已滚动的像素值
        var scrollPos = window.scrollY;
        if (scrollPos >= sidebarTop && scrollPos <= (contentHeight - sidebar.offsetHeight)) {
            sidebar.classList.add('fixed');
        } else {
            sidebar.classList.remove('fixed');
        }
    });
</script>

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实现登录注册功能的JavaWeb应用通常包括以下几个步骤: 1. 创建登录页面和注册页面:根据引用\[2\]中的代码,可以创建一个login.html文件作为登录页面,其中包含用户名和密码的输入框以及登录按钮和注册链接。同时,还需要创建一个register.html文件作为注册页面,其中包含用户名、密码和确认密码的输入框以及注册按钮。 2. 编写CSS样式:根据引用\[2\]中的代码,可以创建一个login.css文件,用于设置登录页面的样式。 3. 创建Servlet:根据引用\[1\]中的代码,可以创建一个UserRegisterServlet类,用于处理用户的注册请求。在该类中,可以通过获取用户输入的用户名和密码,然后将其保存到数据库中。 4. 配置web.xml:根据引用\[3\]中的代码,需要将UserRegisterServlet类配置到web.xml文件中,以便能够通过URL访问到该Servlet。 通过以上步骤,就可以实现一个简单的登录注册功能的JavaWeb应用。用户可以在登录页面输入用户名和密码进行登录,如果没有账号,可以点击注册链接跳转到注册页面进行账号注册。在注册页面输入用户名和密码后,点击注册按钮即可完成注册。 #### 引用[.reference_title] - *1* [JavaWeb实现登录注册功能[代码+详解]](https://blog.csdn.net/jiey0407/article/details/126105700)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [Java-web实现用户登录、注册功能](https://blog.csdn.net/m0_52822058/article/details/128355926)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [Javaweb常用登录和注册功能实现(详细步骤)](https://blog.csdn.net/weixin_44253375/article/details/108290462)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值