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

js運(yùn)動(dòng)事件函數(shù)詳解

 更新時(shí)間:2022年02月09日 11:17:43   作者:測(cè)試貓  
這篇文章主要為大家詳細(xì)介紹了JavaScript運(yùn)動(dòng)事件函數(shù),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了js運(yùn)動(dòng)事件函數(shù),供大家參考,具體內(nèi)容如下

HTML

<div id="breedsdog">
<h2 class="title">The Dog</h2>
<p class="describe">Split between cat,belong to the cat family,cat,cat,is the world's more widely<br>
in the family pet.Cats ancestors is presumably desert cats</p>
<div class="breedsdog1">
<div class="img">
<img src="img2/labrador.jpg"/>
<a class="lookdog" href="#"></a>
</div>
<div class="img_txt">
<p class="chinese">拉布拉多</p>
<p class="english">Labrador</p>
<p class="introduce">
拉布拉多獵犬因原產(chǎn)地在加拿大的紐芬蘭與拉布拉多省而得名。拉布拉多犬是一種中大型犬類(lèi),個(gè)性忠誠(chéng)、大氣、憨厚、溫和、陽(yáng)光、開(kāi)朗、活潑,智商極高,也對(duì)人很友善,是非常適合被選作經(jīng)常出入公共場(chǎng)合的導(dǎo)盲犬或地鐵警犬及搜救犬和其他工作犬的狗品種,跟哈士奇(西伯利亞雪撬犬)和金毛獵犬并列三大無(wú)攻擊性犬類(lèi),拉布拉多智商位列世界犬類(lèi)第七。
</p>
</div>
</div>

</div>

CSS布局樣式省略

現(xiàn)在a.lookdog的樣式我設(shè)為position:absolutely,寬高設(shè)為0。實(shí)現(xiàn)的特效:當(dāng)鼠標(biāo)移入div.img上,實(shí)現(xiàn)a.lookdog的寬高自動(dòng)展開(kāi)的緩沖動(dòng)畫(huà),并且展開(kāi)完畢后,透明度變低的遮罩背景圖層。當(dāng)然我們用css3也能實(shí)現(xiàn)這種特效,但是css3的坑是不完全支持IE瀏覽器,所以用javascript來(lái)實(shí)現(xiàn)運(yùn)動(dòng)緩沖動(dòng)畫(huà)是最理想的。

javascript

函數(shù)封裝部分

//根據(jù)類(lèi)名和父對(duì)象ID獲取屬性節(jié)點(diǎn),解決getelementsByClass對(duì)瀏覽器的兼容性問(wèn)題
function getbyclass(classname,parent){

    //傳入ID獲取父節(jié)點(diǎn),如果該參數(shù)為空就為document
 
var oParent=parent?document.getElementById(parent):document;

    //定義一個(gè)空數(shù)組來(lái)存放屬性節(jié)點(diǎn)
 var els=[];

    //定義一個(gè)數(shù)組存放父對(duì)象的所有子節(jié)點(diǎn)

 
var elements=oParent.getElementsByTagName("*");

    //遍歷所有子節(jié)點(diǎn),根據(jù)類(lèi)名把所有的子對(duì)象找出來(lái),并且放在els數(shù)組內(nèi)
 for(var i=0;i<elements.length;i++){
 if(elements[i].className==classname){
 els.push(elements[i]);
 }
 }
 return els;
 }

//根據(jù)對(duì)象要獲取的屬性名來(lái)得到屬性值

function getStyle(obj,stylename){

    //針對(duì)IE瀏覽器獲取樣式方法
if(obj.currentStyle){
return obj.currentStyle[stylename];

    //針對(duì)其他瀏覽器獲取樣式方法
}else if(getComputedStyle(obj,false)){
return getComputedStyle(obj,false)[stylename];
}
}

//緩沖動(dòng)畫(huà)主函數(shù),傳參類(lèi)型:(對(duì)象,jaso格式要改變的樣式值(可多個(gè)),緩沖系數(shù),執(zhí)行周期時(shí)間(值越小速度越快,越大越慢),回調(diào)函數(shù)(是否有多次動(dòng)畫(huà)的播放,可有可無(wú)))

function MoveJason(obj,jason,average,cycle,continuefunction){
clearInterval(obj.timer);
obj.timer=setInterval(function(){
for(var stylename in jason){//針對(duì)多效果的緩沖動(dòng)畫(huà)
// obj.style[stylename]=jason[stylename];
// }
if(stylename=="opacity"){
var offvalue=Math.round(parseFloat(getStyle(obj,stylename))*100);
var speed=(jason[stylename]-offvalue)/average;
  speed=speed>0?Math.ceil(speed):Math.floor(speed);
  if(speed==0){
clearInterval(obj.timer);
if(continuefunction) continuefunction();//回調(diào)函數(shù),判斷是否有多次執(zhí)行
  }else{
obj.style[stylename]=(offvalue+speed)/100;
obj.style.filter="alpha(opacity:"+(offvalue+speed)+")";
  }
}else{
var offvalue=parseInt(getStyle(obj,stylename));
var speed=(jason[stylename]-offvalue)/average;
  speed=speed>0?Math.ceil(speed):Math.floor(speed);
  if(speed==0){
clearInterval(obj.timer);
if(continuefunction) continuefunction();
  }else{
obj.style[stylename]=offvalue+speed+"px";
  }
  }
}
},cycle);
}

