前端筆記知識點整合之JavaScript(十二)緩衝公式&檢測設備&Data日期

来源:https://www.cnblogs.com/rope/archive/2019/03/30/10628582.html
-Advertisement-
Play Games

一、JavaScript緩衝公式ease 原生JS沒有自己的緩衝公式,但是你要自己推理的話,必須要懂一些數學和物理公式: 讓div用100毫秒(幀),從left100px的位置變化到left800px的位置,要求勻速: 大致計算如下: 毫秒編號(幀) 距離起點的增量 目前絕對的位置 0 0 100 ...


一、JavaScript緩衝公式ease

原生JS沒有自己的緩衝公式,但是你要自己推理的話,必須要懂一些數學和物理公式:

div100毫秒(幀),從left100px的位置變化到left800px的位置,要求勻速:

大致計算如下:

毫秒編號(幀)

距離起點的增量

目前絕對的位置

0

0

100

1

7

107

2

14

114

...

...

...

t

t*c/d

b+t*c/d

49

343

443

50

350

450

98

686

786

99

693

793

100

700

800

t是時間增量,b100c700d100

 t : 當前時間(current time

 b :初始值(begining value

 c :變化量(change in value

 d :持續時間(總步數)(duration

首先bcd三個參數(初始值、變化量、持續時間)在運動開始前,是需要確定好的。

舉例:

div要向右緩動,left初始值100,那麼b就是100,要向右移動700,那麼c就是700,至於d的設置就比較靈活,只要符合t是從0d遞增或遞減就可以了

d根步驟配合使用來設置持續時間,例如d設置為100,如果設置步長是1,那麼從0100就有100步,即分100次完成這個過程,步數越多那麼持續時間就越長。

 2次:=100+A2*A2*700/(100*100)

 3次:=100+A2*A2*A2*700/(100*100*100)

 正弦1次: =100+SIN(A2/20)*700/SIN(100/20)

 正弦2次:=100+SIN(A2/20)*SIN(A2/20)*700/(SIN(100/20)*SIN(100/20))

 

var oDiv = document.getElementsByTagName('div');
var f = 0;
var timer = setInterval(function(){
   f++;
   if(f >= 100){
       clearInterval(timer);
   }
   oDiv[0].style.left = linear(f,100,700,100) + "px";
   oDiv[1].style.left = ease_2(f,100,700,100) + "px";
   oDiv[2].style.left = ease_3(f,100,700,100) + "px";
   oDiv[3].style.left = ease_sin(f,100,700,100) + "px";
   oDiv[4].style.left = ease_sin2(f,100,700,100) + "px";
},20);
// 推理出的勻速公式
function linear(t,b,c,d){
    return b + t * c / d;
}
function ease_2(t,b,c,d){
    return b + t * t * c / (d * d);
}
function ease_3(t,b,c,d){
    return b + t * t * t * c / (d * d * d);
}
function ease_sin(t,b,c,d){
    return b + Math.sin(t/20) * c / Math.sin(d/20);
}
 function ease_sin2(t,b,c,d){
    return b + Math.sin(t/20)*Math.sin(t/20) * c / (Math.sin(d/20)*Math.sin(d/20));
}

二、檢測設備跳轉

 

if(/(iPhone|iPad)/i.test(navigator.userAgent)){
    //如果當前設備是手持設備,就跳轉到以下網址
    window.location.href = 'https://m.taobao.com/';
}else if(/(Android)/i.test(navigator.userAgent)){
    window.location.href = 'https://m.baidu.com/';
}

三、Date日期對象

Date() 方法可返回當天的日期和時間

 

 Date()          返回當日的日期和時間。

 getDate()       Date 對象返回一個月中的某一天 (1 ~ 31)

 getDay()        Date 對象返回一周中的某一天 (0 ~ 6)

 getMonth()      Date 對象返回月份 (0 ~ 11)

 getFullYear()   Date 對象以四位數字返回年份。

 getHours()      返回 Date 對象的小時 (0 ~ 23)

 getMinutes()    返回 Date 對象的分鐘 (0 ~ 59)

 getSeconds()    返回 Date 對象的秒數 (0 ~ 59)

 getMilliseconds()   返回 Date 對象的毫秒(0 ~ 999)

 getTime()       返回 1970 1 1 日至今的毫秒數。

 


 

 JavaScript基礎就到這裡了,後續一些知識點我們在面向對象再見面吧,如果有哪些知識點遺漏了,請聯繫我補充謝謝。

ps:儘量讓它越來越規範,前期的文章都是本人的學習時的筆記整理,希望看完後可以指點一二,提提意見多多交流; 

筆記流程:html>css>javascript>jquery>html5/css3>移動端>ajax>面向對象>canvas>nodejs>es678>vue>react>小程式>面試問題

意見請留言,郵箱:[email protected]

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1. div 2. 邊距 3. 邊框 4. 定位 5. 浮動 1 21.1 div 部分(division) <div>元素,經常以 div 形式引用 是 XHTML 元素,用於定義 XHTML 文 件中的區域. 1.添加 div <div> <p>This is our content area. ...
  • 1.Filter 屬性介紹 2.Alpha 濾鏡的使用 3.Blur 濾鏡的使用 4.Filph、Filpv 濾鏡 5.DropShadow 濾鏡 6.Glow 濾鏡 7.Gray ,Invert,Xray 濾鏡 8.Shadow 濾鏡 1 19.1 F Fr ilter 屬性介紹 設置或檢索對象所 ...
  • dyld: Library not loaded: /usr/local/opt/jpeg/lib/libjpeg.8.dylib Referenced from: /usr/local/lib/liblept.5.dylib Reason: image not found'使用pytesserac... ...
  • 有一道很有意思的數組操作相關編程題,閑來無事用JS解決了一下,問題描述如下: (1) 鍵盤錄入6個int類型的數據存入數組arr中; (2) 將arr數組中的內容反轉; (3) 將反轉後的數組角標為奇數的元素相互交換,即1和3交換,3和5交換,以此類推; (4) 將數組中最後一個角標為奇數的元素和數 ...
  • 1. HTML認識 1.1 什麼是HTML HTML是描述(製作)網頁的語言,指的是超文本標記語言(Hyper Text Markup Language)。 超文本:就是指頁面內可以包含圖片、鏈接、甚至音樂、程式等非文字元素; 標記語言:是一套標記標簽(markup tag); 標記:一種標記符、標 ...
  • 一、準備階段: a.進入阿裡巴巴矢量圖標庫www.iconfont.cn挑選所需的圖標,加入購物車 b.點擊網頁中的購物車下載代碼 二、3種方法實現 Iconfont 的HTML顯示 Unicode 引用 Unicode 是字體在網頁端最原始的應用方式,特點是: 相容性最好,支持 IE6+,及所有現 ...
  • 一、現象描述 真正意義上的inline-block水平呈現的元素間,換行顯示或者空格隔開的情況下會有間距,這是因為瀏覽器在解析時,會將換行等讀取成一個空格導致。 二、移出空格的方法 ① 我們可以去掉元素之間的換行和空格,這樣間距自然就沒有了,但是這樣會降低代碼的可讀性,不可取。 ② 使用margin ...
  • datagrid combobox輸入框下拉(取消)選值和編輯已選值處理 by:授客 QQ:1033553122 測試環境 jquery-easyui-1.5.3 需求場景 如下,在datagrid中新增、編輯記錄: 新增時通過點選指定combobox下拉列表項來實現選擇、取消選擇所點項(多選com ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...