文檔拉到最底部才能操作按鈕

Vue的項(xiàng)目类垦, 彈窗的文檔是用iframe引入html顯示的拗秘,但新增了文檔必須拉到最底部才能操作按鈕颂跨,iframe無(wú)法監(jiān)聽到scroll事件

需求

實(shí)現(xiàn)如下:

<template lang="pug">
  .main-wrap
    el-dialog(
      v-if="isShow" // 每次展示都重新渲染以便滾動(dòng)條復(fù)原
      title="Document"
      width="700px" // 固定寬度以便確認(rèn)scrollTop
      :visible.sync="isShow")
      p.content#content(v-html="text" @scroll="scroll") // 文檔展示
      .footer(slot="footer" v-if="isCheck")
        el-button(@click="isShow = false") {{$t('common.cancel')}}
        el-button(
          :disabled="disabled"
          type="primary"
          @click="confirm") {{$t('common.loan')}}
  
</template>

<script>
export default {
  data () {
    return {
      isShow: false, //是否顯示彈窗
      text: '', // 文檔內(nèi)容
      disabled: true // 按鈕是否可以操作
    }
  },

  methods: {
// 每次顯示彈窗的時(shí)候按鈕不能操作復(fù)位
    toShow (row) {
      this.disabled = true
    },
// 獲取文檔內(nèi)容并解析
    async getHtml () {
    // 判斷環(huán)境
      const location = window.location
      let url = ''
      let hostname = location.hostname
      if (hostname === 'localhost') {
        url = `${location.origin}/static/doct.html`
      } else {
        url = `${location.origin}/dist/static/dot.html`
      }
      let headers = new Headers()
      // 設(shè)置fetch請(qǐng)求頭
      headers.append('Content-Type', 'text/plain')
      fetch(url, {
        headers
      }).then((res) => {
        return res.text()
      }).then(res => {
        this.text = res
      })
    },
// 判斷文檔滾動(dòng)位置
    scroll (v) {
      if (!this.disabled) return false // 如果到底部就再設(shè)置了
      let top = v.target.scrollTop
      this.disabled = (v.target.scrollHeight - top !== v.target.clientHeight) // 到底部到話就可操作
    }
  },
  async  mounted () {
    await this.getHtml()
  }

}
</script>
<style scoped>
// 文檔內(nèi)容樣式
.content {
  border: 3px solid #ccc;
  padding: 15px;
  height: 400px;
  overflow-y: scroll;
}

</style>
原理:
  1. 通過fetch獲取遠(yuǎn)程html并解析為text;
  2. 通過v-html把解析過后的字符串渲染到模板中辛萍;
    3.監(jiān)聽文檔的scroll事件并判斷文檔的scrollTop是否已經(jīng)到底部,同步到按鈕的disabled
  • element.scrollTop可以獲取或設(shè)置一個(gè)元素的內(nèi)容垂直滾動(dòng)像素?cái)?shù), scrollHeight
  • Element.scrollHeight 這個(gè)只讀屬性是一個(gè)元素內(nèi)容高度的度量羡藐,包括由于溢出導(dǎo)致的視圖中不可見內(nèi)容贩毕。
判斷元素是否到底部

element.scrollHeight - element.scrollTop === element.clientHeight

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市仆嗦,隨后出現(xiàn)的幾起案子辉阶,更是在濱河造成了極大的恐慌,老刑警劉巖瘩扼,帶你破解...
    沈念sama閱讀 221,198評(píng)論 6 514
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件谆甜,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡集绰,警方通過查閱死者的電腦和手機(jī)规辱,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,334評(píng)論 3 398
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來栽燕,“玉大人罕袋,你說我怎么就攤上這事改淑。” “怎么了炫贤?”我有些...
    開封第一講書人閱讀 167,643評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵溅固,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我兰珍,道長(zhǎng)侍郭,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,495評(píng)論 1 296
  • 正文 為了忘掉前任掠河,我火速辦了婚禮亮元,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘唠摹。我一直安慰自己爆捞,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,502評(píng)論 6 397
  • 文/花漫 我一把揭開白布勾拉。 她就那樣靜靜地躺著煮甥,像睡著了一般。 火紅的嫁衣襯著肌膚如雪藕赞。 梳的紋絲不亂的頭發(fā)上成肘,一...
    開封第一講書人閱讀 52,156評(píng)論 1 308
  • 那天,我揣著相機(jī)與錄音斧蜕,去河邊找鬼双霍。 笑死,一個(gè)胖子當(dāng)著我的面吹牛批销,可吹牛的內(nèi)容都是我干的洒闸。 我是一名探鬼主播,決...
    沈念sama閱讀 40,743評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼均芽,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼丘逸!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起掀宋,我...
    開封第一講書人閱讀 39,659評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤鸣个,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后布朦,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體囤萤,經(jīng)...
    沈念sama閱讀 46,200評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,282評(píng)論 3 340
  • 正文 我和宋清朗相戀三年是趴,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了涛舍。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,424評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡唆途,死狀恐怖富雅,靈堂內(nèi)的尸體忽然破棺而出掸驱,到底是詐尸還是另有隱情,我是刑警寧澤没佑,帶...
    沈念sama閱讀 36,107評(píng)論 5 349
  • 正文 年R本政府宣布毕贼,位于F島的核電站,受9級(jí)特大地震影響蛤奢,放射性物質(zhì)發(fā)生泄漏鬼癣。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,789評(píng)論 3 333
  • 文/蒙蒙 一啤贩、第九天 我趴在偏房一處隱蔽的房頂上張望待秃。 院中可真熱鬧,春花似錦痹屹、人聲如沸章郁。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,264評(píng)論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)暖庄。三九已至,卻和暖如春楼肪,著一層夾襖步出監(jiān)牢的瞬間培廓,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,390評(píng)論 1 271
  • 我被黑心中介騙來泰國(guó)打工淹辞, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人俘侠。 一個(gè)月前我還...
    沈念sama閱讀 48,798評(píng)論 3 376
  • 正文 我出身青樓象缀,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親爷速。 傳聞我的和親對(duì)象是個(gè)殘疾皇子央星,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,435評(píng)論 2 359