jquery动画效果实例_动画js

jquery动画效果实例_动画js文章目录JS动画实现概述平滑动画无缝连续滚动特效轮播图轮播图淡入淡出效果JS动画实现概述在CSS3中可以通过transition过渡属性可以实现动画JS可以利用CSS3中的transition属性实现元素动画平滑动画利用CSStransition属性实现平滑动画效果<button>开始动画</button><divid=”box”></div><script>varbtn=document.queryS

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

JS动画实现

概述

  • 在CSS3中可以通过transition过渡属性可以实现动画
  • JS可以利用CSS3中的transition属性实现元素动画

匀速动画

JS封装匀速动画

在这里插入图片描述

<button id="btn">开始动画</button>
<div id="box"></div>
var btn = document.querySelector("#btn");
var box = document.querySelector("#box");

var timer = null;
var left = 0;

function animation(target, distance, time) { 
   
    var each = parseInt(distance / time * 30);
    clearInterval(timer);
    timer = setInterval(function() { 
   
        if (left >= distance) { 
   
            clearInterval(timer);
        } else { 
   
            left += each;
            target.style.left = left + "px";
        }
    }, 30);
};

btn.onclick = function() { 
   
    animation(box, 800, 2000);
};

利用CSS transition属性实现平滑动画效果

在这里插入图片描述

<button>开始动画</button>
<div id="box"></div>

<script> var btn = document.querySelector("button"); var box = document.querySelector("#box"); btn.onclick = function() { 
      box.style.transition = "all 2s linear 0s"; box.style.left = "800px"; }; </script>

缓速动画

var btn = document.querySelector("#btn");
var box = document.querySelector("#box");

var timer = null;
var left = 0;

function animation(target, distance) { 
   
    clearInterval(timer);
    timer = setInterval(function() { 
   
        if (left >= distance) { 
   
            clearInterval(timer);
        } else { 
   
            var step = (distance - left) / 10;
            step = step > 0 ? Math.ceil(step) : Math.floor(step);
            left += step;
            target.style.left = left + "px";
        }
    }, 30);
};

btn.onclick = function() { 
   
    animation(box, 800);
};

无缝连续滚动特效

在这里插入图片描述

<div id="banner" class="banner">
    <ul id="list">
        <li><img src="images/0.png" alt=""></li>
        <li><img src="images/1.png" alt=""></li>
        <li><img src="images/2.png" alt=""></li>
        <li><img src="images/3.png" alt=""></li>
        <li><img src="images/4.png" alt=""></li>
        <li><img src="images/5.png" alt=""></li>
    </ul>
</div>
* { 
   
    margin: 0;
    padding: 0;
}

.banner { 
   
    width: 1000px;
    height: 130px;
    border: 1px solid red;
    margin: 50px auto;
    overflow: hidden;
}

.banner ul { 
   
    list-style: none;
    width: 5000px;
    position: relative;
}

.banner ul li { 
   
    float: left;
    margin-right: 10px;
}
var banner = document.querySelector("#banner");
var list = document.querySelector("#list");

list.innerHTML += list.innerHTML;

var left = 0;
var timer = null;

startMove();

function startMove() { 
   
    clearInterval(timer);
    timer = setInterval(function() { 
   
        left -= 4;
        if (left <= -1260) { 
   
            left = 0;
        }
        list.style.left = left + "px";
    }, 20);
}

function stopMove() { 
   
    clearInterval(timer);
}

banner.onmouseenter = function() { 
   
    stopMove();
};

banner.onmouseleave = function() { 
   
    startMove();
};

轮播图

在这里插入图片描述

<div id="banner" class="banner">
    <ul id="list">
        <li><img src="images/0.png" alt=""></li>
        <li><img src="images/1.png" alt=""></li>
        <li><img src="images/2.png" alt=""></li>
        <li><img src="images/3.png" alt=""></li>
        <li><img src="images/4.png" alt=""></li>
        <li><img src="images/5.png" alt=""></li>
    </ul>
    <a id="leftBtn" class="left-btn" href="javascript:;">&lt;</a>
    <a id="rightBtn" class="right-btn" href="javascript:;">&gt;</a>
</div>
* { 
   
    margin: 0;
    padding: 0;
}

