css3爆炸效果更换图片轮播图

思路:给一个div设置一个背景图片1.jpg,然后在这个div上面用两个for循环动态的创建一个列数为C行数为R数量的span,并给这些span设置宽高、定位并设置背景图片0.jpg,然后设置每个span的background-position,使这组span平铺在div上。当点击div时换图,换图的实现方法是循环每个span,以div的宽度的中线为定位线,让这组span随机进行transform,然后在结束的时候让span的透明度变为透明,并且瞬间拉回全部span到原始位置并更换span和div的背景图片为下一组的图片(注意div的背景图片永远是span的背景图片的下一张);可以将此效果自动进行图片的更换,变成选项卡

转载请注明‘转载于Jason齐齐的博客http://www.cnblogs.com/jasonwang2y60/’

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>爆炸效果换图</title>
    <link rel="stylesheet" href="stylesheets/base.css">
    <style>
        body{
            background:#000;
        }
        body,html{
            width: 100%;
            height: 100%;
            overflow:hidden;
        }
        #box{
            width:900px;
            height:500px;
            background:url(images/img_tabs/1.jpg) no-repeat;
            background-size:cover;
            margin:100px auto;
            position:relative;
        }
        #box span{
            width: 100%;
            height: 100%;
            position:absolute;
            top: 0;
            left: 0;
            background:url(images/img_tabs/0.jpg);
            transform:rotateY(0deg);
        }
    </style>
    <script>
        function rnd(m,n){
            return parseInt(Math.random()*(n-m)+m);
        }
        window.onload=function(){
            var oBox=document.getElementById(‘box‘);
            var C=7;
            var R=8;
            for(var i=0;i<R;i++){
                for(var j=0;j<C;j++){
                    var oSpan=document.createElement(‘span‘);
                    oSpan.style.width=oBox.offsetWidth/R+‘px‘;
                    oSpan.style.height=oBox.offsetHeight/C+‘px‘;
                    oSpan.style.left=i*oBox.offsetWidth/R+‘px‘;
                    oSpan.style.top=j*oBox.offsetHeight/C+‘px‘;
                    oBox.appendChild(oSpan);
                    oSpan.style.backgroundPosition=-oSpan.offsetLeft+‘px -‘+oSpan.offsetTop+‘px‘;
                }
            }
            var bReady=false;
            var iNow=0;
            oBox.onclick=function(){
                if(bReady){return;}
                bReady=true;
                iNow++;
                var aSpan=oBox.children;
                for(var i=0;i<aSpan.length;i++){
                    aSpan[i].style.transition=‘.4s all ease‘;
                    var x=aSpan[i].offsetWidth/2+aSpan[i].offsetLeft-oBox.offsetWidth/2;
                    var y=aSpan[i].offsetHeight/2+aSpan[i].offsetTop-oBox.offsetHeight/2;
                    aSpan[i].style.transform=‘perspective(800px) translateX(‘+x+‘px) translateY(‘+y+‘px) rotateX(‘+rnd(-180,180)+‘deg) rotate(‘+rnd(-180,180)+‘deg) scale(1.4)‘;
                    aSpan[i].style.opacity=‘0‘;
                }
                aSpan[0].addEventListener(‘transitionend‘,function(){
                    bReady=false;
                    for(var i=0;i<aSpan.length;i++){
                        aSpan[i].style.transition=‘none‘;
                        aSpan[i].style.transform=‘perspective(800px) translateX(0) translateY(0) rotateX(0) rotateY(0) scale(1)‘;
                        aSpan[i].style.opacity=1;
                        aSpan[i].style.backgroundImage=‘url(images/img_tabs/‘+iNow%3+‘.jpg)‘;
                        oBox.style.backgroundImage=‘url(images/img_tabs/‘+(iNow+1)%3+‘.jpg)‘;
                    }
                },false);
            };
        };
    </script>
</head>
<body>
    <div id="box">

    </div>
</body>
</html>

  

时间: 2024-08-08 03:59:41

css3爆炸效果更换图片轮播图的相关文章

定时图片轮播图

先是HTML部分 <div id="alternate"> <ul class="img_list clear"> <li><a href="#"><img src="1.jpg" /></a></li> <li><a href="#"><img src="2.jpg" /&

图片轮播图插件的使用 unslider!!!

1.百度图片轮播图unslider,第一个就会出现jquery unslider轮播图,点击进去,下载网站提供的文件,解压,内部有我们需要使用的各种js,图片等. 2.在自己的eclipse或者intellij idea中搭建一个可以正常运行的web工程 3.在WEB-INF下创建一个jsp文件夹,jsp文件夹下创建一个lunbo.jsp,颜色标记的代码是需要注意的!在WebRoot下创建js和img文件夹,存放js和所需要的图片. 页面的代码: <%@ page language="ja

CSS3——animation的基础(轮播图)

作为前端刚入门的小菜鸟,只想记录一下每天的小收获 对于animation动画 1.实现动画效果的组成: (1)通过类似Flash的关键帧来声明一个动画 (2)在animation属性中调用关键帧声明的动画 2.animation是一个复合属性包括很多的子属性: animation-name:用来指定一个关键帧动画的名称,这个动画名必须对应一个@keyframes 规则.CSS 加载时会应用animation-name 指定的动画,从而执行动画. animation-duration 用来设置动画

js实现图片轮播图(一)

一.实现原理 (1)将所有图片放在一个父容器div里面,通过display属性来设置图片的出现与隐藏: (2)轮播图分为手动轮播和自动轮播: 手动轮播的重点是每次点击图片下方的小圆圈,获得它的索引号,并让与之对应索引号的图片显示,并且此时的小圆圈为高亮显示: 自动轮播:利用定时器setInterval(),来每隔一定的时间来播放一次图片. (3)所有的基础知识:dom操作,定时器,事件运用. 二.轮播图页面布局: <div id="content">   <!-- 总

图片轮播图插件

闲来无事,自己搞了一个图片轮播的jQuery插件,话不多说,直接上代码咯!!!!! 1.HTML模块的代码很简单.写一个容器就可以了,之后往里面加入图片轮播的效果 <div class="index-banner" id="banner"></div> 2.样式代码 1 .index-banner { 2 position: relative; 3 width:1280px; 4 height: 461px; 5 margin:0 auto;

选项卡例题效果和图片轮播效果例题

一.选项卡效果   <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">   <html xmlns="http://www.w3.org/1999/xhtml">   <head>   <meta http-equi

Js效果:图片轮播;选项卡;侧面菜单下拉效果;进度条效果;滑动效果;好友列表选中效果;点击选中显示效果

选项卡效果表: <body><div id="aaa"> <div class="bbb" style="width:50px; height:30px; background-color:#3F0" onclick="Show('d1')">娱乐</div> <div class="bbb" style="width:50px; height

关于图片轮播图的一个简单实例 以及实例中发现问题

1.最近在学习JS的过程中,为了巩固水平做了一个简单的轮播图,以及在做的过程中发现一些问题(未解决!希望可以有大佬可以解释这个问题)2.代码如下:<!DOCTYPE html><html><head lang="en"><meta charset="UTF-8"><title></title><style>*{margin: 0;padding: 0;}.wai{width: 100

安卓图片轮播图

最近自己根据领导要求app启动页面要放产品图片(以轮播的形式),方便用户查看,做了一个简单的demo,实现了基本图片轮播功能,亲测可用. csdn地址:https://download.csdn.net/download/qq_35702985/11545257 下面贴了几乎全部代码: MainActivity: String[] urls = getResources().getStringArray(R.array.url);List list = Arrays.asList(urls);i