微信小程序swiper和scroll-view的實例


微信小程序swiper和scroll-view的實例

效果展示

沒錯就是今曰頭條

wxml

<view >
    <view class="menu-scroll">  <!--滾動條全部着色要在上一層設置-->
        <scroll-view scroll-x >
            <view class="scroll-item">
                <navigator url="" bindtap="news1">社會新聞</navigator>
                <navigator url="" bindtap="news2">國際新聞</navigator>
                <!-- 這種方法雖然直觀,但是代碼冗雜,故采用下面的方法 -->
                <navigator url="" data-nav='2' bindtap="news">國內新聞</navigator>
                <navigator url="" data-nav='3' bindtap="news">娛樂新聞</navigator>
                <!--也可以加上選中效果-->
                <navigator url="" data-nav='4' bindtap="news" class="{{currentTab==4?'sel':'menu-scroll'}}">體育新聞</navigator>
                <navigator url="" data-nav='5' bindtap="news" class="{{currentTab==5?'sel':'menu-scroll'}}">科技新聞</navigator>
                <!--注意三目運算符中類的名稱要帶引號,判斷不帶-->
                <!--但是現在只能通過導航欄改變輪播圖的內容,輪播圖改變不能切換導航欄選中狀態,可加入swiper的屬性bindchange實現此功能-->
            </view>
        </scroll-view>
    </view> 
    <view>
        <swiper current="{{currentTab}}" bindchange="change">
            <swiper-item>
                <view class="view1">社會新聞</view>
            </swiper-item>
            <swiper-item>
                <view class="view2">國際新聞</view>
            </swiper-item>
            <swiper-item>
                <view class="view1">國內新聞</view>
            </swiper-item>
            <swiper-item>
                <view class="view2">娛樂新聞</view>
            </swiper-item>
            <swiper-item>
                <view class="view1">體育新聞</view>
            </swiper-item>
            <swiper-item>
                <view class="view2">科技新聞</view>
            </swiper-item>
        </swiper>
    </view>
</view>

js

下面是js中data部分代碼和綁定事件

data: {
        currentTab:0
    },
    /*修改要用專門的方法,setData默認有this,在小括號內傳入對象*/ 
    news1:function(){
        this.setData({  
            currentTab:0    
        })      
    },
    news2:function(){
        this.setData({  
            currentTab:1   
        })      
    },
    /*改進后*/
    news:function(event){
        this.setData({  
            currentTab:event.currentTarget.dataset.nav  
        }) 
    },
    change:function(event){
        this.setData({
            currentTab:event.detail.current
        })
    },

wxss

.menu-scroll{
    background-color: rgb(196, 240, 255);
}
.scroll-item{
    display: flex;
    white-space: nowrap;
    font-size: 30rpx;
    height: 60rpx;
    line-height: 60rpx;
}
.scroll-item navigator{
    font-weight: bold;
    margin: 0px 8px;
}
.view1{
    width: 100%;
    height: 800rpx;
    background-color: red;
}
.view2{
    width: 100%;
    height: 800rpx;
    background-color: gray;
}
.sel{
    background-color: rgb(250, 239, 93);
    color: rgb(138, 139, 139);
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM