CSS3实现图片滚动播放效果

本文原地址:http://blog.csdn.net/wongleetion

CSS3实现图片滚轮效果

在平常我们使用一些滚动图片的效果,都是用javascript代码(JQuery)实现,但是在如今Html5和CSS3盛行的时代,可以替代javascript代码来实现一些常见的效果来提高网页的加载速度,对用户来说体验是更加友好的。特别是现在微信平台开发比较火热的年代,同样的效果用HTML5+CSS3替代将会带来更绝妙的移动终端体验。比如本篇文章所要介绍的CSS3图片滚轮效果。

本篇内容的知识点来自于W3School官方文档,CSS3 @keyframes 规则。

地址链接:http://www.w3school.com.cn/css3/css3_animation.asp

语法规则:

@keyframes animationname {keyframes-selector {css-styles;}}

动画Animationname为动画名称,由开发者自定义,keyframes-selector为动画时长的百分比(可以控制其运动速度)。

原理:在一个小的div里面嵌套着一个大div,小div和所要展示的单张图片是同样高宽,大div里面是一个横向列表,包含所有要展示的图片,在执行过程中,通过改变大div的水平位置(每次向左或向右移动一张图片的宽度)来实现图片切换。

Html关键代码:

<div class="container">
 
<div class="img">
 
<ul class="nav">
 
<li><a href="#"><img src="imgs/logo.png"></a></li>
 
<li><a href="#"><img src="imgs/name.png"></a></li>
 
<li><a href="#"><img src="imgs/mmc.png"></a></li>
 
</ul>
 
</div>
 
</div>

CSS样式关键代码:

.nav{
 
width:2000px;
 
height:150px;
 
position:absolute;
 
left:0px;
 
top:0;
 
z-index:9;
 
animation:myfirst 6s infinite;
 
-webkit-animation:myfirst 6s infinite;
 
-0-animation:myfirst 6s infinite;
 
-moz-animation:myfirst 6s infinite;
 
}
 
@keyframes myfirst
 
{
 
0%   {left: 0px;}
 
26.6%   {left: 0px;}
 
36.6%   {left: -320px;}
 
63.2%   {left: -320px;}
 
73.2%   {left: -640px;}
 
99.7%   {left: -640px;}
 
100% {left: -0px;}
 
}
如果想在展现形式上有所变更就需要调节百分比(图片停留时间和滚动速度)和移动距离。


CSS3技术因为考虑到浏览器兼容问题,所以要针对每种浏览器写出样式,名称更改为一下,其他相同。

@-o-keyframes myfirst

@-moz-keyframes myfirst

@-webkit-keyframes myfirst

滚动算法优化见demo

Demo演示链接 http://wongleetion.sinaapp.com/


  • 8
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要让 CSS 背景图片全屏铺满而不拉伸,可以使用 `background-size: cover` 属性。这个属性会自动调整背景图片的大小,使得图片完整地覆盖整个容器,同时不拉伸图片。例如: ``` body { background-image: url(your-image-url.jpg); background-size: cover; background-repeat: no-repeat; background-attachment: fixed; background-position: center; } ``` 这样,背景图片就可以全屏铺满且不拉伸了。 ### 回答2: 要实现CSS背景图片全屏铺满且不拉伸可以使用以下方法: 1. 使用background-size属性: 在CSS中,可以使用background-size属性来设置背景图片的大小。通常,我们可以将其设置为cover,以使背景图完全覆盖背景区域,同时保持图片的比例不变。这样,背景图片可以全屏铺满,但可能会被裁剪。 例如: ``` body { background-image: url("背景图地址"); background-size: cover; background-repeat: no-repeat; background-position: center; background-attachment: fixed; } ``` background-repeat属性设置为no-repeat可以禁止背景图重复出现,而background-position属性将其设置为居中显示。同时,使用background-attachment: fixed属性可以固定背景图,使其随页面滚动滚动。 2. 使用background-position属性和vw、vh单位: 使用background-position属性结合vw和vh单位,可以根据视口的宽度和高度设置背景图的位置,实现全屏铺满效果。 例如: ``` body { background-image: url("背景图地址"); background-repeat: no-repeat; background-position: center; background-attachment: fixed; background-size: auto; } @media (max-aspect-ratio: 16/9) { body { background-size: 100vw auto; } } @media (min-aspect-ratio: 16/9) { body { background-size: auto 100vh; } } ``` 通过@media媒体查询,可以根据视口的长宽比例设置合适的背景图大小。在上述示例中,背景图会根据视口的宽高比例设置为100vw自动高度或者自动宽度100vh。 综上所述,以上两种方法可以实现CSS背景图片全屏铺满而不拉伸的效果。 ### 回答3: 要将CSS背景图片全屏铺满但不拉伸,可以使用CSS3的background-size属性和background-position属性。以下是一种实现方法: 首先,在CSS样式中设置背景图片的路径,例如: ```css body { background-image: url("path-to-image.jpg"); } ``` 然后,使用background-size属性设置背景图片的尺寸,将其调整为cover,即将图片缩放以填充整个容器,但保持其纵横比: ```css body { background-size: cover; } ``` 接下来,使用background-position属性设置背景图片的位置为中心,即将其放置在容器的中央: ```css body { background-position: center; } ``` 最后,将容器的高度和宽度设置为100%,以使背景图片铺满整个屏幕: ```css html, body { height: 100%; width: 100%; } ``` 以上方法可以确保背景图片在保持纵横比的同时填满整个屏幕,不会出现拉伸的情况。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值