點擊按鈕橫向滾動左右滾動

好久都沒更新過了岸军,大概有一年時間沒寫過了踱蠢,這一年實在是太松懈了,遇到點新的東西就想寫下來,但是都是沒什么時間臀玄,等有時間了就忘記了...可能這一年留給生活的時間更多一點叭

大概是上個月内斯,遇上了個點擊左右滾動這么一個小交互匆笤,本人對于動態(tài)交互這些東西一直都不怎么擅長纷跛,不然也不至于一個左右點擊滾動也要記下來,當(dāng)然本次記錄也是想給大家提供個參考惋戏。寫的時候百度了挺多的领追,但是都挺復(fù)雜的,本人沒啥耐心响逢,第一眼看著復(fù)雜的基本上就不會往下看了绒窑,so,干脆自己寫一套吧舔亭,本人感覺本人的這個思路些膨,算得上是很簡單的了!钦铺!

  • 首先呢订雾,先寫好樣式,左右滾動矛洞,肯定就是橫向的了

    分配一下每個元素的角色

element.png

html

    <div id="click-scroll-X">
    <span class="left_btn" @click="leftSlide">《</span>
    <div class="scroll_wrapper" ref="wrapperCon">
        <div class="scroll_list">
            <div class="item" v-for="(i, idx) in 10" :key="idx">
                我是子元素{{ idx }}
            </div>
        </div>
    </div>
    <div class="right_btn" @click="rightSlide">》</div>
  </div>

css

#click-scroll-X {
    display: flex;
    align-items: center;
    .left_btn,.right_btn {
      font-size: 30px;
      cursor: pointer;
    }
  .scroll_wrapper {
    width: 600px;
    overflow-x: scroll;
    padding: 20px 0;
    .scroll_list{
    display: flex;
    align-items: center;
    justify-content: space-between;
        .item {
        width: 100px;
        height: 100px;
        display: flex;
        align-items: center;
        justify-content: center;
        border: 1px solid red;
        box-sizing: border-box;
        flex-shrink: 0;
        }
    }
  }
  • 接下來了解一下需要用到的屬性

1.scrollLeft:元素左側(cè)已滾動的距離洼哎,即位于元素左邊界與元素中當(dāng)前可見內(nèi)容的最左端之間的距離

2.scrollWidth:元素的整體寬度,包括由于溢出而無法展示在網(wǎng)頁的不可見部分

3.clientWidth:元素的可視寬度

data(){
    return{
        // 定時器(方便清除)
        timer:null
    }
}
  • 向左滾動
    leftSlide(){
        // 保存滾動盒子左側(cè)已滾動的距離
        let left=this.$refs.wrapperCon.scrollLeft
        let num=0
        clearInterval(this.timer)
        this.timer=null
        this.timer=setInterval(()=>{
            //   !left:已經(jīng)滾動到最左側(cè)
            //   一次性滾動距離(可調(diào)節(jié))
            if(!left||num>=300){
                // 停止?jié)L動
                clearInterval(this.timer)
                this.timer=null
                return
            }
            // 給滾動盒子元素賦值向左滾動距離
            this.$refs.wrapperCon.scrollLeft=left-=30
            // 保存向左滾動距離(方便判斷一次性滾動多少距離)
            num+=30
        },20)
        // 20:速度(可調(diào)節(jié))
    },
  • 向右滾動
    rightSlide(){
        // 保存滾動盒子左側(cè)已滾動的距離
        let left=this.$refs.wrapperCon.scrollLeft
        // 保存元素的整體寬度
        let scrollWidth=this.$refs.wrapperCon.scrollWidth
        // 保存元素的可見寬度
        let clientWidth=this.$refs.wrapperCon.clientWidth
        let num=0
        clearInterval(this.timer)
            this.timer=setInterval(()=>{
                // 已經(jīng)滾動距離+可見寬度
                // left+clientWidth>=scrollWidth:滾動到最右側(cè)
                // num>=300一次性滾動距離
            if(left+clientWidth>=scrollWidth||num>=300){
                clearInterval(this.timer)
                return
            }
            // 給滾動盒子元素賦值向左滾動距離
            this.$refs.wrapperCon.scrollLeft=left+=30
            // 保存向左滾動距離(方便判斷一次性滾動多少距離)
            num+=30
        },20)
        // 20:速度(可調(diào)節(jié))
      }

這就完成了沼本,簡簡單單啊朋友們X汀!3檎住识补!

?? 比心??

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市辫红,隨后出現(xiàn)的幾起案子凭涂,更是在濱河造成了極大的恐慌,老刑警劉巖厉熟,帶你破解...
    沈念sama閱讀 222,627評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件导盅,死亡現(xiàn)場離奇詭異较幌,居然都是意外死亡揍瑟,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,180評論 3 399
  • 文/潘曉璐 我一進店門乍炉,熙熙樓的掌柜王于貴愁眉苦臉地迎上來绢片,“玉大人滤馍,你說我怎么就攤上這事〉籽” “怎么了巢株?”我有些...
    開封第一講書人閱讀 169,346評論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長熙涤。 經(jīng)常有香客問我阁苞,道長,這世上最難降的妖魔是什么祠挫? 我笑而不...
    開封第一講書人閱讀 60,097評論 1 300
  • 正文 為了忘掉前任那槽,我火速辦了婚禮,結(jié)果婚禮上等舔,老公的妹妹穿的比我還像新娘骚灸。我一直安慰自己,他們只是感情好慌植,可當(dāng)我...
    茶點故事閱讀 69,100評論 6 398
  • 文/花漫 我一把揭開白布甚牲。 她就那樣靜靜地躺著,像睡著了一般蝶柿。 火紅的嫁衣襯著肌膚如雪丈钙。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,696評論 1 312
  • 那天只锭,我揣著相機與錄音著恩,去河邊找鬼。 笑死蜻展,一個胖子當(dāng)著我的面吹牛喉誊,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播纵顾,決...
    沈念sama閱讀 41,165評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼伍茄,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了施逾?” 一聲冷哼從身側(cè)響起敷矫,我...
    開封第一講書人閱讀 40,108評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎汉额,沒想到半個月后曹仗,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,646評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡蠕搜,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,709評論 3 342
  • 正文 我和宋清朗相戀三年怎茫,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,861評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡轨蛤,死狀恐怖蜜宪,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情祥山,我是刑警寧澤圃验,帶...
    沈念sama閱讀 36,527評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站缝呕,受9級特大地震影響澳窑,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜供常,卻給世界環(huán)境...
    茶點故事閱讀 42,196評論 3 336
  • 文/蒙蒙 一照捡、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧话侧,春花似錦栗精、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,698評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至新博,卻和暖如春薪夕,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背赫悄。 一陣腳步聲響...
    開封第一講書人閱讀 33,804評論 1 274
  • 我被黑心中介騙來泰國打工原献, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人埂淮。 一個月前我還...
    沈念sama閱讀 49,287評論 3 379
  • 正文 我出身青樓姑隅,卻偏偏與公主長得像,于是被迫代替她去往敵國和親倔撞。 傳聞我的和親對象是個殘疾皇子讲仰,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,860評論 2 361

推薦閱讀更多精彩內(nèi)容