分别用css3、JS实现图片简单的无缝轮播功效

本文主要介绍分别使用CSS3、JS实现图片简单无缝轮播功效;

一、使用CSS3实现:利用animation属性

(实现一张一张的轮播,肉眼只看见一张图片)

HTML部分比较简单,两个div下包着几个img标签;为了实现无缝轮播,注意第一张图片要与最后一张图片相同;

<div class="out">
            <div class="imgs">
                <img src="img/beatuy.jpg"/>
                <img src="img/child.jpg"/>
                <img src="img/girl.jpg"/>
                <img src="img/milk.jpg"/>
                <img src="img/cup.jpg"/>
                <img src="img/dog.jpg"/>
                <img src="img/beatuy.jpg"/>
            </div>
        </div>

最外层div设置ovflow:hidden;position: relative;既然最外层div设置了position: relative;所以内层div需要设置position: absolute;使得其运动相对父元素而言;

CSS代码如下:

 1 .out{
 2             width: 200px;
 3             height: 100px;
 4             overflow: hidden;
 5             position: relative;
 6         }
 7         .imgs{
 8             width: 1400px;
 9             height: 100px;
10             position: absolute;
11             animation: ppt 10s linear infinite;
12         }
13
14         img{
15             float: left;
16             width: 200px;
17             height: 100px;
18         }
19         @keyframes ppt{
20             0%{left:0px}
21             20%{left:-250px}
22             40%{left:-500px}
23             60%{left:-750px}
24             80%{left:-1000px}
25             100%{left:-1200px}
26         }

这样图片就可以轮播了,但是鼠标放上去的时候图片还是一直在轮播的,如果我们想让鼠标放在图片上时,轮播停止,或者出现一些信息,我们需要加上:hover;设置动画的状态,代码很简洁:如下

1 .out:hover .imgs{ 2 animation-play-state:paused 3 }

这样我们的轮播效果就出来啦;

效果图什么的也懒得贴了;

二、使用JS实现:利用定时器setInterval

(多张图片轮播,肉眼可以看到多张图片)

同样HTML部分比较简单,需要设置外层DIV ovflow:hidden;之所以每个div既有class,也有id,是因为样式我是通过class控制的,DOM是通过ID获取的

 1 <div class="out" id="out">
 2             <div class="main" id=‘main‘>
 3                 <div class="pic" id="pic">
 4                     <img src="img/0.jpg"/>
 5                     <img src="img/6.jpg"/>
 6                     <img src="img/hehua2.2.png"/>
 7                     <img src="img/tupian1.png"/>
 8                 </div>
 9                 <div class="copyPic" id="copyPic">
10
11                 </div>
12             </div>

可以看到class="copyPic" 的DIV为空的,没有内容,不急,在JS部分会为他赋上内容,其内容与class="pic"的一样;当然我们也可以直接在HTML中为其添加内容;现在为其加上一点CSS样式吧

 1 .out{
 2                 width: 820px;
 3                 overflow: hidden;
 4             }
 5             .main{
 6                 width: 1650px;
 7                 height: 100px;
 8             }
 9             img{
10                 width: 200px;
11                 height: 100px;
12                 border: 0;
13             }
14             .pic,.copyPic{
15                 float: left;  
16             }

这样,我们的基本样式就完成了,下面就开始实现轮播效果吧:

首先,为了代码方便,先封装一个简单函数

1 function $(str){ 2 return document.getElementById(str) 3 }

然后为class="copyPic" 的DIV加上内容:

1 (′copyPic′).innerHTML=(′copyPic′).innerHTML=(‘pic‘).innerHTML;

好啦,开始写轮播函数:

1 function move(){
2                 if ($(‘out‘).scrollLeft-$(‘copyPic‘).offsetWidth>=0) {
3                     $(‘out‘).scrollLeft-=$(‘out‘).offsetWidth;
4                 } else{
5                     $(‘out‘).scrollLeft++;
6                 }
7             }    var t=setInterval(move,10);

