为什么我的mouseenter没有效果而且我把click事件注释后用键盘控制图片的切换时会跳过第一张

为什么我的mouseenter没有效果而且我把click事件注释后用键盘控制图片的切换时会跳过第一张

<!DOCTYPE html>

<html lang="en">


<head>

    <meta charset="UTF-8" />

    <title>全屏的云南旅游相册</title>

    <link rel="stylesheet" href="css/style.css">

    <script src="https://code.jquery.com/jquery-3.4.1.min.js"></script>

    <script src="js/script.js"></script>

</head>


<body>

    <span></span>

    <nav>

        <a href="#">泸沽湖</a>

        <a href="#">丽江古城</a>

        <a href="#">茶马古道</a>

        <a href="#">就这家·云逸客栈</a>

        <a href="#">西双版纳</a>

        <a href="#">云南红酒庄</a>

        <a href="#">轿子雪山</a>

        <a href="#">普者黑</a>

        <a href="#">海埂大坝</a>

        <a href="#">玉龙湾</a>

        <a href="#">昆明郊野公园</a>

        <a href="#">欧洲风琴小镇</a>

    </nav>

    <div>

        <img src="images/1.jpg">

        <img src="images/2.jpg">

        <img src="images/3.jpg">

        <img src="images/4.jpg">

        <img src="images/5.jpg">

        <img src="images/6.jpg">

        <img src="images/7.jpg">

        <img src="images/8.jpg">

        <img src="images/9.jpg">

        <img src="images/10.jpg">

        <img src="images/11.jpg">

        <img src="images/12.jpg">

    </div>

</body>


</html>


* {

    padding: 0;

    margin: 0;

    border: none;

}


html,

body {

    overflow: hidden;

    height: 100%;

    background: #93b3c6;

}


span {

    display: block;

    width: 16px;

    height: 16px;

    margin: 15px auto 20px;

    border-radius: 50%;

    background: #fff;

}


nav {

    position: relative;

    display: flex;

    width: 85vw;

    margin: 0 auto 30px;

    justify-content: space-between;

}


nav::before {

    position: absolute;

    top: 12px;

    width: 100%;

    height: 10px;

    background: #fff;

    display: block;

    content: '';

}


nav>a {

    position: relative;

    font-size: 10px;

    padding: 7px;

    border: 2px solid #5395b4;

    color: #255d7e;

    text-decoration: none;

    background: #fff;

}


div {

    position: relative;

    width: 85vw;

    height: 80vh;

    margin: 0 auto;

    background: #fff;

    box-shadow: 0 0 30px 0 rgba(8, 1, 3, .3);

    overflow: hidden;

}


div>img {

    position: absolute;

    top: 0;

    right: 0;

    bottom: 0;

    left: 0;

    margin: auto;

    width: 98%;

    height: 96%;

}


$(document).ready(function () {

    $('a').click(function () {

        $('img').eq($(this).index()).css({

            'opacity': '1'

        }).siblings().css({

            'opacity': '0'

        });

    });

    var alinks = $('a');

    for (var i = 0; i < alinks.length; i++) {

        // alinks[i].style.backgroundColor = 'red';

        // alinks[i].style.color = '#fff';

        alinks.eq(i).css({

            backgroundColor: 'red',

            color: '#fff'

        });

    }


    var index = 0;

    var swiper = function () {

        $('img').eq(index).css({

            'opacity': '1'

        }).siblings().css({

            'opacity': '0'

        });

    }

    var init = function () {

        index = 0;

        swiper();

    }

    init();

    var mouseEvent = function (e) {

        e.stopPropagation();

        if ($(this)[0].nodeName == 'A') {

            index = $(this).index;

        } else {

            return true;

        }

        swiper();

    };

    var keyEvent = function (e) {

        if (e.keyCode == 37 || e.keyCode == 38) {

            index = index > 0 ? --index : $('a').length - 1; //当前图片是否不是第一张,不是的话索引值-1,是的话索引值变为最后一张图片的索引值

        } else if (e.keyCode == 40 || e.keyCode == 39) {

            index = index < $('a').length - 1 ? ++index : 0; //当前图片是否不是最后一张,不是的话索引值+1,是的话索引值变为第一张图片的索引值0

        } else {

            return true;

        }

        swiper();

    };

    var events = {

        mouseenter: mouseEvent,

        keydown: keyEvent

    };

    $('a').add(document).on(events);

});

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

同学你好,通过索引值可以获取数组中的值。在jQuery中,获取元素的索引值是index(),固定的语法,同学记住就可以了。祝学习愉快~

好帮手慕言 2020-03-24 11:56:06

同学你好,关于同学的疑问,解答如下:

1、没有移入效果,原因是index值不对,可以参考下方:
http://img1.sycdn.imooc.com//climg/5e79805d09207c6505470198.jpg

2、使用键盘事件切换图片时,没有跳过第一张,同学可以再测试下。

如果我的回答帮到了你,欢迎采纳,祝学习愉快~

  • 提问者 Aurora_Meteor #1
    索引值不是数组的属性吗?不应该直接用index的么为什么要用index()?jQuery中获取到的元素类数组没有index属性只有index方法是吗?
    2020-03-24 12:32:09
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
2.组件化网页开发
  • 参与学习           人
  • 提交作业       1121    份
  • 解答问题       14456    个

本阶段在运用JS实现动态网页开发的基础上,带你深入理解企业开发核心思想,完成一个企业级网页的开发,体验前端工程师的成就感。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师