澳门皇冠金沙网站-澳门皇冠844网站

热门关键词: 澳门皇冠金沙网站,澳门皇冠844网站

轴效果解析,时间轴效果解析

时光轴效果剖析,轴效果解析

即便时间轴早就不是哪些特殊事物了,个人只是感兴趣所以就钻研一下,最近从网络搜索了三个个人认为比较好的小运轴demo,下载下来钻探了须臾间并做了下修改.具体的魔法如下图:(该demo实现的是滚动加载图片)

代码地址:

图片 1

如何达成滚动加载图片的?最根本是以下的代码部分:

(function() {
  $(document).ready(function() {
    var timelineAnimate;
    timelineAnimate = function(elem) {
      return $(".timeline.animated .timeline-row").each(function(i) {
        var bottom_of_object, bottom_of_window;
        bottom_of_object = $(this).position().top   $(this).outerHeight();
        bottom_of_window = $(window).scrollTop()   $(window).height();
        if (bottom_of_window > bottom_of_object) {
          return $(this).addClass("active");
        }
      });
    };
    timelineAnimate();
    return $(window).scroll(function() {
      return timelineAnimate();
    });
  });

}).call(this);

因为我们的样例中实际上还不是从头到尾的动态加载图片(即动态生成html标签和dom成分,后续能够再去贯彻),只是把原本页面中的遮蔽恐怕说把opacity属性值由0变为1了.通过看以上代码,那几个地方实际上是有个小算法的.

if (bottom_of_window > bottom_of_object) 才会去给当前对象(即类控制器为.timeline.animated .timeline-row的对象)添加类选择器active(暂且先不具体该类选择器实现什么效果)
我们先讨论下这两个值bottom_of_window和bottom_of_object

bottom_of_window = $(window).scrollTop()   $(window).height();

$(window).scrollTop()表示当前滚动条的位置距离页面顶端的距离,其实可以理解为页面滚动条拉到某个位置,顶部隐藏的页面内容的高度;

$(window).height()表示当前可视页面区域的高度;

bottom_of_object = $(this).position().top   $(this).outerHeight();

$(this).position().top表示当前元素距离父元素的距离,个人理解为应该就是margintop的值吧,

$(this).outerHeight()表示当前元素的高度还有padding border,但不包括margin
如下盒子模型:

图片 2

当if (bottom_of_window > bottom_of_object)为真的情况下,我们看到执行了return $(this).addClass("active"),这段代码起什么作用呢,其实作用就是
用户在拖动滚动条时时间轴内容的过渡效果,我们可以看到添加效果是向.timeline.animated .timeline-row添加的,我们查看样式文件关于这个类选择器的所在对象都有什么
样式效果:

.timeline.animated .timeline-row .timeline-content {
    opacity: 0;
    left: 20px;
    -webkit-transition: all 0.8s;
    -moz-transition: all 0.8s;
    transition: all 0.8s; }
  .timeline.animated .timeline-row:nth-child(odd) .timeline-content {
    left: -20px; }
  .timeline.animated .timeline-row.active .timeline-content {
    opacity: 1;
    left: 0; }
  .timeline.animated .timeline-row.active:nth-child(odd) .timeline-content {
    left: 0; }

很精晓在执行$(this).addClass("active")之后,以下样式起作用了.

.timeline.animated .timeline-row.active .timeline-content {
    opacity: 1;
    left: 0; }

为何会有七个连着的飘入效果啊,其实正是概念了

.timeline.animated .timeline-row .timeline-content {
    opacity: 0;
    left: 20px;
    -webkit-transition: all 0.8s;
    -moz-transition: all 0.8s;
    transition: all 0.8s; }

transition(css3标签)定义了类采用器.timeline.animated .timeline-row .timeline-content的含有对象唯有有其余样式更动都会有三个0.8.s年华的连片效果,当然那么些时刻

咱们能够再一次去修改。

因为我们在施行$(this).addClass("active")在此之前,我们时刻轴左边包车型客车靶子的体制如下(我们暂时先说时间轴左边包车型地铁)

.timeline.animated .timeline-row:nth-child(odd) .timeline-content {

opacity: 0;

left: -20px; }

实施之后样式如下:

.timeline.animated .timeline-row.active .timeline-content {
    opacity: 1;
    left: 0; }

为此会有贰个从左到右的三个落实际效果果与利益,因为发光度和左臂距都变了。

 

光阴轴侧边的指标为啥是从右到左的一个切入效果呢,首西施行$(this).addClass("active")以前,时间轴侧边对象样式为

