全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

js实现图片切换(动画版)

学习了妙味课堂的图片切换(动画版)

这个小效果相对简单一点。

知识预备:

【1】background-position-x

background-position属性设置背景原图像(由 background-image 定义)的位置,意味着使用这个属性的前提是必须设置背景原图像background-image。

background-position有两个属性值, background-position:x | y,用法上可以对其一个属性单独使用 background-position-x 和 background-position-y。

准备工作完毕,开始写代码

第一步

由于这次需要的div很多,所以采用动态添加的方式,直接看代码

<style>
 body{
 margin: 0;
 background-color: #5e5e5e;
 }
 #box{
 width: 857px;
 height: 574px;
 padding-top: 126px;
 padding-left:143px;
 background: url(img/bg.png) no-repeat;
 margin: 0px auto;
 }
 #wrap{
 width: 700px;
 height: 420px;
 transform-style: preserve-3d;
 perspective: 800px;
 }
 #wrap div{
 width: 10px;
 height: 420px;
 background: url(img/01.png) no-repeat;
 float: left;
 transition: .5s;
 }
 </style>
</head>
<body>
 <div id="box">
 <div id="wrap"></div>
 </div>
 <script>
 //在wrap下,写70个div,每个div显示一张图片的一小片部分,这样70个div能完整的显示出一张图片
 for(var i=0;i<70;i++){
 str +='<div style="background-position-x:'+(-10*i)+'px"></div>';
 }
 oWrap.innerHTML = str;
 //获取70个div
 var divs = oWrap.getElementsByTagName('div');
    </script>
 </body>

第二步

写tab()函数,设置每个div要做的动画

tab()函数

// 每个div设置前一个div的透明度为1,并且设置自己的透明度为0和背景图片
 function tab(n){
 // 0 
 if(divs[n-1]){
 divs[n-1].style.opacity = 1;
 }
 // 70
 if(divs[n]){
 divs[n].style.opacity = 0;
 divs[n].style.backgroundImage = "url(img/0"+imgNum+".png)";
 }
 }

第三步

写go()函数,利用定时器改变tab()函数的参数并且适时的改变背景图片

go()

//给tab()函数传递n值
 function go(){
 timer = setInterval(function(){
 tab(num);
 num++;
 //一张图片切换完毕
 if(num == 71){
 clearInterval(timer);
 //切换下一张图片
 imgNum++;
 //num清0,动画效果从第一个div开始
 num = 0;
 //当切到最后一张图片时,在从第一张开始切换
 if(imgNum == 6){
 imgNum = 1;
 }
 //切换完一张图片时切换下一张图片的间隔
 setTimeout(go,800);
 }
 //div变换的速度
 },80);
 }

总结:这个动画效果实现起来简单,代码问题不大,主要就是实现思路的问题。

源码:

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>图片切换(动画版)</title>
 <style>
 body{
 margin: 0;
 background-color: #5e5e5e;
 }
 #box{
 width: 857px;
 height: 574px;
 padding-top: 126px;
 padding-left:143px;
 background: url(img/bg.png) no-repeat;
 margin: 0px auto;
 }
 #wrap{
 width: 700px;
 height: 420px;
 transform-style: preserve-3d;
 perspective: 800px;
 }
 #wrap div{
 width: 10px;
 height: 420px;
 background: url(img/01.png) no-repeat;
 float: left;
 transition: .5s;
 }
 </style>
</head>
<body>
 <div id="box">
 <div id="wrap"></div>
 </div>
 <script>
 //在wrap下,写70个div,每个div显示一张图片的一小片部分,这样70个div能完整的显示出一张图片
 for(var i=0;i<70;i++){
 str +='<div style="background-position-x:'+(-10*i)+'px"></div>';
 }
 oWrap.innerHTML = str;
 //获取70个div
 var divs = oWrap.getElementsByTagName('div');
 go();
 //给tab()函数传递n值
 function go(){
 timer = setInterval(function(){
 tab(num);
 num++;
 //一张图片切换完毕
 if(num == 71){
 clearInterval(timer);
 //切换下一张图片
 imgNum++;
 //num清0,动画效果从第一个div开始
 num = 0;
 //当切到最后一张图片时,在从第一张开始切换
 if(imgNum == 6){
 imgNum = 1;
 }
 //切换完一张图片时切换下一张图片的间隔
 setTimeout(go,800);
 }
 //div变换的速度
 },80);
 }
 // 每个div设置前一个div的透明度为1,并且设置自己的透明度为0和背景图片
 function tab(n){
 // 0 
 if(divs[n-1]){
 divs[n-1].style.opacity = 1;
 }
 // 70
 if(divs[n]){
 divs[n].style.opacity = 0;
 divs[n].style.backgroundImage = "url(img/0"+imgNum+".png)";
 }
 }
 </script>
