欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

原生JS封裝animate運動框架的實例

 更新時間:2017年10月12日 08:34:30   作者:Dragon_web  
下面小編就為大家?guī)硪黄鶭S封裝animate運動框架的實例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

如下所示:

<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
<style>
div {
width: 100px;
height: 100px;
background-color: pink;
position: absolute;
left: 0;
top: 50px;
border-radius: 50%;
}
</style>
</head>
<body>
<button id="btn200">200</button>
<button id="btn400">400</button>
<div id="box"></div>
</body>
</html>
<script>
var btn200 = document.getElementById("btn200");
var btn400 = document.getElementById("btn400");
var box = document.getElementById("box");
btn200.onclick = function() {
animate(box,{width: 200, top: 100,left: 200,opacity:40,zIndex:3},function(){alert("我來了")});
}
btn400.onclick = function() {
animate(box,{top:500,opacity:10});
}
// 多個屬性運動框架 添加回調(diào)函數(shù)
function animate(obj,json,fn) { // 給誰 json
clearInterval(obj.timer);
obj.timer = setInterval(function() {
var flag = true; // 用來判斷是否停止定時器 一定寫到遍歷的外面
for(var attr in json){ // attr 屬性 json[attr] 值
//開始遍歷 json
// 計算步長 用 target 位置 減去當前的位置 除以 10
// console.log(attr);
var current = 0;
if(attr == "opacity")
{
current = Math.round(parseInt(getStyle(obj,attr)*100)) || 0;
console.log(current);
}
else
{
current = parseInt(getStyle(obj,attr)); // 數(shù)值
}
// console.log(current);
// 目標位置就是 屬性值
var step = ( json[attr] - current) / 10; // 步長 用目標位置 - 現(xiàn)在的位置 / 10
step = step > 0 ? Math.ceil(step) : Math.floor(step);
//判斷透明度
if(attr == "opacity") // 判斷用戶有沒有輸入 opacity
{
if("opacity" in obj.style) // 判斷 我們?yōu)g覽器是否支持opacity
{
// obj.style.opacity
obj.style.opacity = (current + step) /100;
}
else
{ // obj.style.filter = alpha(opacity = 30)
obj.style.filter = "alpha(opacity = "+(current + step)* 10+")";

}
}
else if(attr == "zIndex")
{
obj.style.zIndex = json[attr];
}
else
{
obj.style[attr] = current + step + "px" ;
}

if(current != json[attr]) // 只要其中一個不滿足條件 就不應(yīng)該停止定時器 這句一定遍歷里面
{
flag = false;
}
}
if(flag) // 用于判斷定時器的條件
{
clearInterval(obj.timer);
//alert("ok了");
if(fn) // 很簡單 當定時器停止了。 動畫就結(jié)束了 如果有回調(diào),就應(yīng)該執(zhí)行回調(diào)
{
fn(); // 函數(shù)名 + () 調(diào)用函數(shù) 執(zhí)行函數(shù)
}
}
},30)
}
function getStyle(obj,attr) { // 誰的 那個屬性
if(obj.currentStyle) // ie 等
{
return obj.currentStyle[attr]; // 返回傳遞過來的某個屬性
}
else
{
return window.getComputedStyle(obj,null)[attr]; // w3c 瀏覽器
}
}
</script>

以上這篇原生JS封裝animate運動框架的實例就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • JavaScript中json數(shù)組查找數(shù)據(jù)的幾種方式(含模糊查找)

    JavaScript中json數(shù)組查找數(shù)據(jù)的幾種方式(含模糊查找)

    這篇文章主要給大家介紹了關(guān)于JavaScript中json數(shù)組查找數(shù)據(jù)的幾種方式,文中包括模糊查找,文中給出了詳細的代碼示例,對大家學(xué)習(xí)或者使用json具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-09-09
  • JS實現(xiàn)的仿淘寶交易倒計時效果

    JS實現(xiàn)的仿淘寶交易倒計時效果

    這篇文章主要介紹了JS實現(xiàn)的仿淘寶交易倒計時效果,涉及JavaScript針對時間與日期的動態(tài)操作技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-11-11
  • JS實現(xiàn)控制圖片顯示大小的方法【圖片等比例縮放功能】

    JS實現(xiàn)控制圖片顯示大小的方法【圖片等比例縮放功能】

    這篇文章主要介紹了JS實現(xiàn)控制圖片顯示大小的方法,即實現(xiàn)圖片等比例縮放功能,涉及JS動態(tài)操作頁面元素屬性相關(guān)技巧,需要的朋友可以參考下
    2017-02-02
  • 淺談layer彈出層按鈕顏色修改方法

    淺談layer彈出層按鈕顏色修改方法

    今天小編就為大家分享一篇淺談layer彈出層按鈕顏色修改方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-09-09
  • 原生js輪播(仿慕課網(wǎng))

    原生js輪播(仿慕課網(wǎng))

    本文主要分享了原生js實現(xiàn)仿慕課網(wǎng)的輪播效果。具有很好的參考價值,下面跟著小編一起來看下吧
    2017-02-02
  • 使用JavaScript實現(xiàn)node.js中的path.join方法

    使用JavaScript實現(xiàn)node.js中的path.join方法

    Node.JS中的 path.join 非常方便,能直接按相對或絕對合并路徑,有時侯前端也需要這種方法,如何實現(xiàn)呢?感興趣的朋友跟隨腳本之家小編一起看看吧
    2018-08-08
  • javaScript嗅探執(zhí)行神器-sniffer.js

    javaScript嗅探執(zhí)行神器-sniffer.js

    本文主要介紹了javaScript嗅探執(zhí)行神器-sniffer.js的相關(guān)知識。具有很好的參考價值,下面跟著小編一起來看下吧
    2017-02-02
  • js/html光標定位的實現(xiàn)代碼

    js/html光標定位的實現(xiàn)代碼

    光標定位,想必大家有所了解吧,在本文將為大家介紹的是通過自定義函數(shù)來實現(xiàn)標簽元素的定位,感興趣的朋友可以了解下
    2013-09-09
  • js實現(xiàn)前端跨域postMessage的具體使用

    js實現(xiàn)前端跨域postMessage的具體使用

    這篇文章主要介紹了js實現(xiàn)前端跨域postMessage的具體使用,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • JavaScript作用域與作用域鏈優(yōu)化方式

    JavaScript作用域與作用域鏈優(yōu)化方式

    這篇文章主要介紹了JavaScript作用域與作用域鏈優(yōu)化方式,圍繞主題展開JavaScript作用域以及作用域鏈的那些事情,以及針對它們的一些我們在代碼中優(yōu)化小技巧,需要的朋友可以參考一下
    2022-07-07

最新評論