老师解答一下问题:商品区轮播图右按钮旁一直有图片,而且点击右按钮点到最后一张再点就是空白,不能到最后一张停下

老师解答一下问题:商品区轮播图右按钮旁一直有图片,而且点击右按钮点到最后一张再点就是空白,不能到最后一张停下


css:/* 商品区轮播图 */

.productbanner {

    width: 1210px;

    height: 240px;

    margin-left: 250px;

    margin-right:250px;

    position: relative;

}

.productbanner .sliderlist{

    width: 1210px;

    overflow: hidden;

}

.productbanner  .product_carousel_list{

    float: left;

    position: relative;

    margin-top: 30px;

    width: 2210px;

    height: 240px;

    transition: all 0.5s;

}

.productbanner  .product_carousel_list li{

   float: left;

   width: 171px;

   height: 240px;

   margin-right: 50px;

}

.productbanner  .product_carousel_list li .product-img{

    width: 171px;

    height: 176px;

    margin-bottom: 10px;

}

.productbanner  .product_carousel_list li .product-text{

    font-size: 18px;

    color: #838383;

}

.productbanner  .product_carousel_list li:last-child{

    margin-right:0;

}

.productbanner .left_button{

    width: 48px;

    height: 48px;

    position: absolute;

    top: 50%;

    left: -32px;

    margin-left: -32px;

}

.productbanner .right_button{

    width: 48px;

    height: 48px;

    position: absolute;

    top: 50%;

    right: 32px;

    margin-right: 32px;

}

JS代码

(function(){

    var leftbtn=document.getElementsByClassName('left_button')[0];

    var rightbtn=document.getElementsByClassName('right_button')[0];

    var list=document.getElementById('product_carousel_list');

    var li=document.getElementsByTagName('li');

    var i=0;

    var len=li.length;

    leftbtn.addEventListener('click',function(){

        if(i==0){

            return;

        }

        i--;

        list.style.left=-i*221+'px';

    })

    rightbtn.addEventListener('click',function(){

        if(i==len-5){

            return;

        }

        i++;

        list.style.left=-i*221+'px';

    })

})()

H5代码

<section class="productbanner" id="productbanner">

        <div class="sliderlist">

            <ul id="product_carousel_list" class="product_carousel_list">

                <li data-n="0">

                    <div class="product-img">

                        <img src="./images/product01.png" alt="">

                    </div>

                    <div class="product-text">

                        时尚卫生间墙面颜色2029装饰设计

                    </div>

                </li>

                <li data-n="1">

                    <div class="product-img">

                        <img src="./images/product02.png" alt="">

                    </div>

                    <div class="product-text">

                        时尚卫生间墙面颜色2029装饰设计

                    </div>

                </li>

                <li data-n="2">

                    <div class="product-img">

                        <img src="./images/product03.png" alt="">

                    </div>

                    <div class="product-text">

                        时尚卫生间墙面颜色2029装饰设计

                    </div>

                </li>

                <li data-n="3">

                    <div class="product-img">

                        <img src="./images/product04.png" alt="">

                    </div>

                    <div class="product-text">

                        时尚卫生间墙面颜色2029装饰设计

                    </div>

                </li>

                <li data-n="4">

                    <div class="product-img">

                        <img src="./images/product05.png" alt="">

                    </div>

                    <div class="product-text">

                        时尚卫生间墙面颜色2029装饰设计

                    </div>

                </li>

                <li data-n="5">

                    <div class="product-img">

                        <img src="./images/product06.png" alt="">

                    </div>

                    <div class="product-text">

                        时尚卫生间墙面颜色2029装饰设计

                    </div>

                </li>

                <li data-n="6">

                    <div class="product-img">

                        <img src="./images/product07.png" alt="">

                    </div>

                    <div class="product-text">

                        时尚卫生间墙面颜色2029装饰设计

                    </div>

                </li>

                <li data-n="7">

                    <div class="product-img">

                        <img src="./images/product08.png" alt="">

                    </div>

                    <div class="product-text">

                        时尚卫生间墙面颜色2029装饰设计

                    </div>

                </li>

                <li data-n="8">

                    <div class="product-img">

                        <img src="./images/product09.png" alt="">

                    </div>

                    <div class="product-text">

                        时尚卫生间墙面颜色2029装饰设计

                    </div>

                </li>

                <li data-n="9">

                    <div class="product-img">

                        <img src="./images/product10.png" alt="">

                    </div>

                    <div class="product-text">

                        时尚卫生间墙面颜色2029装饰设计

                    </div>

                </li>    

            </ul>

        </div>

        <div class="left_button"><img src="./images/prev.png"></div>

        <div class="right_button"><img src="./images/next.png"></div>

    </section>

https://img1.sycdn.imooc.com//climg/62582ba7095549be19201080.jpg

正在回答 回答被采纳积分+1

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

1回答
好帮手慕星星 2022-04-15 10:04:24

同学你好, 解答如下:

1、productbanner盒子在水平方向上没有居中

https://img1.sycdn.imooc.com//climg/6258d19209c6b51b19200270.jpg

右箭头下面有图片,是因为设置宽度设置的小了,第六张图片漏出来一部分。

建议调整盒子大小并居中,以及将li右侧间距改为左右两侧间距

https://img1.sycdn.imooc.com//climg/6258d1e609d9cbef04610575.jpg

https://img1.sycdn.imooc.com//climg/6258d1f20977a1b305670301.jpg

2、左右箭头大小是48*48,左右定义的位置也建议写为-48px

https://img1.sycdn.imooc.com//climg/6258d2230907262305170768.jpg

3、第一次点击右侧箭头的时候图片直接挪动,没有过渡效果。是因为初始ul没有添加left值,参考修改:

https://img1.sycdn.imooc.com//climg/6258d26309800a7704720380.jpg

点击到最后一张不能停下,可能是样式的问题,修改后就好了。

祝学习愉快!

  • 提问者 slender0923 #1

    https://img1.sycdn.imooc.com//climg/6258dbbc09fce55919201080.jpg

    按到最后一张再往后点是空白,代码已经按上述的改好了,是因为js代码的问题吗


    2022-04-15 10:43:47
  • 好帮手慕星星 回复 提问者 slender0923 #2

    js逻辑是对的,老师这边测试没问题

    https://img1.sycdn.imooc.com//climg/6258e7c8096dc2ca19140790.jpg

    可能是获取li的问题,代码中获取的是所有li元素,页面中可能会有很多li

    https://img1.sycdn.imooc.com//climg/6258e80909d4649b08500275.jpg

    建议调整为当前ul下的li

    https://img1.sycdn.imooc.com//climg/6258e833097099a507570116.jpg

    自己再测试下。

    2022-04-15 11:36:44
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

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