仿京东楼层滚动效果,点击楼层,如何让楼层不要一个一个的跳,而是直接变到对应的楼层

发布于 2022-09-06 05:01:03 字数 3692 浏览 15 评论 0

点击楼层,如何让楼层不要一个一个的跳,而且直接变到对应的楼层 代码如下

<!DOCTYPE html>  
<html>  
<head>  
<title>JD楼层</title>  
<meta charset="utf-8"> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no">
<meta http-equiv="Cache-Control" content="no-siteapp">
<meta name="format-detection" content="telephone=no">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">    
</head> 
<style>
*{padding:0;margin:0;}
.menu-title{border-top:1px solid #ccc;border-right:1px solid #ccc;position:fixed;right:10px;top:10px;background-color:#fff;}
.menu-title li{width:50px;height:50px;line-height:50px;border-left:1px solid #ccc;border-bottom:1px solid #ccc;list-style:none;text-align:center;cursor:pointer;}
.menu-title li.on{background-color:blanchedalmond;}
.floor{background-color:aquamarine;width:100%;height:900px;line-height:400px;margin-top:0;border:1px solid #ccc;}
.menu-cont{overflow:hidden;}
</style>
<body>
    <div style="height:100px;"></div>
    <div id="zc-scrollFloor">
        <ul class="menu-title">
           <li class="on">1F</li>
           <li>2F</li>
           <li>3F</li>
           <li>4F</li>
           <li>5F</li>
        </ul>
        <div class="menu-cont">
            <div class="floor">
                <h4>1F</h4>
            </div>
            <div class="floor">
                <h4>2F</h4>
            </div>
            <div class="floor">
                <h4>3F</h4>
            </div>
            <div class="floor">
                <h4>4F</h4>
            </div>
            <div class="floor">
                <h4>5F</h4>
            </div>
        </div>
    </div>
<script src="js/jquery-1.8.3.min.js"></script>
<script>
   
    (function($){
        /*2017/11/16  SWKJ*/
        defaults={
                menuTitleClass:'menu-title',
                menuContClass:'menu-cont',
                menuContChildClass:'floor',
                activeClass:'on'
            };
        $.fn.scrollFloor = function(option){
            var settings = $.extend(defaults,option);
            $(document).scroll(function() {
               var parentHeight = $("."+settings.menuContClass).height(),
                   parentOffsetTop = $("."+settings.menuContClass)[0].offsetTop,
                   docScrollTop = $(window).scrollTop(),
                   childHeight = $("."+settings.menuContChildClass).outerHeight(true);
                   result = docScrollTop -  parentOffsetTop;
                   n = Math.floor(result/childHeight);
                   if(result>=0){
                       setTimeout($("."+settings.menuTitleClass).children().removeClass(settings.activeClass).eq(n).addClass(settings.activeClass),0);
                   }

            });

            $("."+settings.menuTitleClass).children().click(function(){
                var a = $(this).index();
                    tarScrollTop = $("."+settings.menuContClass)[0].offsetTop+$("."+settings.menuContChildClass).outerHeight(true)*a;
                     $("html,body").stop(true).animate({scrollTop:tarScrollTop},500)
            });
        };
    }(jQuery));

     $("#zc-scrollFloor").scrollFloor();
</script>
</body> 
</html> 

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

悲欢浪云 2022-09-13 05:01:04
<div id="zc-scrollFloor">
    <ul class="menu-title">
        <li class="on" > <a href='#a'>1F</a></li>
        <li> <a href='#b'>2F</a></li>
        <li> <a href='#c'>3F</a></li>
        <li> <a href='#d'>4F</a></li>
        <li> <a href='#e'>5F</a></li>
    </ul>
    <div class="menu-cont">
        <div class="floor">
            <h4 id="a">1F</h4>
        </div>
        <div class="floor">
            <h4 id="b">2F</h4>
        </div>
        <div class="floor">
            <h4 id="c">3F</h4>
        </div>
        <div class="floor">
            <h4 id="d">4F</h4>
        </div>
        <div class="floor">
            <h4 id="e">5F</h4>
        </div>
    </div>
</div>
似狗非友 2022-09-13 05:01:04

楼上两位的答案都可以!我试过!你你根据自己的需要选择用吧!

混浊又暗下来 2022-09-13 05:01:03

以前写的。不知道是否满足楼主需求

http://show.bestime.live/proj...

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文