IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> vue&uniapp小说内容滑动 -> 正文阅读

[JavaScript知识库]vue&uniapp小说内容滑动

<template>
  <view class="content"
        :style="{fontSize: fontSize}"
        @touchstart="handletouchstart"
        @touchend="handletouchend">
    <view class='read':style="[{transform: `translateX(${slidingDistance}px)`}]">{{content}}</view>
    <view class="box">{{content}}</view>
  </view>
</template>

<script>
export default {
  name: "y-novel",
  props: {
    content: {
      type: String,
      default: ''
    },
    fontSize: {
      type: String,
      default: '30rpx'
    }
  },
  data() {
    return {
      width: '',
      slidingDistance: 0,
      startClientX: 0, // 滑动距离
      currentPage: 0,
      maxPage: 0, // 一章多少页
    }
  },
  watch: {
    content(val) {
      const query = uni.createSelectorQuery().in(this);
      let height=0
      this.$nextTick(()=>{
        query.select('.read').boundingClientRect(data => {
          height=data.height
          this.width=data.width+data.left
        }).select('.box').boundingClientRect(data => {
          this.maxPage=Math.floor(data.height/height)
        }).exec();
      })
    }
  },
  methods: {
    handletouchstart(e) {
      this.startClientX = e.changedTouches[0].clientX
    },
    handletouchend(e) {
      let endClientX = e.changedTouches[0].clientX
      let distance = endClientX - this.startClientX
      if (distance > 80) {
        if (this.currentPage > 0) {
          this.currentPage--
          this.slidingDistance += this.width
        } else {
          this.$emit('getUp')
        }
      }
      if (distance < -80) {
        if(this.currentPage<this.maxPage){
          this.currentPage++
          this.slidingDistance -= this.width
        } else {
          this.$emit('getNext')
        }
      }
    }
  }
}
</script>

<style scoped>
.content {
  height: 100%;
  padding: 40rpx;
  box-sizing: border-box;
  overflow: hidden;
}
.content .read {
  height: 100%;
  columns: calc(100vw - 32px) 1;
  column-gap: 40rpx;
  line-height: 40rpx;
  transition: .5s;
  transform: translateX(0rpx);
}

.content .box{
  line-height: 40rpx;
  opacity: 0;
}
</style>

使用列示

<template>
  <view style="height: 100%;width: 100%;overflow: hidden">
    <y-novel :content="content" @getUp="getUp" @getNext="getNext"></y-novel>
  </view>
</template>

<script>
import YNovel from "@/components/y-novel/y-novel";