</body>
</html>

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!


# js  # 图片切换  # JS实现图片切换效果  # JavaScript实现图片切换效果  # 灵活使用数组制作图片切换js实现  # javascript图片切换综合实例(循环切换、顺序切换)  # JavaScript基于SVG的图片切换效果实例代码  # 片时  # 下一张  # 自己的  # 一张图  # 第一个  # 第一张  # 小片  # 对其  # 要做  # 准备工作  # 第二步  # 使用这个  # 第三步  # 有两个  # px  # top  # height  # padding  # repeat  # png 


相关文章: 如何在建站之星绑定自定义域名?  建站之星CMS五站合一模板配置与SEO优化指南  宝塔建站助手安装配置与建站模板使用全流程解析  XML的“混合内容”是什么 怎么用DTD或XSD定义  如何通过VPS建站实现广告与增值服务盈利?  如何快速搭建FTP站点实现文件共享?  如何在IIS管理器中快速创建并配置网站?  如何在阿里云完成域名注册与建站?  如何在Mac上搭建Golang开发环境_使用Homebrew安装和管理Go版本  高性能网站服务器部署指南:稳定运行与安全配置优化方案  如何在VPS电脑上快速搭建网站?  高性价比服务器租赁——企业级配置与24小时运维服务  道歉网站制作流程,世纪佳缘致歉小吴事件,相亲网站身份信息伪造该如何稽查?  专业的网站制作设计是什么,如何制作一个企业网站,建设网站的基本步骤有哪些?  如何快速打造个性化非模板自助建站?  如何自定义建站之星网站的导航菜单样式?  b2c电商网站制作流程,b2c水平综合的电商平台?  如何通过万网虚拟主机快速搭建网站?  如何制作算命网站,怎么注册算命网站?  建站之星后台密码遗忘或太弱?如何重置与强化?  如何在IIS服务器上快速部署高效网站?  外贸公司网站制作,外贸网站建设一般有哪些步骤?  建站主机助手选型指南:2025年热门推荐与高效部署技巧  微信小程序制作网站有哪些,微信小程序需要做网站吗?  如何选择高效可靠的多用户建站源码资源?  C++ static_cast和dynamic_cast区别_C++静态转换与动态类型安全转换  公司网站设计制作厂家,怎么创建自己的一个网站?  手机钓鱼网站怎么制作视频,怎样拦截钓鱼网站。怎么办?  网站制作难吗安全吗,做一个网站需要多久时间?  javascript基本数据类型及类型检测常用方法小结  建站之星导航配置指南:自助建站与SEO优化全解析  内部网站制作流程,如何建立公司内部网站?  ,怎么在广州志愿者网站注册?  小建面朝正北,A点实际方位是否存在偏差?  阿里云网站搭建费用解析:服务器价格与建站成本优化指南  深圳网站制作培训,深圳哪些招聘网站比较好?  深圳网站制作的公司有哪些,dido官方网站?  建站DNS解析失败?如何正确配置域名服务器?  如何用已有域名快速搭建网站?  如何获取开源自助建站系统免费下载链接?  电影网站制作价格表,那些提供免费电影的网站,他们是怎么盈利的?  宝塔建站后网页无法访问如何解决?  网站制作和推广的区别,想自己建立一个网站做推广,有什么快捷方法马上做好一个网站?  PHP 500报错的快速解决方法  Android使用GridView实现日历的简单功能  ,如何利用word制作宣传手册?  微信小程序 input输入框控件详解及实例(多种示例)  javascript中对象的定义、使用以及对象和原型链操作小结  如何在IIS7上新建站点并设置安全权限?  简历在线制作网站免费版,如何创建个人简历? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。