【IMWeb训练营作业】- 作业3:仿readhub.me
来源:互联网 发布:java 判断字符串相等 编辑:程序博客网 时间:2024/06/11 10:08
demo: http://hiijack.github.io/readhub/index.html
github: https://github.com/hiijack/vue-readhub-example
截图:
核心代码:
Layout.vue
<template> <div class="layout"> <div class="head"> <h3>Readhub</h3> </div> <div class="nav"> <div class="nav-container"> <a v-bind:class="{active: showTab == 'HitTopics'}" v-on:click="change('HitTopics')">热门话题</a> <a v-bind:class="{active: showTab == 'News'}" v-on:click="change('News')">最新资讯</a> </div> </div> <HitTopics v-bind:hitTopics="hitTopics" v-show="showTab == 'HitTopics'" v-on:toggleInfo="toggleInfo" /> <News v-bind:news="news" v-show="showTab == 'News'" v-on:toggleInfo="toggleInfo" /> <LoadButton v-on:click.native="load" /> <div id="fixedTools" class="hidden"> <a id="backtop" href="#">↑</a> </div> </div> </div></template><script> import HitTopics from './HitTopics'; import News from './News'; import LoadButton from './LoadButton'; window.onscroll = function(e) { if (document.body.scrollTop > 200) { document.querySelector('#fixedTools').classList.remove('hidden'); } else { document.querySelector('#fixedTools').classList.add('hidden'); } } export default { name: 'Layout', components: { HitTopics, News, LoadButton }, methods: { change(name) { this.showTab = name; }, toggleInfo(item) { item.show = !item.show; }, load() { console.log('asdf'); let arrMap = { 'HitTopics': this.hitTopics, 'News': this.news } let lastest = [{ title: '腾讯 1.43 亿美元战略入股西山居 游戏领域巨无霸诞', info: '今日晚间,金山软件(HK:03888)发布公告称,腾讯斥资1.43亿美元战略入股金山软件控股子公司西山居。交易完成后,腾讯将总共持有90,896,795股西山居股份,占西山居已发行股份总数的9.9%。西山居估值达15亿美元。未来,西山居与腾讯双方将在游戏业务合作层面进行升级,西山居可以充分利用腾讯的资源优势,继续扩充核心用户、提高市场份额。同时腾讯通过西山居的优质自研产品,提升市场竞争力。', show: false }, { title: 'S8 今日全球发售 三星称将用软件升级解决屏幕泛红问', info: '三星电子发言人对媒体表示,目前接到了部分用户对于 S8 屏幕呈现泛红色的报告,下周,三星将为所有的 S8 手机用户升级软件,解决这一问题。', show: false }, { title: '北京拟出台共享单车指导意见:车辆能定位 押金必受监', info: '北京市就《鼓励规范发展共享自行车的指导意见(试行)》向社会公开征求意见。要求有序停放、共享单车必须有定位系统、含保险,保证信息安全。', show: false }, { title: '各业务表现几乎全面提升 索尼将年利润预期上调 ', info: '据《金融时报》北京时间 4 月 21 日报道,由于预计几乎所有业务部门的表现都有所提升,索尼公司在周五把 2017 财年营业利润预期上调近 19%,把税前利润预期上调近 28%。和 2 月份的预期相比,索尼并没有调整 2017 财年营收数据,但是将合并营业利润预期上调 18.8%至 2850 亿日元(约合 26 亿美元),和 2016 财年相比下滑 3.1%。', show: false }]; let arr = arrMap[this.showTab]; lastest.forEach(item => { arr.push(item); }) } }, data() { return { showTab: 'HitTopics', hitTopics: [{ title: '搜狐 Q1 财报:营收 3.74 亿美元,同比下滑 8%;净亏损 6800 万美元,较上年同期的净亏损 2100 万美元扩大', info: '搜狐(NASDAQ:SOHU)发布该公司截至2017年3月31日的第一季度未经审计的财报。财报显示,搜狐第一季度营收为3.74亿美元,同比下滑8%;以Non-GAAP计算,归属搜狐的净亏损为6800万美元,稀释后的每股净亏损为1.75美元,搜狐去年同期净亏损为2200万美元。', show: false }, { title: 'AcFun 美剧专区疑遭下架 客服称因版权问题整改', info: '近日有网友反映,AcFun美剧几乎全部被下架,连美剧专区都被撤了,大量字幕组翻译的各类美剧也不再更新,网友直呼“最后的净土”遭“沦陷”。就此TechWeb联系AcFun客服后获悉,因涉及版权问题,AcFun相关资源目前正在整改中,具体恢复时间尚未确定。有网友近日称,AcFun首页导航里美剧相关选项好像被撤销了,搜单个剧集名称也无法找到视频资源,用关键词搜美剧也搜不出来。', show: false }, { title: '大疆推出如影 2 云台系统 拓展专业影视拍摄市', info: '4月23日,大疆创新在美国广播电视展上,正式发布了新一代的如影2云台系统。如影2云台系统主要面向专业摄影人员,最高负载可以达到达13.6公斤,相比第一代提升了88%,可以轻松承载不同类型的专业的摄影机。同时它采用了更加简化的设计,安装过程轻松快速,并提供了强大的拓展功能,支持相机、监视器等设备连接。', show: false }, { title: '经济学人:中国互联网巨头走向全球', info: '《经济学人》杂志本周刊文称,中国互联网行业的“BAT三巨头”,即百度、阿里巴巴和腾讯,正在积极开拓全球市场。腾讯在这场赛跑中处于领先,而阿里巴巴紧随其后。', show: false }, { title: '苹果在中国为何走下坡路?', info: '苹果自2009年起开始在中国市场销售iPhone,从此以后便成为了硅谷竞争对手羡慕的对象。谷歌、Facebook和Uber等不是未能进入中国市场,就是在中国市场以“失败”告终。', show: false }, { title: '知乎 Live 一年了,它开始支持「七天无理由」退款服务', info: '如果你在进行中的 Live 里听了不超过 15 条语音,觉得不满意,那么 Live 结束后的七天内,你可以无理由退款。', show: false }, { title: '「最后一公里」解决了,那共享单车的事故问题呢?', info: '问题虽多,但并非无路可走。', show: false }, { title: '短视频第一阵营阵容显形,秒拍、头条视频、快手三国杀,大戏接下来怎么演', info: '自从2013年twitter旗下的vine通过短视频走红之后,国内的秒拍、快手等同类产品也逐渐开始走上风口,但不料在行业认为风口将至之际,突然冒出一个“直播元年”,千播大战彼此血腥厮杀,但整体上却想给短视频来个截胡,然而,随着大批直播网站的', show: false }, { title: '马斯克、小扎又多了小伙伴,日本学者用脑电波读取你所思所想 | 潮科技', info: '做掌握技术的人,而不做被技术掌控的人这点很关键。...', show: false }, { title: '港媒消息称众安保险拟第 3 季在港挂牌上', info: '来自港媒消息互联网保险公司众安保险拟提速在港上市,目标第3季挂牌。针对此消息,众安保险对媒体回应称,公司一直有上市计划,但时间和地点未确定。港媒援引众安保险内部人士消息称,公司希望能最快于6月向联交所提交上市申请,并赶及在第3季上市。众安保险于去年已积极筹备在港上市,但去年底一度未有再要求投行就在港上市事宜继续工作,主因当时有意转往A股上市。', show: false }, { title: '搜狐 Q1 财报:营收 3.74 亿美元,同比下滑 8%;净亏损 6800 万美元,较上年同期的净亏损 2100 万美元扩大', info: '搜狐(NASDAQ:SOHU)发布该公司截至2017年3月31日的第一季度未经审计的财报。财报显示,搜狐第一季度营收为3.74亿美元,同比下滑8%;以Non-GAAP计算,归属搜狐的净亏损为6800万美元,稀释后的每股净亏损为1.75美元,搜狐去年同期净亏损为2200万美元。', show: false }, { title: 'AcFun 美剧专区疑遭下架 客服称因版权问题整改', info: '近日有网友反映,AcFun美剧几乎全部被下架,连美剧专区都被撤了,大量字幕组翻译的各类美剧也不再更新,网友直呼“最后的净土”遭“沦陷”。就此TechWeb联系AcFun客服后获悉,因涉及版权问题,AcFun相关资源目前正在整改中,具体恢复时间尚未确定。有网友近日称,AcFun首页导航里美剧相关选项好像被撤销了,搜单个剧集名称也无法找到视频资源,用关键词搜美剧也搜不出来。', show: false }, { title: '大疆推出如影 2 云台系统 拓展专业影视拍摄市', info: '4月23日,大疆创新在美国广播电视展上,正式发布了新一代的如影2云台系统。如影2云台系统主要面向专业摄影人员,最高负载可以达到达13.6公斤,相比第一代提升了88%,可以轻松承载不同类型的专业的摄影机。同时它采用了更加简化的设计,安装过程轻松快速,并提供了强大的拓展功能,支持相机、监视器等设备连接。', show: false }, { title: '经济学人:中国互联网巨头走向全球', info: '《经济学人》杂志本周刊文称,中国互联网行业的“BAT三巨头”,即百度、阿里巴巴和腾讯,正在积极开拓全球市场。腾讯在这场赛跑中处于领先,而阿里巴巴紧随其后。', show: false }, { title: '苹果在中国为何走下坡路?', info: '苹果自2009年起开始在中国市场销售iPhone,从此以后便成为了硅谷竞争对手羡慕的对象。谷歌、Facebook和Uber等不是未能进入中国市场,就是在中国市场以“失败”告终。', show: false }, { title: '知乎 Live 一年了,它开始支持「七天无理由」退款服务', info: '如果你在进行中的 Live 里听了不超过 15 条语音,觉得不满意,那么 Live 结束后的七天内,你可以无理由退款。', show: false }, { title: '「最后一公里」解决了,那共享单车的事故问题呢?', info: '问题虽多,但并非无路可走。', show: false }, { title: '短视频第一阵营阵容显形,秒拍、头条视频、快手三国杀,大戏接下来怎么演', info: '自从2013年twitter旗下的vine通过短视频走红之后,国内的秒拍、快手等同类产品也逐渐开始走上风口,但不料在行业认为风口将至之际,突然冒出一个“直播元年”,千播大战彼此血腥厮杀,但整体上却想给短视频来个截胡,然而,随着大批直播网站的', show: false }, { title: '马斯克、小扎又多了小伙伴,日本学者用脑电波读取你所思所想 | 潮科技', info: '做掌握技术的人,而不做被技术掌控的人这点很关键。...', show: false }, { title: '港媒消息称众安保险拟第 3 季在港挂牌上', info: '来自港媒消息互联网保险公司众安保险拟提速在港上市,目标第3季挂牌。针对此消息,众安保险对媒体回应称,公司一直有上市计划,但时间和地点未确定。港媒援引众安保险内部人士消息称,公司希望能最快于6月向联交所提交上市申请,并赶及在第3季上市。众安保险于去年已积极筹备在港上市,但去年底一度未有再要求投行就在港上市事宜继续工作,主因当时有意转往A股上市。', show: false }], news: [{ title: '蔡文胜放话短期不卖美图股票 儿子却套现 5 亿港', info: '港交所最新披露的信息显示,美图公司(01357.HK)创始人兼主席蔡文胜的儿子 Cai Rongjia 已于4月12日以每股11.86 港元的价格,减持 30 万股,套现约 355.8 万港元。减持后,Cai Rongjia 在美图公司的持股数约 2.54 亿股,持股比例减少至 5.99%,在主要股东中持股数垫底。', show: false }, { title: '无人机一周 4 次闯祸:万人滞', info: '衰落,还是瓶颈期?注定是无人机行业无聊的一年?', show: false }, { title: '雷军:互联网不打价格战,马云睡觉都在赚', info: '「我说传统商业需要人工的时候,陈总在下面点头,想起卖保险多辛苦,而马云睡觉都可以赚钱。」...', show: false }, { title: '中国论文再出丑:责任在谁', info: '4月20日,知名学术出版商施普林格·自然(Springer Nature)一次性撤销旗下杂志《肿瘤生物学》(Tumor Biology)2012 年至 2016 年发表的来自中国的 107 篇文章,这些文章涉嫌同行评议造假。', show: false }, { title: '苹果在中国为何走下坡路?', info: '苹果自2009年起开始在中国市场销售iPhone,从此以后便成为了硅谷竞争对手羡慕的对象。谷歌、Facebook和Uber等不是未能进入中国市场,就是在中国市场以“失败”告终。', show: false }, { title: '知乎 Live 一年了,它开始支持「七天无理由」退款服务', info: '如果你在进行中的 Live 里听了不超过 15 条语音,觉得不满意,那么 Live 结束后的七天内,你可以无理由退款。', show: false }, { title: '「最后一公里」解决了,那共享单车的事故问题呢?', info: '问题虽多,但并非无路可走。', show: false }, { title: '短视频第一阵营阵容显形,秒拍、头条视频、快手三国杀,大戏接下来怎么演', info: '自从2013年twitter旗下的vine通过短视频走红之后,国内的秒拍、快手等同类产品也逐渐开始走上风口,但不料在行业认为风口将至之际,突然冒出一个“直播元年”,千播大战彼此血腥厮杀,但整体上却想给短视频来个截胡,然而,随着大批直播网站的', show: false }, { title: 'Quora 融资 8500 万 美元:估值 18 亿美元 向国际扩', info: '成立八年的美国知识问答服务 Quora日前进行了D轮融资,获得了 Collaborative Fund和创业孵化器 Y Combinator领投的 8500 万美元资金。Quora 称,其估值几乎较上轮融资时翻倍,这意味着它的估值目前已经达到约 18 亿美元。在 2014 年的上轮融资中,Quora 的估值为 9 亿美元。', show: false }, { title: '百度金融风控负责人王劲离', info: '继百度自动驾驶事业部总经理王劲离职后,另一个负责百度金融风控的同名副总裁王劲也从百度离职。', show: false }, { title: '蔡文胜放话短期不卖美图股票 儿子却套现 5 亿港', info: '港交所最新披露的信息显示,美图公司(01357.HK)创始人兼主席蔡文胜的儿子 Cai Rongjia 已于4月12日以每股11.86 港元的价格,减持 30 万股,套现约 355.8 万港元。减持后,Cai Rongjia 在美图公司的持股数约 2.54 亿股,持股比例减少至 5.99%,在主要股东中持股数垫底。', show: false }, { title: '无人机一周 4 次闯祸:万人滞', info: '衰落,还是瓶颈期?注定是无人机行业无聊的一年?', show: false }, { title: '雷军:互联网不打价格战,马云睡觉都在赚', info: '「我说传统商业需要人工的时候,陈总在下面点头,想起卖保险多辛苦,而马云睡觉都可以赚钱。」...', show: false }, { title: '中国论文再出丑:责任在谁', info: '4月20日,知名学术出版商施普林格·自然(Springer Nature)一次性撤销旗下杂志《肿瘤生物学》(Tumor Biology)2012 年至 2016 年发表的来自中国的 107 篇文章,这些文章涉嫌同行评议造假。', show: false }, { title: '苹果在中国为何走下坡路?', info: '苹果自2009年起开始在中国市场销售iPhone,从此以后便成为了硅谷竞争对手羡慕的对象。谷歌、Facebook和Uber等不是未能进入中国市场,就是在中国市场以“失败”告终。', show: false }, { title: '知乎 Live 一年了,它开始支持「七天无理由」退款服务', info: '如果你在进行中的 Live 里听了不超过 15 条语音,觉得不满意,那么 Live 结束后的七天内,你可以无理由退款。', show: false }, { title: '「最后一公里」解决了,那共享单车的事故问题呢?', info: '问题虽多,但并非无路可走。', show: false }, { title: '短视频第一阵营阵容显形,秒拍、头条视频、快手三国杀,大戏接下来怎么演', info: '自从2013年twitter旗下的vine通过短视频走红之后,国内的秒拍、快手等同类产品也逐渐开始走上风口,但不料在行业认为风口将至之际,突然冒出一个“直播元年”,千播大战彼此血腥厮杀,但整体上却想给短视频来个截胡,然而,随着大批直播网站的', show: false }, { title: 'Quora 融资 8500 万 美元:估值 18 亿美元 向国际扩', info: '成立八年的美国知识问答服务 Quora日前进行了D轮融资,获得了 Collaborative Fund和创业孵化器 Y Combinator领投的 8500 万美元资金。Quora 称,其估值几乎较上轮融资时翻倍,这意味着它的估值目前已经达到约 18 亿美元。在 2014 年的上轮融资中,Quora 的估值为 9 亿美元。', show: false }, { title: '百度金融风控负责人王劲离', info: '继百度自动驾驶事业部总经理王劲离职后,另一个负责百度金融风控的同名副总裁王劲也从百度离职。', show: false }] } } }</script><style scoped> .layout { background-color: #fff; z-index: 999; top: 0; left: 0; right: 0; box-shadow: none; } h3 { margin: 0; } .head { margin: 10px 0 10px 15px; } .nav { height: 30px; background: #607d8b; } .nav-container { height: 30px!important; overflow: hidden; } .nav a { height: 30px; line-height: 30px; display: block; font-size: 14px; float: left; color: #fff; padding: 0 15px; } .nav a.active { background: #78909c; } #fixedTools { position: fixed; right: 40px; bottom: 40px; border: 1px solid #DDD; background: #FFF; width: 36px; text-align: center; border-radius: 2px; line-height: 1.25; z-index: 1000; } #fixedTools a { font-size: 20px; padding: 10px; display: block; color: #999; text-decoration: none; } .hidden { display: none; }</style>
HitTopics.vue:
<template> <List v-bind:list="hitTopics" v-on:toggleInfo="toggleInfo" /></template><script> import List from './List'; export default { name: 'HitTopics', props: ['hitTopics'], components: { List }, methods: { toggleInfo(item) { this.$emit('toggleInfo', item); } } }</script>
News.vue:
<template> <List v-bind:list="news" v-on:toggleInfo="toggleInfo" /></template><script> import List from './List'; export default { name: 'HitTopics', props: ['news'], components: { List }, methods: { toggleInfo(item) { this.$emit('toggleInfo', item); } } }</script>
<template> <div> <div class="container" v-for="(item, index) in list" v-on:click="toggleInfo(item)"> <Item v-bind:item="item" v-bind:isLast="index != list.length - 1" /> </div> </div></template><script> import Item from './Item'; export default { name: 'List', props: ['list'], components: { Item }, methods: { toggleInfo(item) { this.$emit('toggleInfo', item); } } }</script><style scoped> .container { margin-top: 15px; margin-left: 15px; margin-right: 15px; }</style>
Item.vue:
<template> <div> <div class="title">{{item.title}} <span class="time">4 小时前</span> </div> <div class="info" v-show="item.show"> {{item.info}} </div> <hr v-show="isLast"/> </div></template><script> export default { name: 'Item', props: ['item', 'isLast'] }</script><style scoped> .title { font-size: 16px; line-height: 1.56em; color: #545454; font-weight: 500; position: relative; cursor: pointer; -webkit-tap-highlight-color: rgba(0, 0, 0, 0); } .time { margin-left: 10px; font-size: 10px; color: #aaacb4; } .info { margin-top: 5px; font-size: 14px; line-height: 1.8em; color: #aaacb4; } hr { margin-top: 15px; margin-bottom: 15px; border: 1px solid #fff; position: relative; } hr:after { content: ""; position: absolute; left: 0; bottom: 0; background: #ddd; width: 100%; height: 1px; }</style>
LoadButton.vue:
<template> <div class="load"> <a href="javascript:;">点击加载更多</a> </div></template><script> export default { name: 'LoadButton' }</script><style scoped> .load { width:50%; margin: 40px auto 10px auto; text-align: center; font-size: 16px; } .load a { text-decoration: none; color: #607d8b; -webkit-tap-highlight-color: rgba(0,0,0,0); }</style>
0 0
- 【IMWeb训练营作业】- 作业3:仿readhub.me
- IMWeb训练营作业------仿SELECT
- IMWeb训练营作业-仿select组件
- 【IMWeb训练营作业】小组作业 仿豆瓣app
- IMWeb训练营作业】作业
- IMWeb训练营作业
- IMweb训练营作业
- IMWeb训练营作业
- IMWeb训练营作业
- IMWeb训练营作业
- IMWeb训练营作业
- IMWeb训练营作业
- IMWeb训练营作业
- 【IMWeb训练营作业】
- 【IMWeb训练营作业】
- IMWeb训练营作业
- IMWeb训练营作业
- IMWeb训练营作业
- 98. Validate Binary Search Tree
- DeepLearning tutorial(3)MLP多层感知机原理简介+代码详解
- 浅谈微信smali注入
- sqlite 数据类型
- Less -8
- 【IMWeb训练营作业】- 作业3:仿readhub.me
- 软件磁盘阵列的自动挂载及关闭删除
- 常用STL算法3_排序
- DeepLearning tutorial(4)CNN卷积神经网络原理简介+代码详解
- DeepLearning tutorial(5)CNN卷积神经网络应用于人脸识别(详细流程+代码实现)
- 常用STL算法4_拷贝和替换
- 模型选择与特征选择
- DeepLearning tutorial(6)易用的深度学习框架Keras简介
- X