Vue项目中使用锚点链接导致url发生改变

10 篇文章 1 订阅
8 篇文章 0 订阅

        本次我们的项目是一个在线考试系统,我主要负责学生端的前台部分,最重要的那当然就是答题页面,我写的样式会涉及到点击侧边框的对应题号就会滚动到对应的题的位置,第一个想到的写法那就是锚点链接,但是当我使用锚点链接后,点击题号,会导致url发生改变,这样的话,一旦刷新页面就会导致找不到页面的情况:

 刷新页面后页面将找不到:

 解决办法:

        给侧边框的题号标签绑定一个点击事件(我这里是toTopic):

<a v-for="(tag, index) in 30" :key="index" @click="toTopic('#t'+index)">
    <el-tag type="info" class="tagItem">{{ index + 1 }}</el-tag>
</a>

         给对应的题添加id:

<div class="topicItem"  id="t4">   
    <p>5.中华四大名著有西游记吗:</p>
    <div class="shortAnswerItem">
        <el-radio-group v-model="judge" @change="judgeFun">
            <el-radio :label="false">错误</el-radio>
             <el-radio :label="true">正确</el-radio>
        </el-radio-group>
     </div>
</div>

        toTopic:

toTopic(idName){
      document.querySelector(idName).scrollIntoView(true);
}

利用scrollIntoView方法使对应的id进入可视区即可

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值