最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

原生js實現(xiàn)旋轉(zhuǎn)木馬效果

 更新時間:2022年02月23日 14:57:15   作者:hind?sight  
這篇文章主要為大家詳細介紹了原生js實現(xiàn)旋轉(zhuǎn)木馬效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了js實現(xiàn)旋轉(zhuǎn)木馬效果的具體代碼,供大家參考,具體內(nèi)容如下

html部分

<div class="wrap" id="wrap">
? ? <div class="slide" id="slide">
? ? ? ? <ul>
? ? ? ? ? ? <li><a href=""><img src="images/slidepic1.jpg" alt=""></a></li>
? ? ? ? ? ? <li><a href=""><img src="images/slidepic2.jpg" alt=""></a></li>
? ? ? ? ? ? <li><a href=""><img src="images/slidepic3.jpg" alt=""></a></li>
? ? ? ? ? ? <li><a href=""><img src="images/slidepic4.jpg" alt=""></a></li>
? ? ? ? ? ? <li><a href=""><img src="images/slidepic5.jpg" alt=""></a></li>
? ? ? ? </ul>
? ? ? ? <div class="arrow" id="arrow">
? ? ? ? ? ? <a href="javascript:" id="next"></a>
? ? ? ? ? ? <a href="javascript:" id="prev"></a>
? ? ? ? </div>
? ? </div>
</div>

css部分

@charset "UTF-8";
/*初始化 ?reset*/
blockquote,body,button,dd,dl,dt,fieldset,form,h1,h2,h3,h4,h5,h6,hr,input,legend,li,ol,p,pre,td,textarea,th,ul{margin:0;padding:0}
body,button,input,select,textarea{font:12px/1.5 "Microsoft YaHei", "微軟雅黑", SimSun, "宋體", sans-serif;color: #666;}
ol,ul{list-style:none}
a{text-decoration:none}
fieldset,img{border:0;vertical-align:top;}
a,input,button,select,textarea{outline:none;}
a,button{cursor:pointer;}
?
.wrap {
? ? margin: 100px auto;
? ? width: 1200px;
}
.slide {
? ? height: 500px;
? ? position: relative;
}
?
.slide li {
? ? position: absolute;
? ? left: 200px;
? ? top: 0;
}
.slide li img {
? ? width: 100%;
}
.arrow {
? ? opacity: 0;
}
#next,#prev {
? ? width: 76px;
? ? height: 112px;
? ? position: absolute;
? ? top: 50%;
? ? margin-top: -56px;
? ? background: url("../images/prev.png") no-repeat;
? ? z-index: 99;
}
#next {
? ? background-image: url("../images/next.png");
? ? right: 0;
}

js部分

<script src="common.js"></script>
? ? <script>
? ? ? ? var config = [
? ? ? ? ? ? {
? ? ? ? ? ? ? ? width: 400,
? ? ? ? ? ? ? ? opacity: 0.2,
? ? ? ? ? ? ? ? height: 250,
? ? ? ? ? ? ? ? left: 50,
? ? ? ? ? ? ? ? top: 20,
? ? ? ? ? ? ? ? zIndex: 2
? ? ? ? ? ? },//0
? ? ? ? ? ? {
? ? ? ? ? ? ? ? width: 600,
? ? ? ? ? ? ? ? opacity: 0.7,
? ? ? ? ? ? ? ? height: 350,
? ? ? ? ? ? ? ? left: 0,
? ? ? ? ? ? ? ? top: 70,
? ? ? ? ? ? ? ? zIndex: 3
? ? ? ? ? ? },//1
? ? ? ? ? ? {
? ? ? ? ? ? ? ? width: 800,
? ? ? ? ? ? ? ? opacity: 1,
? ? ? ? ? ? ? ? height: 500,
? ? ? ? ? ? ? ? left: 200,
? ? ? ? ? ? ? ? top: 100,
? ? ? ? ? ? ? ? zIndex: 4
? ? ? ? ? ? },//2
? ? ? ? ? ? {
? ? ? ? ? ? ? ? width: 600,
? ? ? ? ? ? ? ? opacity: 0.7,
? ? ? ? ? ? ? ? height: 350,
? ? ? ? ? ? ? ? left: 600,
? ? ? ? ? ? ? ? top: 70,
? ? ? ? ? ? ? ? zIndex: 3
? ? ? ? ? ? },//3
? ? ? ? ? ? {
? ? ? ? ? ? ? ? width: 400,
? ? ? ? ? ? ? ? opacity: 0.2,
? ? ? ? ? ? ? ? height: 250,
? ? ? ? ? ? ? ? left: 750,
? ? ? ? ? ? ? ? top: 20,
? ? ? ? ? ? ? ? zIndex: 2
? ? ? ? ? ? }//4
? ? ? ? ];
? ? ? ? //頁面加載事件
? ? ? ? window.onload = function () {
? ? ? ? ? ? var flag=true;//默認所有的動畫都結(jié)束了
? ? ? ? ? ? //獲取li標簽
? ? ? ? ? ? var list = my$("slide").getElementsByTagName("li");
? ? ? ? ? ? //散開圖片
? ? ? ? ? ? function assign() {
? ? ? ? ? ? ? ? for (var i = 0; i < list.length; i++) {
? ? ? ? ? ? ? ? ? ? animate(list[i], config[i],function () {
? ? ? ? ? ? ? ? ? ? ? ? flag=true;//回調(diào)函數(shù),當動畫加載完后,flag變?yōu)閠rue
? ? ? ? ? ? ? ? ? ? });
? ? ? ? ? ? ? ? }
? ? ? ? ? ? }
? ? ? ? ? ? assign();
? ? ? ? ? ? //點擊右邊焦點
? ? ? ? ? ? my$("next").onclick = function () {
? ? ? ? ? ? ? ? if (flag){
? ? ? ? ? ? ? ? ? ? flag=false;
? ? ? ? ? ? ? ? ? ? config.push(config.shift());//把數(shù)組中的第一個元素作為返回值并追加加到這個數(shù)組的最后面
? ? ? ? ? ? ? ? ? ? assign();
? ? ? ? ? ? ? ? }
? ? ? ? ? ? };
? ? ? ? ? ? //點擊左邊焦點
? ? ? ? ? ? my$("prev").onclick = function () {
? ? ? ? ? ? ? ? if (flag){
? ? ? ? ? ? ? ? ? ? flag=false;
? ? ? ? ? ? ? ? ? ? config.unshift(config.pop());//把數(shù)組的最后一個元素作為返回值并追加到這個數(shù)組的最前面
? ? ? ? ? ? ? ? ? ? assign();
? ? ? ? ? ? ? ? }
?
? ? ? ? ? ? };
? ? ? ? ? ? //鼠標進入逐漸的顯示左右焦點
? ? ? ? ? ? my$("slide").onmouseover=function () {
? ? ? ? ? ? ? ?animate(my$("arrow"),{"opacity":1});
? ? ? ? ? ? };
? ? ? ? ? ? //鼠標離開隱藏
? ? ? ? ? ? my$("slide").onmouseout = function () {
? ? ? ? ? ? ? ? animate(my$("arrow"),{"opacity":0});
? ? ? ? ? ? };
? ? ? ? };
</script>

