国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【小程序】scrollview制作tab導(dǎo)航欄,點擊tab自動滾動到指定位置

這篇具有很好參考價值的文章主要介紹了【小程序】scrollview制作tab導(dǎo)航欄,點擊tab自動滾動到指定位置。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

前幾天遇到一個需求,做一個答題的界面,頂部是題目編號列表,下面是題目,點擊題目編號跳轉(zhuǎn)到相應(yīng)題目。一開始想用vant weapp中的Tab標簽頁組件來做,也試著用過,中間遇到了某些問題效果不太理想。具體我也忘了啥問題。最后還是用scroll-view+swiper來實現(xiàn)了這一個功能。最后實現(xiàn)效果圖如下。???

原生微信小程序tab實現(xiàn)錨點,滾動聯(lián)動,小程序,小程序

主要是通過在scroll-view中設(shè)置?scroll-with-animation="{{ scrollWithAnimation }}" scroll-into-view="{{toview}}" 來實現(xiàn)這個點擊自動滾動的效果。

原生微信小程序tab實現(xiàn)錨點,滾動聯(lián)動,小程序,小程序

廢話不多說,直接上代碼了。

wxml

<view>
    <scroll-view scroll-x="true" style="height: 134rpx;width: 100%; box-sizing: border-box;overflow: hidden;line-height: 134rpx;background: white; font-size: 16px; white-space: nowrap;position: fixed;top: 0; left: 0; z-index: 99;" scroll-with-animation="{{ scrollWithAnimation }}" scroll-into-view="{{toview}}" show-scrollbar="false" enhanced="true">
        <view wx:for="{{questionList}}" style="display: inline-block;" class="questionListClass" bindtap="questionClick" data-index="{{index}}" id="tab{{index}}">
            <view class="questionClass {{currentTab==index?'now':item.answered?'active':''}}">{{index+1}} </view>
        </view>
    </scroll-view>
    <view style="margin-top: 150rpx;">
        <swiper style="height: {{swiperHeight}}px;" current="{{currentTab}}" bindchange="swiperChange">
            <swiper-item wx:for="{{questionList}}" style="position: relative;display: flex;flex-direction: column;overflow:scroll">
                <scroll-view scroll-y="true">
                    <view style="display: flex;flex-direction: column;">
                        <view style="background: white;padding: 32rpx;align-items: center;font-size: 28rpx;">
                            <text>{{index+1}}、</text>
                        </view>
                    </view>
                </scroll-view>
            </swiper-item>
        </swiper>

    </view>
    <view style="display: flex;position: absolute;bottom: 0;height: 128rpx;width: 100%;align-items: center;justify-content: center;">
        <view wx:if="{{currentTab==0}}" style="height: 74rpx;background: #EB3722;border-radius: 128rpx;width: 80%;display: flex;justify-content: center;align-items: center;color:white" bindtap="nextClick">下一題</view>
        <view wx:else style="display: flex;align-items: center;justify-content:space-evenly;width: 100%">
            <view style="height: 74rpx;background: #EEEEEE;border-radius: 128rpx;width: 40%;display: flex;justify-content: center;align-items: center;color: #666666;" bindtap="preClick">上一題</view>
            <view style="height: 74rpx;background: #EB3722;border-radius: 128rpx;width: 40%;display: flex;justify-content: center;align-items: center;color:white" bindtap="nextClick">{{currentTab==questionList.length-1?'交卷':'下一題'}}</view>
        </view>
    </view>
</view>

?wxss

.container {
    position: relative;
    width: 100%;
}

::-webkit-scrollbar {
    display: none;
    width: 0;
    height: 0;
    color: transparent;
  }
  
.questionListClass .questionClass {
    background: #F6F7FB;
    width: 64rpx;
    height: 64rpx;
    align-items: center;
    display: flex;
    justify-content: center;
    margin-left: 16rpx;
    margin-right: 16rpx;
    border-radius: 64rpx;
    color: #333333;
    font-size: 32rpx;
    /* margin-top: 50%; */
    border: 2rpx solid white;
}

