分别用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代码如下:
.out{
width: 200px;
height: 100px;
overflow: hidden;
position: relative;
}
.imgs{
width: 1400px;
height: 100px;
position: absolute;
animation: ppt 10s linear infinite;
}
img{
float: left;
width: 200px;
height: 100px;
}
@keyframes ppt{
%{left:0px}
%{left:-250px}
%{left:-500px}
%{left:-750px}
%{left:-1000px}
%{left:-1200px}
}
这样图片就可以轮播了,但是鼠标放上去的时候图片还是一直在轮播的,如果我们想让鼠标放在图片上时,轮播停止,或者出现一些信息,我们需要加上:hover;设置动画的状态,代码很简洁:如下
.out:hover .imgs{ animation-play-state:paused }
这样我们的轮播效果就出来啦;
效果图什么的也懒得贴了;
二、使用JS实现:利用定时器setInterval
(多张图片轮播,肉眼可以看到多张图片)
同样HTML部分比较简单,需要设置外层DIV ovflow:hidden;之所以每个div既有class,也有id,是因为样式我是通过class控制的,DOM是通过ID获取的
<div class="out" id="out">
<div class="main" id='main'>
<div class="pic" id="pic">
<img src="img/0.jpg"/>
<img src="img/6.jpg"/>
<img src="img/hehua2.2.png"/>
<img src="img/tupian1.png"/>
</div>
<div class="copyPic" id="copyPic"> </div>
</div>
可以看到class="copyPic" 的DIV为空的,没有内容,不急,在JS部分会为他赋上内容,其内容与class="pic"的一样;当然我们也可以直接在HTML中为其添加内容;现在为其加上一点CSS样式吧
.out{
width: 820px;
overflow: hidden;
}
.main{
width: 1650px;
height: 100px;
}
img{
width: 200px;
height: 100px;
border:;
}
.pic,.copyPic{
float: left;
}
这样,我们的基本样式就完成了,下面就开始实现轮播效果吧:
首先,为了代码方便,先封装一个简单函数
function $(str){ return document.getElementById(str) }
然后为class="copyPic" 的DIV加上内容:
$('copyPic').innerHTML=$('pic').innerHTML;
好啦,开始写轮播函数:
function move(){
if ($('out').scrollLeft-$('copyPic').offsetWidth>=0) {
$('out').scrollLeft-=$('out').offsetWidth;
} else{
$('out').scrollLeft++;
}
}
var t=setInterval(move,10);
这样我们的图片就可以轮播啦,同样的如果希望鼠标放上去后轮播停止,还需要加上几句代码,使用鼠标事件,清除定时器
$('out').onmousemove=function(){
clearInterval(t);
}
$('out').onmouseout=function(){
t=setInterval(move,10);
}
OK,这样我们使用JS实现图片轮播的效果也就完成了!
分别用css3、JS实现图片简单的无缝轮播功效的更多相关文章
- js和jquery实现图片无缝轮播的不同写法
多掌握一种方法总是会有好处的,学习编程就要多思考,举一反三 下面写一下实现图片自动播放的代码,由于学习的是javascript,代码量很大,所以又学习了jquery库的操作,非常简便 还有非常有逼格的 ...
- 前端(十七)—— jQuery基础:jQuery的基本使用、JQ功能概括、JS对象与JQ对象转换、Ajax简单应用、轮播图
jQuery的基本使用.JQ功能概括.JS对象与JQ对象转换.Ajax简单应用.轮播图 一.认识jQuery 1.什么是jQuery jQuery是对原生JavaScript二次封装的工具函数集合 j ...
- js实现图片无缝轮播
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- js 实现淘宝无缝轮播图效果,可更改配置参数 带完整版解析代码[slider.js]
前言: 本人纯小白一个,有很多地方理解的没有各位大牛那么透彻,如有错误,请各位大牛指出斧正!小弟感激不尽. 本篇文章为您分析一下原生JS写淘宝无缝轮播图效果 需求分析: ...
- 一步一步拆解一个简单的iOS轮播图(三图)
导言(可以不看): 不吹不黑,也许是东半球最简单的iOS轮播图拆分注释(讲解不敢当)了(tree new bee).(一句话包含两个人,你能猜到有谁吗?提示:一个在卖手机,一个最近在卖书)哈哈... ...
- 原生js实现无缝轮播
原生js实现无缝轮播 因为要做到无缝,所以就要把第一张图片和最后一张连接起来,在此处采用js克隆了第一张图片的节点,添加到最后,显示图片序号的小圆按钮也是使用js动态添加的. html部分 <d ...
- jQuery图片无缝轮播
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...
- vue.js学习之better-scroll封装的轮播图初始化失败
vue.js学习之better-scroll封装的轮播图初始化失败 问题一:slider组件初始化失败 原因:页面异步获取数据很慢,导致slider初始化之后,数据还未获取到,导致图片还未加载 解决方 ...
- 无缝轮播的案例 及css3无缝轮播案例
无缝轮播的案例: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> < ...
随机推荐
- cuda编程学习5——波纹ripple
/共有DIM×DIM个像素,每个像素对应一个线程dim3 blocks(DIM/16,DIM/16);//2维dim3 threads(16,16);//2维kernel<<<blo ...
- cuda编程学习4——Julia
书上的例子编译会有错误,修改一下行即可. __device__ cuComplex(float a,float b):r(a),i(b){} /* ========================== ...
- ECMAScript版本号总结
最近想要研究下ES6,关于这个标准的发展历史.ES5. ES6.ES2015等等名称的定义都不怎么明确,查了很多资料,去除了程序员不关心的信息,下面是对ECMAScript规范发展历史及名词定义的 ...
- 生成 HTMLTestRunner 测试报告学习总结
HTMLTestRunner 的安装与使用 HTMLTestRunner 是 Python 标准库的 unittest 模块的一个扩展. 在使用之前,我们需要先安装他.下载地址:https://pyp ...
- 使用Python对Access读写操作
学习Python的过程中,我们会遇到Access的读写问题,这时我们可以利用win32.client模块的COM组件访问功能,通过ADODB操作Access的文件. 1.导入模块 import win ...
- 【canvas系列】canvas实现"雷达扫描"效果
今天来讲解"雷达扫描"效果demo,来源于QQ群里边有群友说想要个雷达效果,就尝试写了一下. 效果图: demo链接: https://win7killer.github.io/c ...
- pl sql 查询显示乱码解决方法——设置环境变量NLS_LANG
用oracle进行查询的时候,有的时候会出现查询结果为乱码的情况,此时要设置一个环境变量NLS_LANG. 此变量的值如何获得呢?运行下面sql语句就可以获得: select userenv('lan ...
- 深入浅出数据结构C语言版(6)——游标数组及其实现
在前两次博文中,我们由表讲到数组,然后又由数组的缺陷提出了指针式链表(即http://www.cnblogs.com/mm93/p/6576765.html中讲解的带有next指针的链表).但是指针式 ...
- 在ASP.NET Core中使用Apworks快速开发数据服务
不少关注我博客的朋友都知道我在2009年左右开发过一个名为Apworks的企业级应用程序开发框架,旨在为分布式企业系统软件开发提供面向领域驱动(DDD)的框架级别的解决方案,并对多种系统架构风格提供支 ...
- Luogu2723丑数Humble Numbers【归并排序】
Luogu2723丑数Humble Numbers 题目背景 对于一给定的素数集合 S = {p1, p2, ..., pK},考虑一个正整数集合,该集合中任一元素的质因数全部属于S.这个正整数集合包 ...