common.js部分

//根據(jù)id獲取元素對象
function my$(id) {
? ? return document.getElementById(id);
}
/*
* element---任意的元素
* attr---屬性
* */
function getAttrValue(element,attr) {
? ? return element.currentStyle?element.currentStyle[attr] : window.getComputedStyle(element,null)[attr]||0;
}
//動畫函數(shù)
function animate(element,json,fn) {
? ? clearInterval(element.timeId);
? ? element.timeId=setInterval(function () {
? ? ? ? var flag=true;//假設(shè)都達到了目標
? ? ? ? for(var attr in json){
? ? ? ? ? ? if(attr=="opacity"){//判斷屬性是不是opacity
? ? ? ? ? ? ? ? var current= getAttrValue(element,attr)*100;
? ? ? ? ? ? ? ? //每次移動多少步
? ? ? ? ? ? ? ? var target=json[attr]*100;//直接賦值給一個變量,后面的代碼都不用改
? ? ? ? ? ? ? ? var step=(target-current)/10;//(目標-當前)/10
? ? ? ? ? ? ? ? step=step>0?Math.ceil(step):Math.floor(step);
? ? ? ? ? ? ? ? current=current+step;
? ? ? ? ? ? ? ? element.style[attr]=current/100;
? ? ? ? ? ? }else if(attr=="zIndex"){//判斷屬性是不是zIndex
? ? ? ? ? ? ? ? element.style[attr]=json[attr];
? ? ? ? ? ? }else{//普通的屬性
?
? ? ? ? ? ? ? ? //獲取當前的位置----getAttrValue(element,attr)獲取的是字符串類型
? ? ? ? ? ? ? ? var current= parseInt(getAttrValue(element,attr))||0;
? ? ? ? ? ? ? ? //每次移動多少步
? ? ? ? ? ? ? ? var target=json[attr];//直接賦值給一個變量,后面的代碼都不用改
? ? ? ? ? ? ? ? var step=(target-current)/10;//(目標-當前)/10
? ? ? ? ? ? ? ? step=step>0?Math.ceil(step):Math.floor(step);
? ? ? ? ? ? ? ? current=current+step;
? ? ? ? ? ? ? ? element.style[attr]=current+"px";
? ? ? ? ? ? }
? ? ? ? ? ? if(current!=target){
? ? ? ? ? ? ? ? flag=false;//如果沒到目標結(jié)果就為false
? ? ? ? ? ? }
? ? ? ? }
? ? ? ? if(flag){//結(jié)果為true
? ? ? ? ? ? clearInterval(element.timeId);
? ? ? ? ? ? if(fn){//如果用戶傳入了回調(diào)的函數(shù)
? ? ? ? ? ? ? ? fn(); //就直接的調(diào)用,
? ? ? ? ? ? }
? ? ? ? }
? ? ? ? console.log("target:"+target+"current:"+current+"step:"+step);
? ? },10);
}

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • JS作用域閉包、預(yù)解釋和this關(guān)鍵字綜合實例解析

    JS作用域閉包、預(yù)解釋和this關(guān)鍵字綜合實例解析

    這篇文章主要介紹了JS作用域閉包、預(yù)解釋和this關(guān)鍵字,結(jié)合實例形式分析了javascript作用域閉包、預(yù)解釋和this關(guān)鍵字在具體使用過程中的操作技巧與注意事項,需要的朋友可以參考下
    2016-12-12
  • PHP抓取HTTPS內(nèi)容和錯誤處理的方法

    PHP抓取HTTPS內(nèi)容和錯誤處理的方法

    這篇文章主要介紹了PHP抓取HTTPS內(nèi)容的實現(xiàn)方法,以及在抓取的時候遇到的一個HTTPS問題的處理辦法,有需要的朋友們可以參考借鑒,下面來一起看看吧。
    2016-09-09
  • 簡單談?wù)刯avascript代碼復(fù)用模式

    簡單談?wù)刯avascript代碼復(fù)用模式

    這篇文章主要簡單談?wù)刯avascript代碼復(fù)用模式,主要詳細介紹了類式繼承模式中的默認模式,希望大家能夠喜歡。
    2015-01-01
  • 淺談javascript 函數(shù)表達式和函數(shù)聲明的區(qū)別

    淺談javascript 函數(shù)表達式和函數(shù)聲明的區(qū)別

    javascript中聲明函數(shù)的方法有兩種:函數(shù)聲明式和函數(shù)表達式.究竟他們用起來有什么區(qū)別呢,今天就本著打破砂鍋問到底的精神,好好來說說這個讓人神魂顛倒的--函數(shù)聲明。
    2016-01-01
  • JS寫XSS cookie stealer來竊取密碼的步驟詳解

    JS寫XSS cookie stealer來竊取密碼的步驟詳解

    JavaScript是web中最常用的腳本開發(fā)語言,js可以自動執(zhí)行站點組件,管理站點內(nèi)容,在web業(yè)內(nèi)實現(xiàn)其他有用的函數(shù)。這篇文章主要介紹了JS寫XSS cookie stealer來竊取密碼的步驟詳解,需要的朋友可以參考下
    2017-11-11
  • JS二叉樹的簡單實現(xiàn)方法示例

    JS二叉樹的簡單實現(xiàn)方法示例

    這篇文章主要介紹了JS二叉樹的簡單實現(xiàn)方法,結(jié)合具體實例形式分析了基于javascript定義二叉樹及二叉樹節(jié)點的遍歷、查找、添加、刪除及運算相關(guān)操作技巧,需要的朋友可以參考下
    2017-04-04
  • 網(wǎng)易JS面試題與Javascript詞法作用域說明

    網(wǎng)易JS面試題與Javascript詞法作用域說明

    Javascript函數(shù)在定義它們的作用域里運行,而不是在執(zhí)行它們的作用域里運行。
    2010-11-11
  • JavaScript中if、else?if、else和switch的語法、用法及注意事項

    JavaScript中if、else?if、else和switch的語法、用法及注意事項

    這篇文章主要介紹了JavaScript中的條件判斷語句,包括if、elseif、else和switch的基本語法、用法及注意事項,通過這些語句,可以根據(jù)不同的條件執(zhí)行相應(yīng)的代碼塊,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2025-04-04
  • JavaScript報錯:Uncaught TypeError: Cannot set property ‘X‘ of undefine的解決方案

    JavaScript報錯:Uncaught TypeError: Cannot set&n

    在 JavaScript 編程中,“Uncaught TypeError: Cannot set property ‘X’ of undefined” 是一種常見的錯誤,這種錯誤通常發(fā)生在試圖給一個未定義的對象的屬性賦值時,本文介紹了JavaScript報錯的解決方案,需要的朋友可以參考下
    2024-07-07
  • Sublime Text 3常用插件及安裝方法

    Sublime Text 3常用插件及安裝方法

    這篇文章主要介紹了Sublime Text 3常用插件及安裝方法的相關(guān)資料,需要的朋友可以參考下
    2015-12-12

最新評論

疏勒县| 绥江县| 贡觉县| 榕江县| 桑植县| 镇宁| 霞浦县| 屏边| 新巴尔虎右旗| 翁源县| 都江堰市| 兰坪| 永寿县| 嘉义市| 阿克陶县| 孟津县| 岑溪市| 宜宾市| 乌什县| 都匀市| 英山县| 长寿区| 庆城县| 石景山区| 青河县| 平远县| 锦州市| 巴里| 手游| 荥经县| 涞源县| 博罗县| 文水县| 翁源县| 铜川市| 封开县| 贡觉县| 陵川县| 西丰县| 安溪县| 汉寿县|