.banner { 
   
    width: 650px;
    height: 360px;
    border: 1px solid red;
    margin: 50px auto;
    overflow: hidden;
    position: relative;
}

.banner ul { 
   
    list-style: none;
    width: 5000px;
    height: 100%;
    position: relative;
    left: 0;
}

.banner ul li { 
   
    float: left;
}

.banner ul li img { 
   
    width: 650px;
    height: 360px;
}

.banner a { 
   
    text-decoration: none;
    color: white;
    text-align: center;
    line-height: 50px;
}

.banner .left-btn { 
   
    position: absolute;
    width: 50px;
    height: 50px;
    left: 20px;
    top: 50%;
    margin-top: -25px;
    background-color: rgba(0, 0, 0, .5);
    border-radius: 50%;
}

.banner .right-btn { 
   
    position: absolute;
    width: 50px;
    height: 50px;
    right: 20px;
    top: 50%;
    margin-top: -25px;
    background-color: rgba(0, 0, 0, .5);
    border-radius: 50%;
}
var banner = document.querySelector("#banner");
var dot = document.querySelector("#banner #dot");
var list = document.querySelector("#list");
var leftBtn = document.querySelector("#leftBtn");
var rightBtn = document.querySelector("#rightBtn");

var firstLi = list.lastElementChild.cloneNode(true);
var lastLi = list.firstElementChild.cloneNode(true);
list.insertBefore(firstLi, list.firstElementChild);
list.appendChild(lastLi);

//总长度
var length = list.childElementCount;

//当前显示第几页
var index = 1;

//节流锁
var lock = false;

function setPage(index) { 
   
    list.style.transition = "left .5s ease 0s";
    list.style.left = -index * 650 + "px";
}

setPage(index);


rightBtn.onclick = function() { 
   
    if (lock) { 
   
        return;
    }
    lock = true;

    index++;

    setPage(index);

    if (index === length - 1) { 
   
        setTimeout(function() { 
   
            index = 1;
            list.style.transition = "none";
            list.style.left = -index * 650 + "px";
        }, 500);
    }

    setTimeout(function() { 
   
        lock = false;
    }, 500);
};

leftBtn.onclick = function() { 
   
    if (lock) { 
   
        return;
    }
    lock = true;

    index--;
    setPage(index);

    if (index === 0) { 
   
        setTimeout(function() { 
   
            index = length - 2;
            list.style.transition = "none";
            list.style.left = -index * 650 + "px";
        }, 500);
    }

    setTimeout(function() { 
   
        lock = false;
    }, 500);
};

轮播图淡入淡出效果

在这里插入图片描述

<div id="banner" class="banner">
    <ul id="list">
        <li><img src="images/0.png" alt=""></li>
        <li><img src="images/1.png" alt=""></li>
        <li><img src="images/2.png" alt=""></li>
        <li><img src="images/3.png" alt=""></li>
        <li><img src="images/4.png" alt=""></li>
        <li><img src="images/5.png" alt=""></li>
    </ul>
    <a id="leftBtn" class="left-btn" href="javascript:;">&lt;</a>
    <a id="rightBtn" class="right-btn" href="javascript:;">&gt;</a>
</div>
* { 
   
    margin: 0;
    padding: 0;
}

.banner { 
   
    width: 650px;
    height: 360px;
    border: 1px solid red;
    margin: 50px auto;
    overflow: hidden;
    position: relative;
}

.banner ul { 
   
    list-style: none;
    width: 5000px;
    height: 100%;
    position: relative;
    left: 0;
}

.banner ul li { 
   
    position: absolute;
    top: 0;
    left: 0;
    opacity: 0;
    transition: opacity 1s ease 0s;
}

.banner ul li:first-child { 
   
    opacity: 1;
}

.banner ul li img { 
   
    width: 650px;
    height: 360px;
}

.banner a { 
   
    text-decoration: none;
    color: white;
    text-align: center;
    line-height: 50px;
}

.banner .left-btn { 
   
    position: absolute;
    width: 50px;
    height: 50px;
    left: 20px;
    top: 50%;
    margin-top: -25px;
    background-color: rgba(0, 0, 0, .5);
    border-radius: 50%;
}

