原生js颗粒页换图效果

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title>颗粒翻转</title>
    <style>
        * {
            margin: 0;
            padding: 0;
            list-style: none;
        }
        div{
            width: 700px;
            height: 400px;
            background: url("images/img_tabs/1.jpg");
            margin: 50px auto;
            position: relative;
        }
    </style>
    <script src="move.js"></script>
    <script>
        window.onload=function(){
            var oDiv=document.getElementById(‘box‘);
            var oInp=document.getElementById(‘btn1‘);
            var C=8; //列数
            var R=5; //行数
            var W=oDiv.offsetWidth/C;  //每个span的宽度
            var H=oDiv.offsetHeight/R; //每个span的高度
            //创建span
            for(var i=0;i<R;i++){       //循环所有行
                for(var j=0;j<C;j++){  //循环每一行中的每一个
                    var oSpan=document.createElement(‘span‘);
                    oSpan.style.width=W+‘px‘;
                    oSpan.style.height=H+‘px‘;
                    oSpan.style.position=‘absolute‘;
                    oSpan.style.top=i*H+‘px‘;
                    oSpan.style.left=j*W+‘px‘;
                    oSpan.style.backgroundImage=‘url("images/img_tabs/0.jpg")‘;
                    oSpan.style.backgroundPosition=-j*W+‘px -‘+i*H+‘px‘;
                    oSpan.c=j;
                    oSpan.r=i;
                    oDiv.appendChild(oSpan);
                }
            }

            var iNow=0;
            oInp.onclick=function() {
                iNow++;
                var aSpan = oDiv.children;

                if(iNow%3==0){
                        oDiv.style.backgroundImage=‘url("images/img_tabs/2.jpg")‘;
                    }else{
                        oDiv.style.backgroundImage=‘url("images/img_tabs/‘+(iNow%3-1)+‘.jpg")‘;
                }
                for(var i=0;i<aSpan.length;i++){
                    (function(index){
                        setTimeout(function(){
                            aSpan[index].style.backgroundImage=‘url("images/img_tabs/‘+iNow%3+‘.jpg")‘;
                            aSpan[index].style.opacity=0;
                            move(aSpan[index],{‘opacity‘:1});
                        },(aSpan[index].c+aSpan[index].r)*200);
                    })(i);
                }
            }
        };
    </script>
</head>
<body>
    <input type="button" value="换图" id="btn1"/>
    <div id="box">

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

  

时间: 2024-12-25 20:43:16

原生js颗粒页换图效果的相关文章

原生js实现的放大镜效果

这是我用原生js写的放大镜效果,与各种各样的框架技术相比,我喜欢使用原生的js,在这里,想和大家一起谈谈原生和框架技术的理解与个人喜好. <!DOCTYPE HTML><html> <head> <title>js放大镜效果</title> <meta http-equiv="content-type" content="text/html;charset=utf-8"/> <style&

原生JS编写图片切换效果和点击按钮的样式变化

这两天更进一步的了解了JS,老师让我们用原生的js编写图片切换和改变点击按钮样式,就是让我们学会怎么去把一个问题拆分,怎么将一个大问题拆分成许多的小问题,再用函数封装起来.比如一个点击按钮,让其点击时背景色发生改变,点击另一个时,上一个按钮要变回原来本有的颜色:这个问题用jquery,一行代码就搞定,但是用原生js就得分三个部分来考虑: 1.添加改变背景的样式. 2.怎么获取到除了当前点击的按钮以外其他的兄弟节点. 3.怎么去除按钮的样式属性. 也讲了事件委托,实现了可以删除新添加的元素的功能.

原生js实现雪花飘落效果

雪花飘落的效果实现步骤:1.使用setInterval定时器每800毫秒创建一个雪花:2.把每一个雪花作为参数传进动态下落的方法中即可. <style> *{padding: 0;margin: 0;} body{ background:#000; width: 100%; height: 100%; overflow:hidden; } </style> <div id="flame"></div> js实现代码: <script

原生js实现图片抖动效果

今天来写一个关于图片抖动的效果,需求是:点击图片,让其抖动几下停止(类似于苹果手机填错密码之后会抖一下的效果),其实想要实现这个效果,原理就是,点击之后,让其左移动下然后右移动一下(每移动一下减几像素知道减到0),然后将其放入定时器内,让其慢慢自动停下来.来看代码布局: <style> #img{position:absolute;left:30px;} </style> <body> <!--需求:点击图片,图片会抖动几下--> <img id=&q

原生js实现拖拽效果

css样式布局: html部分: js主体部分: 接下来用混合继承实现box2移动时有边界的效果: 思路:1.实现拖拽效果主要有三个事件,当鼠标按下的时候,获取鼠标相对于事件发生元素的位置(offsetX/offsetY);当鼠标移动的时候,利用鼠标指针相对于浏览器页面(或客户区)的坐标(clientX/clientY),得到元素的left和top值(clientX/clientY-offsetX/offsetY):当鼠标抬起的时候清除移动效果. 2.事件处理函数会使this指向触发事件的元素,

原生js实现简单打字机效果

快过年了,公司基本没活,闲着也是闲着,就写了一个 打字机效果玩玩,感觉挺有意思的. 具体代码 请参见我的github,请戳这里 预览效果,请戳这里

使用原生js封装webapp滑动效果(惯性滑动、滑动回弹)

PC 移动端兼容  IE 6.0+, FF 1.5+, Safari 2.0+, Opera 9.0+ 惯性助动,滑动回弹 门面模式 window.onload = function() { /*测试数据*/ var insert = ''; for (var i = 0; i < 80; i++) {  insert += '<div style = "width:100%; text-align:center;">滑动测试 ' + i + '</div>

面向对象原生js幻灯片代淡出效果

下面是代码 <!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-equiv="Co

原生js三种选项卡效果(轮播)

第三种:定时轮播切换(我这边定时是2s) <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>选项卡-自动播放效果</title> <style type="text/css"> *{ margin: 0; padding: 0; list-style: none; } body{ background: #58