说点废话;不知道是哪一版本起头条的tab切换效果就变了,一直琢磨着这个事,去度娘那里也没有什么结果;正好这两天有空就尝试做了一下;用前端的技术来实现;

先看效果吧;上面的tab随着slide滑动,上面的字体颜色也会随着改变,代码在最后面哟;

一直没有思路;尝试遮罩层是不可行的,直到今天早上偶然看见clip这个属性;就发现一切都好办了;

clip这个属性不怎么用到,我对这个属性,几乎没有什么印象,W3C介绍很简单。

属性有三个,有用的只有一个rect(10px,10px,10px,10px),还有两个就是酱油帝一号inherit;和酱油帝二号auto;酱油帝二号还有点作用,可以用作清空这个属性;

clip:rect(10px,10px,10px,10px);/*上右下左四个方向的值,实际操作中注意,右和下所相对的距离标准并不是右边,下边,而是左边,上边;所以这样写是什么都没有的*/
clip:auto;
clip:inherit;

看个例子吧;先看效果;看图可以知道,inline_box实际剪切的区域只有90*90

.box{
width: 200px;
height: 200px;
background: skyblue;
position: relative;
}
.box>.inline_box{
width: 100px;
height: 100px;
background: cornsilk;
position: absolute;
left:;
top:;
clip:rect(10px 100px 100px 10px)
}

还有个动画的例子;

代码也附上;

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0" />
<title></title>
<style type="text/css">
@keyframes move{
0%,100%{
clip: rect(0,220px,2px,0);
}
25%{
clip: rect(0,220px,220px,218px);
}
50%{
clip: rect(218px,220px,220px,0);
}
75%{
clip: rect(0,2px,220px,0);
} }
.box{
position: relative;
width: 200px;
height: 200px;
background: pink;
margin: 30px auto;
}
.line_box{
position: absolute;
width: 220px;
height: 220px;
left:;
top:; margin-left: -10px;
margin-top: -10px;
border: 2px solid skyblue;
box-sizing: border-box;
animation: move 10s linear infinite;
/*background: red;*/ }
</style>
</head>
<body> <!--通过clip实现动画效果--><!--clip属性在今天之前从来没用过,对它的印象可以说没有;不知道它是干什么的,今天终于长见识了-->
<!--clip:裁取绝对定位元素;值:rect;auto;inherit;有用的就只有rect(top,right,left,bottom) 了-->
<div class="box">
<div class="line_box"></div>
</div>
</body>
</html>

最后附上tab切换的代码;

//  HTML 部分
<div class="subtitle">
<ul class="list">
<li de='1'>推荐</li>
<li de='2'>热门</li>
<li de='3'>我的</li>
<li de='4'>本地</li>
<li de='5'>任务</li>
<li de='6'>摄影</li>
<li de='7'>宠物</li>
<li de='8'>国际</li>
<li de='9'>国内</li>
<li de='10'>社会</li>
</ul>
<ul class="list2">
<li de='1'>推荐</li>
<li de='2'>热门</li>
<li de='3'>我的</li>
<li de='4'>本地</li>
<li de='5'>任务</li>
<li de='6'>摄影</li>
<li de='7'>宠物</li>
<li de='8'>国际</li>
<li de='9'>国内</li>
<li de='10'>社会</li>
</ul>
</div>
<div class="content">
<div class="swiper-container">
<div class="swiper-wrapper">
<div class="swiper-slide" de='1'>Slide 1</div>
<div class="swiper-slide" de='2'>Slide 2</div>
<div class="swiper-slide" de='3'>Slide 3</div>
<div class="swiper-slide" de='4'>Slide 4</div>
<div class="swiper-slide" de='5'>Slide 5</div>
<div class="swiper-slide" de='6'>Slide 6</div>
<div class="swiper-slide" de='7'>Slide 7</div>
<div class="swiper-slide" de='8'>Slide 8</div>
<div class="swiper-slide" de='9'>Slide 9</div>
<div class="swiper-slide" de='10'>Slide 10</div>
</div>
</div>
</div> //CSS 部分 算了,简单,自己搞定吧 // JS 用到了JQ+swiper+clip ;实现思路,写UL列表,红色的覆盖黑色的标题,每次让红色的剪切显示只有li的宽度

var log = console.log.bind(console);    //简写console.log(),每次写那么长太麻烦了。我也是从面试题上看见的,所以啊,不能轻视细节。
var list2 = $('.list2');          
var _width = $('ul.list li').width();
var _liWidthL = 0;              //因为这个例子是平移裁剪,主要用到的就是左右边的数据,所以就只声明了这两个。
var _liWidthR = _width + 20;


list2.css('clip', "rect(0px " + _liWidthR + "px 44px " + _liWidthL + "px)");    //初始默认裁剪第一个


//第一种方式,实现了随下面滑动而上面的tab有切换改变;      
var swiper = new Swiper('.swiper-container', {
// pagination: '.swiper-pagination',
paginationClickable: true,
observer: true,              //swiper相关参数
onSlideChangeStart:function(swiper){  //当是slide切换成功后的回调函数;
_liWidthL = (_width + 20) * swiper.realIndex;
_liWidthR = (_width + 20) * (swiper.realIndex + 1);
list2.css('clip', "rect(0px " + _liWidthR + "px 44px " + _liWidthL + "px)");  //slide切换后改变tab裁剪的区域
},
onSliderMove: function(swiper, event) {  //当slide移动的时候的回调函数
var a = $('.swiper-wrapper').css('transform').replace(/[^0-9\-,]/g, '').split(',');    //获取slide的transform属性,偏移的值,并转换为数组,方便我们取值操作
var offsetSwiper = a[4];          //主要偏移值;


_liWidthL = parseInt(Math.abs(offsetSwiper) / 8);      //tab裁剪偏移根据slide比例进行改变
_liWidthR = _liWidthL + _width + 20;
list2.css('clip', "rect(0px " + _liWidthR + "px 44px " + _liWidthL + "px)"); //实时改变裁剪的区域
}
})