export default {
  name: "novel",
  components: {YNovel},
  data() {
    return {
      content: '',
      index1: ''
    }
  },
  mounted() {
    this.content = '';
    this.content = '第一章 小先生和老先生\n\n 锦州应该是大夏最秀美柔和,远离战火的地方了,就好像河边随处可见的小娘子浣衣时露出的腰肢儿,柔嫩的可以掐出水来!\n\n 此时正值六月时节,天儿刚刚入了梅,连绵不断的阴雨天气将人硬生生地锁在了家里,今日官道上也没了以往熙熙攘攘的景象,变的人烟稀少了起来。\n\n 雨幕下的路边孤零零地伫立着一家小茶馆,门口写着“茶香三日”的招幌无精打采地怂拉着,预示着店内的生意也很是不佳,店内正坐着一个十岁出头的店小二,睡眼惺忪地拿手托着下巴,神游天外。\n\n 锦州位于大夏南部沿海之地,六月正是炎热之际,店小二衣着朴素的灰色短衫,但微闭的双眼之下却有着一般同龄人没有的沉稳,不时瞥一下内屋方向,见掌柜的小女儿掀开帘子从中走出,赶紧回过神来,免得又被一阵训斥。\n\n 从他记事起,他就对这世间两样东西最是向往,一是偶尔路过此地歇息旅人谈论的西疆战场,二者就是现在正在教训他开小差的小姑娘了,他怕她,也爱慕她。\n\n 此地距离锦州首府江陵并不遥远,莫约三十来里路,一般前往江陵的旅人都会在此歇歇脚,喝口茶,常常还有江陵城中鲜衣怒马的贵族公子小姐,有说有笑,结伴路过此地,锦州是儒家发源之地,所以书香气极重,上到名门贵族,下到平民百姓都恪守礼仪,遇到粗鲁的西北豪客还会心里暗暗地说上一句:“西北蛮子,不识大体!”\n\n 今日或许是龙王发怒,雨实在是太大,哗哗地从天上往下倾倒,城中浪荡的公子哥儿也没了往日的兴致,不然以掌柜小女儿的水灵劲儿,每日前来茶馆献殷勤的少爷总是络绎不绝,但是店小二还是本能的感觉到了不对劲,四周的空气好似凝固,原本应该有的鸟鸣声,虫叫蝉鸣声全部消失,只余雨声在耳边作响。\n\n 店小二知道自己和别人不同,除过目不忘之外,还对危险有着天生的直觉,按照住在附近学堂的老先生所说,他是天生的修道宠儿,与那位殿下是两个极端,店小二不明白所谓的修道宠儿是什么概念,但此刻他的皮肤已经开始微微的刺痛,抬头看向远处道路,瞳孔狠狠地往内一缩。\n\n 一队黑点自尽头出现,刚一出现就直接从他的视野中消失,一闪而逝!随后狂风大作,雨水四溅,小茶馆在风雨的冲击之下发出不堪重负咯嗞声!\n\n 店小二起身挡在小姑娘之前,任由风雨将全身衣物都打湿,他看着远去的骠骑,眯起了双眼,他认得这支大名鼎鼎的骑军,黑甲黑盔,坐骑幽翅,背身双翼,虎头马身兽抓,擅御风。\n\n 大夏上四军之一,幽翅军,奔袭速度,天下无人能出其右!\n\n 从小茶馆沿着这条官道往东走去,有一个不起眼的岔口,分大小两条路,大路直通江陵城,车马行人不断,而小路却是人迹罕至。\n\n 小路的尽头是一间学堂,正值上课时间,从学堂中传来朗朗读书声,声音稚嫩,都是附近农户家的小不点,年岁尚浅,江陵城又太远,恰逢有个老儒生在此开办一个学堂,附近农户都将自家的小娃送至这里,等年岁再大一些,就看其造化了,到江陵城中谋些本事,或者去军中和异族厮杀,如果有天赋被收入道宫,或者其他宗门,再运气好些迈入初境,引天地元气入体,便又有一番不同的人生了。\n\n 但那些对此时的小不点们还太过遥远,连绵的阴雨天气,让他们脑袋昏昏沉沉,案桌前先生所说的文章就像阿娘睡前唱的小曲儿,听的直叫人犯困,要不是偷偷瞥一眼学堂门口坐着的魁梧大汉,看着他凶神恶煞的脸和铮亮的光头,心里惧怕,那几个胆大的小娃估计早已打起了瞌睡。\n\n 他们才不怕那个教书的小先生哩,哪怕是他们犯了错,小先生也从来不责骂他们,甚至还会帮着说几句好话哩。\n\n 小半日之后,小先生将这篇道论讲解完毕,便挥挥手让这些小不点回家吃午饭,自己开始收拾起案桌上的东西,物件很少,一册道论,一支戒尺,一杯茶,但小先生收拾的很认真,这三年来他每次都将案桌摆放的整整齐齐,又擦拭的一尘不染。\n\n 收拾完毕后,小先生饮完杯中的茶水,走出学堂,大汉默默地撑起一把伞跟在身后,俩人沿着青石台阶,拾级而上,随后拐入一间草屋之中。\n\n 草屋中茶香弥漫,有一老先生正在煮茶,老先生鬓发雪白,但却面色红润,一身简简单单的道袍,盘发上随意插上一支木簪,煮茶的双手竟像婴儿般柔嫩。\n\n 小先生对着老先生弯腰行礼,然后走到茶桌的另一面,两人相对而坐,小先生目光纯净,盯着老先生煮茶的双手,皱起了眉头,因为他感觉夫子今天的气血太过旺盛,一反常态。\n\n 老先生率先开了口:“殿下,当年前朝大乱,异族南侵,神州浩土分崩离析,嬴姓十四氏各自征伐,最终由你赵氏一族凭借山海图和捧日、天武、神卫、幽翅上四军定鼎中原,建立大夏王朝,你可知如今十四氏还有几支尚存?”\n\n “嬴姓十四氏,秦氏以及秦氏一系的郯氏、莒氏、菟裘氏在定鼎之战时几乎死伤殆尽,鲜有血脉流传,徐氏、终黎氏、江氏、蜚廉氏现今各自分封各州、其余氏族将梁氏入了兵宗、白冥氏建立了冥宗,黄氏和修鱼氏不知所踪,又有说法其远去海外,定居东海岛屿,至于运奄氏!”\n\n 小先生说到此处,微微停顿了一下,接着又继续说道:“运奄氏于十五年前,举族叛变至太阳帝国。”\n\n 老先生点了点头,把煮好的茶水倒入杯中,示意小先生喝茶,又缓缓开口,只是这一次的声音有些黯然:“你的父亲生前也是我最得意的学生,却在运奄氏叛变的时候战死于玉龙关,世人都道前太子赵景不修王道修仁道,反被城中百姓拖累,死守关门三日,力竭而死,如若是你,何以为之?”\n\n 小先生放下茶杯,思索了片刻,抬头注视着老先生幽深的眼眸,开口说道:“学生没想好。”\n\n 老先生听后哈哈大笑,笑声洪亮,震的空气仿佛都在颤抖:“好一个没想好,那老夫等你着你告诉我答案,当年你出生后不久,你父亲抱着你过来找我医治,你看见黄庭的星辰砂就往怀里塞,我就知道你与众不同,知道什么东西是你想需要的,你生来身体筋脉如筛网,完全锁不住天地元气,无法修道,但是精神却格外强大,能轻易感受天地大道,这星辰砂却是最适合你不过的了。”\n\n 小先生听后转头看了眼门口不知何时站到光头大汉身旁的中年男子,破天荒地低下了头,脸上略微有些羞涩。\n\n 老先生饮了一口茶,继续说道:“一转眼,殿下已经到了及冠之龄,此去神京行冠礼,路途遥远,怕是不太平,殿下多加小心,走之前老朽还有几句话唠叨。”\n\n 小先生听后,起身走到老先生身前,拜倒在地:“请师公赐教。”\n\n 老先生笑着摸了摸小先生的头道:“殿下,你是我看着长这么大的,我活了太久,也看到过太多尸横遍野,民不聊生,实在不愿意灾祸之年再次到来,如今神州浩土一分为二,王朝在西和太阳帝国连年征战不休不说,北有万兽无疆域妖族虎视眈眈,东又有海族在沿海劫掠,我知殿下胸有横推之志,想在儒道、霸道,王道之外独创帝道,但是如今哪怕是为了万万里神州浩土和大夏亿万子民,也恳请殿下遇事请三思,切勿轻易举兵。”\n\n 说完老先生将缓缓手按在小先生的头顶,就像十多年来无数次慈祥地抚摸那样,脸上的笑容慈祥而又安详。\n\n 一道乳白色的精气穿过草屋直冲云霄,天上的倾盆大雨直接向上全部倒卷而回,连带着乌云也被破开一个巨大的窟窿,形成一束诡异的真空地带,一道阳光照射而下,宛如神迹,与此同时,江陵城及周边方圆千里所有道论自动翻开,坐骑、牲畜以及异兽皆头朝草屋,前腿跪伏于地。\n\n 大夏历八十九年六月初五,夫子燃烧气血强行踏入陆地神仙境,成为大夏开朝以来第一位儒圣。同日,皇太孙赵御,逆天改命,入初境。\n------------\n\n';
  },
  methods: {
    getUp() {
      console.log('上一章')
    },
    getNext() {
      console.log('下一章')
    }
  }
}
</script>

<style scoped>
page{
  height: 100%;
  overflow: hidden;
}
</style>

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章           查看所有文章
加:2022-03-30 18:14:48  更:2022-03-30 18:19:04 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 4:40:17-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码