關於小程序 scroll-view中設置scroll-top無效 和小說圖書閱讀進度條小案例


在最近的項目有做到關於小說閱讀的進度條功能,其中用到scroll-view和slider組件,發現scroll-view中的scroll-top在設置值后無效,出現這種情況大概是以下幾種問題:

1.scroll-view的高度需要設置固定的值,比如全屏可以設置:height:100vh;

2.不可以同時設置scroll-into-view和scroll-top(scroll-left)屬性,因為scroll-into-view的優先級別比scroll-top(scroll-left)屬性高(官方文檔提及過);

3.scroll-top(scroll-left)屬性不可以帶單位,直接設置值就可以了,如:scroll-top="50";

 

以下是小說圖書閱讀進度條案例代碼,思路為:scroll-view作為文章滾動區域,slider為顯示進度的滑動條,之間通過百分比的數“連接”,具體代碼往下:

1 <view>
2    <scroll-view scroll-y style="height:100vh" bindscroll="articelScroll" scroll-with-animation="true" scroll-top="{{textScroll}}">
3      <text>起初,對於追風箏的人這樣的命題是難以理借解,至於其中所蘊含的深意, 縱使讀罷全書亦不知所言。姑且不論所謂書名的深度和廣度,就其故事本身而言,便給了我巨大的震撼。書中開篇所言,便是一種對曾經的畏懼和被永生鎖在夢魘中的悲傷。為你千千萬萬遍, 第一次這句話的出現,便讓我震撼莫名。我不知道這句話何時說出口,至於當時的氣氛和情態也一無所知,但就這句話的內容,為,你,千,千,萬,萬,遍。其中所包含的無悔與執着,縱使天荒地老也不改的初心。 頓時,我有些嫉妒書中的“我“,相比於往往獨行客的我,那些無悔的宣言,是我從未聽到過的傳說。
4      </text>
5    </scroll-view>
6    <view> 
7       <slider bindchange="slider1change" max="200" min="0" step="5" value="{{scrollValue}}"  activeColor="#333"/>
8    </view> 
9 </view>
var app = getApp()
Page({
  data: {
    scrollHeight:0,
    scrollValue:0,
    textScroll:1
  },
   
  slider1change:function(e){
    var value=e.detail.value;                  //獲取slider滑動的當前值
    var scrollHeight = this.data.scrollHeight; //獲取scroll-view的scroll-height值
    value=value/295*100;                       //計算出slider滑動的百分比
    var textscroll = value/100 * scrollHeight; //計算出scroll-view對應的值

    this.setData({
      textScroll: textscroll
    })
  },
 
})    

具體效果如下

 

 

總結:以上內容供學習總結分享,有什么不對的地方或可優化的地方,歡迎各位評論指教。


免責聲明!

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



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