Page 250 - css揭秘
P. 250

图 8-29
                                                                                         naxos-greece.jpg 这张图片的完
                                                                                         整样貌;我们在本篇攻略中会一
                                                                                         直用到它(照片拍摄者为 Chris
                                                                                         Hutchison)










                        现在,它看起来如图 8-30 所示,没有任何动画效果或交互效果。接下
                    来,我们可以试试手动改变它的 background-position 属性值。实际上当
                    这个值从原本的 0  0 一直变化到 100%  0 时,我们就会看到这张图片从左侧
                    一直滚动到右侧的完整过程。这不就是我们需要的动画关键帧嘛!

                        @keyframes panoramic {
                            to { background-position: 100% 0; }
                        }

                        .panoramic {
                            width: 150px; height: 150px;
                            background: url("img/naxos-greece.jpg");
                            background-size: auto 100%;
                            animation: panoramic 10s linear infinite alternate;
                        }

                        这个方法立竿见影。它的效果有些像全景视图,仿佛身临其境环顾左                                   图 8-30
                    右。不过,这个动画是在页面加载后就立即触发的,在某些场景下这很可能                                    这张图片被裁切后的效果
                    会干扰到用户。比如说,在一个旅游网站上,用户可能想集中注意力去阅读
                    纳克索斯岛的说明文字,而不是一直观赏这张全景图片。因此,如果动画是
                    当用户鼠标悬停时才开始播放的,那效果就更加理想了。于是,我们接下来
                    又迈出了这一步:


                        .panoramic {
                            width: 150px; height: 150px;
                            background: url("img/naxos-greece.jpg");
                            background-size: auto 100%;
                        }

                        .panoramic:hover, .panoramic:focus {
                            animation: panoramic 10s linear infinite alternate;
                        }

                        当我们把鼠标悬停到图片上时,它真的达到了我们的期望:它会从图片
                    的最左侧区域开始,向右慢慢滚动,并逐渐显示出图片的右侧区域。不过,
                    当我们把鼠标移出图片时,它就会生硬地跳回最左侧(参见图 8-31)。我们
                    终于碰到本节开头所描述的那个问题了!





                                                                                         46 状态平滑的动画           219







          ඀ࠡ  JOEC
   245   246   247   248   249   250   251   252   253   254   255