zoukankan      html  css  js  c++  java
  • vue---导航栏点击跳转到对应位置

    html:

    <div id="nav" >

            <a class="xdapai" data-id="dapai" @click="goscrol">大牌</a>

            <a class="xdianfeng"  data-id="dianfeng" @click="goscrol">巅峰</a>

            <a  class="xbaokuan" data-id="baokuan" @click="goscrol">爆款</a>

    </div>

    js:

    methods: {
        goscrol($event) {
          var id = $event.target.dataset.id;
          var $scrollHeight = $("#" + id).offset().top;
          $("html, body").animate(
            {
              scrollTop: $scrollHeight
            },
            500
          );
        },
    
    
    },
    mounted() {
        
        //导航栏操作,当导航栏滚动到顶部,即导航栏吸附在顶部不动。
        window.onload = function() {
          var arr = [
            { id: "dapai", height: $("#dapai").height() },
            { id: "dianfeng", height: $("#dianfeng").height() },
            { id: "baokuan", height: $("#baokuan").height() },
            { id: "freexi", height: $("#freexi").height() },
            { id: "fuli", height: $("#fuli").height() }
          ];
    
        //兼容性
          var box = document.getElementById("nav");
          var topmargin = box.offsetTop;
          var userAgent = navigator.userAgent.toLowerCase();
          var isIphone = userAgent.match(/iphone os/i) == "iphone os";
          var isAndroid = userAgent.match(/android/i) == 'android';
          $(window).on("scroll", function() {
            var scroll = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop;
    		if(isIphone){
    			scroll >= topmargin - 50 ? $("#nav").addClass("postplayIOS") : $("#nav").removeClass("postplayIOS");
    		}else{
    			scroll >= topmargin - 50 ? $("#nav").addClass("postplayAndroid") : $("#nav").removeClass("postplayAndroid");
    		}
          //当导航栏离开顶部时,对应的导航选中样式消失
    	  if (document.getElementById(arr[0].id).offsetTop - $(window).scrollTop() > 90 ) {
                $(".x" + arr[0].id).removeClass("redfont");
              }
    
            for (var i = 0; i < arr.length; i++) {
              var nowbox = document.getElementById(arr[i].id);
              if (nowbox.offsetTop - $(window).scrollTop() < 90) {
                $(".x" + arr[i].id).addClass("redfont").siblings().removeClass("redfont");
              }
            }
          });
        };
    
    }    
    

     css:

    #nav {

      background: #f37938;

      display: flex;

      100%;

    }

    #nav a {

      display: block;

      20%;

      height: 39px;

      line-height: 39px;

      text-align: center;

      color: #fff;

    }

    .postplayIOS {

      position: sticky;

      position: -webkit-sticky;

      left: 0;

      top: 0;

    }

    .postplayAndroid {

      position: fixed;

      left: 0;

      top: 0;

    }

    #nav .redfont {

      border-bottom: 2px solid #f9f100;

    }

  • 相关阅读:
    Java-列出所有系统属性
    Java-一个数组中的元素复制到另一个数组
    Java-将字符串转为数字
    Java单例模式简单实现
    Spring注解@Component、@Repository、@Service、@Controller
    VisualGDB系列2:VisualGDB对Linux平台的支持特性
    VisualGDB系列1:VisualGDB总体概述
    Docker入门(七):部署app
    Docker入门(六):Stacks
    Docker入门(五):Swarms
  • 原文地址:https://www.cnblogs.com/Super-scarlett/p/10929700.html
Copyright © 2011-2022 走看看