.banner .right-btn { 
   
    position: absolute;
    width: 50px;
    height: 50px;
    right: 20px;
    top: 50%;
    margin-top: -25px;
    background-color: rgba(0, 0, 0, .5);
    border-radius: 50%;
}
var banner = document.querySelector("#banner");
var lis = document.querySelectorAll("#list li");
var leftBtn = document.querySelector("#leftBtn");
var rightBtn = document.querySelector("#rightBtn");

var index = 0;
var length = lis.length;
var lock = false;

rightBtn.onclick = function() { 
   
    if (lock) { 
   
        return;
    }
    lock = true;

    lis[index].style.opacity = 0;
    index++;
    if (index >= length) { 
   
        index = 0;
    }
    lis[index].style.opacity = 1;

    setTimeout(function() { 
   
        lock = false;
    }, 1000);
};
leftBtn.onclick = function() { 
   
    if (lock) { 
   
        return;
    }
    lock = true;

    lis[index].style.opacity = 0;
    index--;
    if (index < 0) { 
   
        index = length - 1;
    }
    lis[index].style.opacity = 1;

    setTimeout(function() { 
   
        lock = false;
    }, 1000);
};
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/181471.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 两种方法求最大公约数最小公倍数

    两种方法求最大公约数最小公倍数

  • Matlab矩阵基本操作(定义,运算)

    一、矩阵的表示在MATLAB中创建矩阵有以下规则:a、矩阵元素必须在”[]”内;b、矩阵的同行元素之间用空格(或”,”)隔开;c、矩阵的行与行之间用”;”(或回车符)隔开;d、矩阵的元素可以是数值、变量、表达式或函数;e、矩阵的尺寸不必预先定义。二,矩阵的创建:1、直接输入法最简单的建立矩阵的方法是从键盘直接输入矩阵的元素,输入

  • JDK1.8关于运行时常量池, 字符串常量池的要点[通俗易懂]

    JDK1.8关于运行时常量池, 字符串常量池的要点[通俗易懂]网上关于jdk1.8的各种实验,结论鱼龙混杂,很多都相矛盾,网上有的实验也被后人测试出了不同的结果很多都分辨不了真假,这里记录一下网络上正确的结论,欢迎指正!首先自行区分运行时常量池与Class文件常量池(静态常量池)的概念,JVM内存模型,方法区与永久代的区别,有些在我的其他博客有介绍,连接在文尾在JDK1.7之前运行时常量池逻辑包含字符串常量池存放在…

  • mle与map_normal map

    mle与map_normal map摘要本文是关于MLE(最大似然估计)与MAP(最大后验概率)的一些自己学习的心得.(本文的重点在于对比MLE和MAP)正文1.MLE(最大似然估计)MLE简单的理解可以这样:假设我们手上有一批数据(样本),而且我们假设这些数据(样本)服从某个分布(模型已知),但是参数未知.这个时候,我们希望对这个参数进行估计,而MLE的思想就是找到一个参数值,使得每条样本出现的概率最…

    2022年10月31日
  • 华为静态路由配置[通俗易懂]

    华为静态路由配置[通俗易懂]静态路由静态路由是由管理员手动配置和管理的路由,静态路由配置简单,因此,被广泛应用于结构简单网络中,静态路由还可以实现负载均衡与路由备份。拓扑PC1位于192.168.1.0网段,它的IP是192.168.1.2,网关是192.168.1.1,掩码255.255.255.0。PC2位于192.168.2.0网段,它的IP是192.168.2.2,网关是192.168.2.1,掩码255….

  • 透视投影矩阵_透视投影矩阵推导知乎

    透视投影矩阵_透视投影矩阵推导知乎透视投影矩阵TheOpenGLPerspectiveProjectionMatrix关于透视投影矩阵的使用BuildingaBasicPerspectiveProjectionMatrixTheOpenGLPerspectiveProjectionMatrix首先,重要的是要记住OpenGL中的矩阵是使用列主顺序(而不是行主顺序)定义的。在所有的OpenGL书籍和参考文献中,OpenGL中使用的透视投影矩阵定义为:我们可以简单地转置矩阵,我们可以得到下面的以行向量为顺序的

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号