这样我们的图片就可以轮播啦,同样的如果希望鼠标放上去后轮播停止,还需要加上几句代码,使用鼠标事件,清除定时器

1 $(‘out‘).onmousemove=function(){
2                 clearInterval(t);
3             }
4             $(‘out‘).onmouseout=function(){
5                  t=setInterval(move,10);
6             }

OK,这样我们使用JS实现图片轮播的效果也就完成了!

时间: 2024-12-05 02:49:12

分别用css3、JS实现图片简单的无缝轮播功效的相关文章

简单的一个轮播效果

刚刚学了Jquery,写了一个简单的图片滑动,但不是完成品. <!DOCTYPE html> <meta content="text/html" charset="utf-8"/><html><head> <title></title> <link href="css/lunbo.css" rel="stylesheet"/> <scri

图片切换(非轮播,淡入淡出)--变形金刚joy007 项目总结

图片切换(非轮播,淡入淡出) 1.切换2.停止 <html> <head> <meta content="text/html; charset=UTF-8" http-equiv="Content-Type"> <style type="text/css"> div{ position: absolute; left: 0px; top: 0px;} .div1{ width: 800px; hei

jquery实现图片无缝轮播显示(个人随笔)

纯属个人随笔,不当之处,欢迎指正. 代码如下: <!doctype html> <html> <head> <meta charset="utf-8"> <title>图片无缝轮播显示</title> <script type="text/javascript" src="JavaScript/jquery-1.11.2.min.js"></script&g

一步一步拆解一个简单的iOS轮播图(三图)

导言(可以不看): 不吹不黑,也许是东半球最简单的iOS轮播图拆分注释(讲解不敢当)了(tree new bee).(一句话包含两个人,你能猜到有谁吗?提示:一个在卖手机,一个最近在卖书)哈哈... 我第一次项目中需要使用轮播图的时候我是用的别人写好的一个轮子,那个轮播封装很多东西,包括比如可以设置pageControl的位置,可以传图片url或本地图片,缓存网络图片等等.但是我觉得没必要搞那么复杂,我喜欢简单并足够做事的东西.现在有时间便想自己把它拆解一下.看了一些简书上一些作者写的关于轮播图

js动画 无缝轮播 进度条 文字页面展示 div弹窗遮罩效果

1.无缝轮播 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="ser

JS 无缝轮播图1-节点操作

无缝轮播图 (使用节点操作) <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title></title> <style> *{ padding:0; margin:0; } body{ background:#F5F5F5; } #content{ width:300px; height:200px;

最简单的html轮播图制作适合新手

html代码 ---------------------------------------------------------------------------------------------------------------------- <!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Typ

未学习JS也可以通过bootstrap做出轮播图的实际应用

由于本人新手 还没学JS 我是用bootstrap来做的 很简单 直接把那坨代码复制到 webstorm里面 下面我会用我的某一次作业 来做实际解释里面的某部分各代表什么意思 (由于这个代码到底什么意思 老师没有教过 我自行理解 有错的地方 望海涵)“男友秋装上新”这个地方 就是个轮播 一共3个小点 也就是三张图 可通过左右的箭头 左右翻动 接下来 奉上源代码:并在代码后给各部分做出解释 <div class="col-md-9 lunbo"> <div id=&qu

告别组件之教你使用原生js和css写移动端轮播图

在工作中由于项目需要要写一个轮播图,本想使用组件直接调用实现快速开发,但是一想到自己经常使用组件但是让自己手写的话确实一点都不会. 一个不会手写组件的前端程序员不是一个好程序员!于是打算自己手写一个. 老规矩,首先看一下最终效果,这个最终可以实现定时自动播放,触摸滑动,手动修改下面横条效果等功能. 项目中使用到的HTML代码如下 <div class="banner"> <ul class="clearfix"> <li><