tab切换的效果——仿照今日头条APP的切换效果的更多相关文章

  1. jq+swiper 实现今日头条App的选项卡效果

    <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...

  2. android仿今日头条App、多种漂亮加载效果、选择器汇总、记事本App、Kotlin开发等源码

    Android精选源码 android漂亮的加载效果 android各种 选择器 汇总源码 Android仿bilibili搜索框效果 Android记事本app.分类,涂鸦.添加图片或者其他附件 仿 ...

  3. 山寨今日头条的标题title效果

    山寨今日头条的标题title效果 效果: 源码: // // ViewController.m // 今日头条 // // Created by YouXianMing on 14/11/26. // ...

  4. Android之仿今日头条顶部导航栏效果

    随着时间的推移现在的软件要求显示的内容越来越多,所以要在小的屏幕上能够更好的显示更多的内容,首先我们会想到底部菜单栏,但是有时候像今日头条新闻客户端要显示的内容太多,而且又想在主界面全部显示出来,所以 ...

  5. 仿今日头条app手机端顶部触屏滑动导航

    swiper.js <!DOCTYPE html> <html lang="en"> <head> <meta charset=" ...

  6. Python3从零开始爬取今日头条的新闻【四、模拟点击切换tab标签获取内容】

    Python3从零开始爬取今日头条的新闻[一.开发环境搭建] Python3从零开始爬取今日头条的新闻[二.首页热点新闻抓取] Python3从零开始爬取今日头条的新闻[三.滚动到底自动加载] Pyt ...

  7. 自定义控件实现-今日头条Android APP图集效果

    前提 产品有个新需求,类似今日头条的图集效果 大致看了下UI,大致就是ViewPager,横向滑动切换图片,纵向滑动移动图片,纵向超过一定距离,图片飞出,图集淡出动画退出,支持图片的双击放大. 思路 ...

  8. [Android] Android 类似今日头条顶部的TabLayout 滑动标签栏 效果

    APP市场中大多数新闻App都有导航菜单,导航菜单是一组标签的集合,在新闻客户端中,每个标签标示一个新闻类别,对应下面ViewPager控件的一个分页面,今日头条, 网易新闻等. 本文主要讲的是用:T ...

  9. 自适应 Tab 宽度可以滑动文字逐渐变色的 TabLayout(仿今日头条顶部导航)

    TabLayout相信大家都用过,2015年Google大会上发布了新的Android Support Design库里面包含了很多新的控件,其中就包含TabLayout,它可以配合ViewPager ...

随机推荐

  1. luo3372线段树模板的分块做法

    题目大意 请你维护一个有n个元素的整数序列,要求支持区间查询&区间修改 对于100%的数据,\(1<=n<=10^5\) 分析 正常做法是线段树维护区间修改.区间查询,今天我要讲的 ...

  2. angular.identity()

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  3. __x__(19)0907第四天__ HTML5 文本标签 及 样式

    strong 表语义上的强调, em 表示语气上的强调: <strong>警告:离僵尸远点!</strong> 世界末日了,因为僵尸是<em>有毒的</em& ...

  4. AJAX-wamp安装的“橙色”问题

    安装wamp可能会出现的问题 ##1 正常安装wamp后,打开wamp可以在右下角看到一个图片,绿色即正常,红色或者橙色即意味着Apache+Mysql/MariaDB+Perl/PHP/Python ...

  5. 文献阅读方法 & 如何阅读英文文献 - 施一公(转)

    附: 如何看懂英文文献?(好) 看需求,分层次 如何总结和整理学术文献? Mendeley & Everything 如何在pdf文献上做笔记?福晰阅读器 自己感悟: 一篇专业文献通常会有几页 ...

  6. java 实现文件上传下载以及查看

    项目的目录结构 代码  IOUtils.java package cn.edu.zyt.util; import java.io.IOException; import java.io.InputSt ...

  7. php抓取图片进行内容提取解析,文字性pdf进行内容文字提取解析

    2018年7月7日18:52:17 php是用纯算法,自己是提取图片内容不是不行,可以但是优化起来很麻烦还得设计学习库,去矫正数据的正确率 对于大多数项目来说,如果不是做ocr服务,就不必要做需求工具 ...

  8. Python全栈-magedu-2018-笔记4

    第三章 - Python 内置数据结构 元组tuple 一个有序的元素组成的集合 使用小括号 ( ) 表示 元组是不可变对象 元组的定义 初始化 定义 tuple() -> empty tupl ...

  9. Gym 101606B - Breaking Biscuits - [凸包+旋转卡壳][凸包的宽度]

    题目链接:https://codeforces.com/gym/101606/problem/B 题解: 对于给出的 $n$ 个点,先求这些点的凸包,然后用旋转卡壳求出凸包的宽度(Width (min ...

  10. u-boot调试串口输出对应的系统函数

    接上Debug串口,启动机器,u-boot哗啦啦地打印一行行的字符.刚接触u-boot的时候,对机器后台做了什么,几乎一无所知. 如果要很有信心地定制出一个简单并且可靠的系统,或者快速完成一项新的任务 ...