.timeline.animated .timeline-row .timeline-content {
    opacity: 0;
    left: 20px;
    -webkit-transition: all 0.8s;
    -moz-transition: all 0.8s;
    transition: all 0.8s; }

我们看到left为20px,opacity(发光度为0),推行$(this).addClass("active")之后

 .timeline.animated .timeline-row.active .timeline-content {
    opacity: 1;
    left: 0; }

left为0,opacity(光滑度为1),transition为0.8s,所以有一个从右到左的三个接通效果了.

如上代码有一个考证的地方

.timeline-row:nth-child(odd)中的nth-child(odd)选择器,因为css的解析顺序是从右到左,所以这个地方的意思表示.timeline-row为奇数的对象(属于其父元素的第奇数个timeline-row)

假如有以下代码,

<!DOCTYPE html>
<html>
<head>
<style> 
p:nth-child(2)
{
background:#ff0000;
}
</style>
</head>
<body>

<h1>这是标题</h1>
<p>第一个段落。</p>
<p>第二个段落。</p>
<p>第三个段落。</p>
<p>第四个段落。</p>

<p><b>注释:</b>Internet Explorer 不支持 :nth-child() 选择器。</p>

</body>
</html>

 个中p:nth-child(2)表示p的父成分中第2个子成分,而且那一个子成分是p,那时候第三个子成分正好是P所以呈现效果如下

图片 3

比方改为以下

<h1>这是标题</h1>
<h2>第一个段落。</h2>
<p>第二个段落。</p>
<p>第三个段落。</p>
<p>第四个段落。</p>

此时效果如下

图片 4

因为p:nth-child(2)第三个子成分是h2,并非p所以没找到相配的因素,所以背景象也没生效.

先研究到此地,后续有时间希图让页面成分动态加载,并不是在页面上早早展现出来,只是通过决定折射率来显示或然隐敝.

 

即便时间轴早就不是哪些特殊事物了,个人只是感兴趣所以就商量一下,这段时间从互连网搜索了叁个个人以为比较好...

我们得以重新去修改。

.timeline.animated .timeline-row .timeline-content {
    opacity: 0;
    left: 20px;
    -webkit-transition: all 0.8s;
    -moz-transition: all 0.8s;
    transition: all 0.8s; }

先研商到那边,后续有的时候光企图让页面成分动态加载,而不是在页面上早早显示出来,只是通过决定光滑度来呈现大概隐敝.

即便时间轴早就不是怎么样出格事物了,个人只是感兴趣所以就商讨一下,近来从互连网查找了贰个个人认为比较好的日子轴demo,下载下来探讨了一晃并做了下修改.具体的效果如下图:(该demo完结的是滚动加载图片)

 

大家得以重新去修改。

 .timeline.animated .timeline-row.active .timeline-content {
    opacity: 1;
    left: 0; }

很显眼在实施$(this).addClass("active")之后,以下样式起效果了.

.timeline.animated .timeline-row.active .timeline-content {
    opacity: 1;
    left: 0; }
 

如上代码有三个考证的地方

先研讨到此地,后续有的时候光准备让页面成分动态加载,并非在页面上早早突显出来,只是经过垄断发光度来显示或然隐敝.

.timeline.animated .timeline-row.active .timeline-content {
    opacity: 1;
    left: 0; }

图片 5

图片 6

如何促成滚动加载图片的?最注重是以下的代码部分:

<h1>这是标题</h1>
<h2>第一个段落。</h2>
<p>第二个段落。</p>
<p>第三个段落。</p>
<p>第四个段落。</p>

缘何会有三个联网的飘入效果呢,其实正是概念了

咱俩看到left为20px,opacity(折射率为0),实行$(this).addClass("active")之后

实施之后样式如下:

.timeline.animated .timeline-row .timeline-content {
    opacity: 0;
    left: 20px;
    -webkit-transition: all 0.8s;
    -moz-transition: all 0.8s;
    transition: all 0.8s; }

举例改为以下

.timeline.animated .timeline-row .timeline-content {
    opacity: 0;
    left: 20px;
    -webkit-transition: all 0.8s;
    -moz-transition: all 0.8s;
    transition: all 0.8s; }

因为p:nth-child(2)第贰个子成分是h2,实际不是p所以没找到相配的因素,所以背景观也没生效.

因为p:nth-child(2)第二个子成分是h2,实际不是p所以没找到相称的成分,所以背景观也没生效.

代码地址:

本文由澳门皇冠金沙网站发布于前端开发,转载请注明出处:轴效果解析,时间轴效果解析