頁(yè)面初始化函數(shù),方法調(diào)用

window.onload=function(){

var imgdog=getbyclass("img","breedsdog");//在父對(duì)象breedsdog上找到所有的div.img

    //給所有的div.img添加鼠標(biāo)移入,鼠標(biāo)移出事件
for(var i=0;i<imgdog.length;i++){

imgdog[i].onmouseover=function(){
var obj=this.children[1];
            MoveJason(obj,{"height":376,"width":206},5,30,function(){//緩沖動(dòng)畫(huà)的函數(shù)調(diào)用,當(dāng)執(zhí)行完寬高值的緩沖變化,再回調(diào)函數(shù)執(zhí)行透明度緩沖變化。以下同理,可以多層嵌套實(shí)現(xiàn)多個(gè)回調(diào)。
        MoveJason(obj,{"opacity":30},5,30);
    });
}
imgdog[i].onmouseout=function(){
var obj=this.children[1];
            MoveJason(obj,{"height":0,"width":0},5,30,function(){
        MoveJason(obj,{"opacity":80},5,30);
    });
}
}

}

鼠標(biāo)移入移出效果圖如下,我多加個(gè)了幾個(gè)div.img,可以看到等寬高變完,然后透明度發(fā)生變化。

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

相關(guān)文章

  • JS數(shù)組方法join()用法實(shí)例分析

    JS數(shù)組方法join()用法實(shí)例分析

    這篇文章主要介紹了JS數(shù)組方法join()用法,結(jié)合實(shí)例形式分析了JS數(shù)組join()方法具體功能、定義、使用方法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下
    2020-01-01
  • 加載 Javascript 最佳實(shí)踐

    加載 Javascript 最佳實(shí)踐

    相信很多與頁(yè)面打過(guò)交道的同學(xué)都對(duì) Yahoo 的 Best Practices for Speeding Up Your Web Site 不陌生
    2011-10-10
  • Object.defineproperty方法示例詳解

    Object.defineproperty方法示例詳解

    Object.defineproperty?的作用就是直接在一個(gè)對(duì)象上定義一個(gè)新屬性,或者修改一個(gè)已經(jīng)存在的屬性,這篇文章主要介紹了Object.defineproperty方法,需要的朋友可以參考下
    2022-12-12
  • 微信小程序公用參數(shù)與公用方法用法示例

    微信小程序公用參數(shù)與公用方法用法示例

    這篇文章主要介紹了微信小程序公用參數(shù)與公用方法用法,結(jié)合實(shí)例形式分析了微信小程序中公用參數(shù)與公用方法的簡(jiǎn)單定義與使用相關(guān)操作技巧,需要的朋友可以參考下
    2019-01-01
  • TS中最常見(jiàn)的聲明合并(接口合并)

    TS中最常見(jiàn)的聲明合并(接口合并)

    這篇文章主要介紹了TS中最常見(jiàn)的聲明合并:接口合并,TS中的聲明合并,指的就是編譯器會(huì)針對(duì)同名的聲明合并為一個(gè)聲明,合并后的聲明會(huì)同時(shí)擁有原先兩個(gè)或多個(gè)聲明的特性,接口的合并也是一樣,它會(huì)將雙方的成員放到一個(gè)同名的接口里,更多詳細(xì)內(nèi)容請(qǐng)參考下面文章內(nèi)容

    2021-12-12
  • js貪吃蛇游戲?qū)崿F(xiàn)思路和源碼

    js貪吃蛇游戲?qū)崿F(xiàn)思路和源碼

    這篇文章主要為大家介紹了js貪吃蛇游戲?qū)崿F(xiàn)思路,并分享貪吃蛇游戲源碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-04-04
  • JavaScript中break、continue和return的用法區(qū)別實(shí)例分析

    JavaScript中break、continue和return的用法區(qū)別實(shí)例分析

    這篇文章主要介紹了JavaScript中break、continue和return的用法區(qū)別,結(jié)合實(shí)例形式詳細(xì)對(duì)比分析了JavaScript中break、continue和return的基本功能、使用方法、區(qū)別與操作注意事項(xiàng),需要的朋友可以參考下
    2020-03-03
  • 基于javascript實(shí)現(xiàn)九九乘法表

    基于javascript實(shí)現(xiàn)九九乘法表

    這篇文章主要為大家詳細(xì)介紹了基于javascript實(shí)現(xiàn)九九乘法表的相關(guān)資料,感興趣的小伙伴們可以參考一下
    2016-03-03
  • Javascript和jquery在selenium的使用過(guò)程

    Javascript和jquery在selenium的使用過(guò)程

    這篇文章主要介紹了Javascript和jquery在selenium的使用過(guò)程,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-10-10
  • Javascript獲取background屬性中url的值

    Javascript獲取background屬性中url的值

    Javascript獲取CSS中屬性值方法有很多,今天工作的時(shí)候遇到了一個(gè)問(wèn)題是需要利用Javascript獲取css中background-img屬性u(píng)rl的值,通過(guò)查閱網(wǎng)站的資料找到了解決方法,現(xiàn)在將方法分享給大家,有需要的朋友們們可以參考借鑒,下面來(lái)一起看看吧。
    2016-10-10

最新評(píng)論