.questionClass.active {
    background: linear-gradient(180deg, #FE5196 0%, #F77062 100%);
    width: 64rpx;
    height: 64rpx;
    align-items: center;
    display: flex;
    justify-content: center;
    margin-left: 16rpx;
    margin-right: 16rpx;
    border-radius: 64rpx;
    color: white;
    font-size: 32rpx;
    /* margin-top: 50%; */
    border: 2rpx solid white;
}

.questionClass.now {
    background: white;
    width: 64rpx;
    height: 64rpx;
    align-items: center;
    display: flex;
    justify-content: center;
    margin-left: 16rpx;
    margin-right: 16rpx;
    border-radius: 64rpx;
    color: #EB3722;
    font-size: 32rpx;
    /* margin-top: 50%; */
    border: 2rpx solid #EB3722;
}

js文章來源地址http://www.zghlxwxcb.cn/news/detail-842442.html

Page({
    /**
     * 頁面的初始數(shù)據(jù)
     */
    data: {
        questionList: [,,,,,,,,,,],
        currentTab: 0,
        swiperHeight: 300,
        toview: 'tab0',
        scrollWithAnimation: true,
    },

    questionClick(e) {
        console.log(e)
        this.setData({
            currentTab: e.currentTarget.dataset.index
        })

        if (e.currentTarget.dataset.index - 3 > 0) {
            this.setData({
                toview: 'tab' + (e.currentTarget.dataset.index - 3)
            })
        } else {
            this.setData({
                toview: 'tab0'
            })
        }

        console.log(this.data.toview)
        // if (this.currentIndex < 10) {
        //     this.scrollinto = 'tab0'
        // }

    },
    nextClick(e) {
        if (this.data.currentTab == this.data.questionList.length - 1) {//交卷
            
        } else {
            this.setData({
                currentTab: this.data.currentTab + 1
            })
            if (this.data.currentTab - 3 > 0) {
                this.setData({
                    toview: 'tab' + (this.data.currentTab - 3)
                })
            } else {
                this.setData({
                    toview: 'tab0'
                })
            }
        }
    },
    preClick(e) {
        this.setData({
            currentTab: this.data.currentTab - 1
        })
        if (this.data.currentTab - 3 > 0) {
            this.setData({
                toview: 'tab' + (this.data.currentTab - 3)
            })
        } else {
            this.setData({
                toview: 'tab0'
            })
        }
    },
})

到了這里,關(guān)于【小程序】scrollview制作tab導(dǎo)航欄,點擊tab自動滾動到指定位置的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • uniapp小程序手寫tab導(dǎo)航欄切換(點擊切換樣式,動態(tài)樣式綁定)

    uniapp小程序手寫tab導(dǎo)航欄切換(點擊切換樣式,動態(tài)樣式綁定)

    最近寫uniapp,ui里面有一個導(dǎo)航欄切換的邏輯,因為要跟UI保持一致,對于組件庫很難實現(xiàn)高度定制,所以這里就自己手寫實現(xiàn)一個點擊切換的導(dǎo)航欄。先看下圖效果: 主要實現(xiàn)的是通過點擊切換導(dǎo)航欄,并且樣式有一個切換的效果,大家可以根據(jù)自己的需求進行樣式的DIY

    2024年02月12日
    瀏覽(23)
  • unity scrollview滾動到指定的位置

    unity scrollview滾動到指定的位置

    方法一:通過下標 方法二:原文1 原文2 方法一沒測試 這里給方法二增加注釋理解 圖1 圖2 圖3 圖4

    2024年01月20日
    瀏覽(24)
  • 【微信小程序點擊滾動頁面到指定位置】

    【微信小程序點擊滾動頁面到指定位置】

    scroll-view :https://developers.weixin.qq.com/miniprogram/dev/component/scroll-view.html 補充: 1: scroll-view設(shè)置高度:style=“height:100%” 2: scroll-view設(shè)置縱向滾動:scroll-y=“true” 3: scroll-view設(shè)置要去的id( 這個必須動態(tài)設(shè)置才生效 ):scroll-into-view=“{{toView}}”

    2024年02月09日
    瀏覽(26)
  • Android——使用ScrollView實現(xiàn)滾動效果,當內(nèi)容超出屏幕范圍時自動滑動顯示

    Android——使用ScrollView實現(xiàn)滾動效果,當內(nèi)容超出屏幕范圍時自動滑動顯示 ScrollView是Android中常用的布局容器,用于在屏幕空間有限的情況下實現(xiàn)內(nèi)容的滑動顯示。當內(nèi)容超出屏幕范圍時,用戶可以通過滑動屏幕來查看更多內(nèi)容,提供了更好的用戶體驗。 在Android中,使用Sc

    2024年01月16日
    瀏覽(21)
  • 小程序中的canvas不跟隨scrollView滾動

    問題原因,官方文件說明:canvas為原生組件故有一下的性質(zhì): 原文鏈接:https://blog.csdn.net/qq_25740691/article/details/81867382 解決方法1:看看是不是給最外層標簽page定義了height:100%的屬性或者overflow相關(guān)的屬性,如果是的話去掉。檢查你的canvas的所有父級元素是否設(shè)置了height:1

    2024年02月06日
    瀏覽(16)
  • 解決刷新或者重新點擊導(dǎo)航欄,對應(yīng)的側(cè)邊欄選中狀態(tài)丟失或TAB頁面與選中狀態(tài)不符合

    ?一:解決刷新時,側(cè)邊欄選中狀態(tài)丟失或者選中狀態(tài)與TAB頁面不符合。 select 菜單激活回調(diào) index: 選中菜單項的 index, indexPath: 選中菜單項的 index path default-active 當前激活菜單的 index string — — 1.給菜單綁定一個屬性為activeMenu 2.在data中定義一個activeMenu的初始值為第一個選項或

    2024年02月12日
    瀏覽(20)
  • [快速上手RN] 3. React native 制作底部導(dǎo)航欄 Bottom Tab Bar

    [快速上手RN] 3. React native 制作底部導(dǎo)航欄 Bottom Tab Bar

    [快速上手RN] 0.React Native 快速啟動項目 [快速上手RN] 1. React native 項目集成UI Kitten [快速上手RN] 2. React native 項目色彩主題色編輯及使用 [快速上手RN] 3. React native 制作底部導(dǎo)航欄 Bottom Tab Bar [快速上手RN] 4. React native 集成redux 首先我們確認目標 在APP底部新增一個導(dǎo)航欄 導(dǎo)航欄點

    2024年02月05日
    瀏覽(23)
  • taro(小程序一樣) ScrollView 滾動到底部或者頂部 再次設(shè)置scrollIntoView 無效

    產(chǎn)生這個bug的原因:當我們第一次滑倒底部點擊A回到頂部成功,再次滑倒底部,再次點擊A無法回到頂部,因為此時的scrollIntoView 對應(yīng)的值還是A,需要將scrollIntoView對應(yīng)的值清空,然后重新賦值A(chǔ),即可解決 解決辦法:滑動到頂部或者底部時,清空之前設(shè)置的scrollIntoId即可 完

    2024年02月11日
    瀏覽(17)
  • 【element-ui 中 el-tabs+el-menu 實現(xiàn)點擊菜單 新增導(dǎo)航tab頁 并實現(xiàn)關(guān)閉其他、當前、所有的功能】

    【element-ui 中 el-tabs+el-menu 實現(xiàn)點擊菜單 新增導(dǎo)航tab頁 并實現(xiàn)關(guān)閉其他、當前、所有的功能】

    element-ui 【el-tabs+el-menu 實現(xiàn)點擊菜單 新增導(dǎo)航tab頁 并實現(xiàn)關(guān)閉其他、當前、所有的功能】 文章分3個部分 el-tabs 以及右擊菜單代碼 vuex 代碼及其方法實現(xiàn) router路由信息常規(guī)寫法el-menu寫法常規(guī)(自行去掉修飾部分) el-tabs 以及右擊菜單代碼

    2024年02月11日
    瀏覽(44)
  • vue3簡單寫導(dǎo)航anchor示例(支持點擊高亮和滾動判斷高亮)

    vue3簡單寫導(dǎo)航anchor示例(支持點擊高亮和滾動判斷高亮)

    function anchorClick(index) { ? forceStop.value = true; ? time = Date.now(); ? wheelRef.value.children[index].scrollIntoView({ ? ? block: \\\'start\\\', ? ? behavior: \\\'smooth\\\' ? }); ? // 給一些延時, 再點亮anchor, 同時不再限制scroll事件函數(shù)里面滾動高亮的判斷 ? setTimeout(() = { ? ? forceStop.value = false; ? ? time = null; ?

    2024年02月06日
    瀏覽(18)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包