1. 程式人生 > >微信小程式:實現錨點跳轉

微信小程式:實現錨點跳轉

在微信小程式中想用a標籤來進行錨點跳轉卻沒有起作用,最後用scrollTop解決

WXML

<!-- 錨點跳轉的view start-->
<scroll-view scroll-y="true"  scroll-top="{{scrollTop}}" >
  <view class="self_row r1">1</view>
  <view class="self_row r2">2</view>
  <view class="self_row r3">3</view>
  <view class="self_row r4"
>
4</view> <view class="self_row r5">5</view> </scroll-view> <!-- 錨點跳轉的view end--> <!-- 右邊導航欄 start--> <view class='right_nav'> <view wx:for="{{rightNav}}" wx:key="index" class='nav_item' data-id="{{item.id}}" bindtap="setScrollTop"> <text
class='item_name'>
{{item.name}}</text> </view> </view> <!-- 右邊導航欄 end-->

JS

Page({
  data: {
    rightNav:[
      { id: "1", name:"世"},
      { id: "2", name: "界" },
      { id: "3", name: "你" },
      { id: "4", name: "好" },
      { id: "5", name: "嗎" }
    ],
    scrollTop
: 0 //滾動的值 }, //右邊導航欄錨點跳轉 setScrollTop: function(e) { //將rpx轉化為px var p = 750 / this.data.winWidth; //獲取當前點選的id值 var showId = e.currentTarget.dataset.id; var scrollTop = 0; var len = rightNav.length+1; for(var i=0;i<len;i++){ //當前的點選的id值等於i的話執行scrollTop滾動 if (i==showId){ //600是點選導航欄對應的元素的高度,scrollTop 滾動的高度 scrollTop = ( 600 * (i - 1) ) / p; } } this.setData({ scrollTop: scrollTop }) }, onLoad: function () { // 獲取螢幕的高度 var sysInfo = wx.getSystemInfoSync(); var winHeight = sysInfo.windowHeight; var winWidth = sysInfo.windowWidth; this.setData({ winHeight: winHeight, winWidth: winWidth }) } })