Rumah > hujung hadapan web > tutorial js > 如何实现淘宝放大镜实例

如何实现淘宝放大镜实例

一个新手
Lepaskan: 2017-09-26 10:25:23
asal
1222 orang telah melayarinya

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>放大镜</title>

 <link rel="stylesheet" type="text/css" href="style/css.css">

</head>

<script type="text/javascript">

     

</script>

<body>

 

<p id="p1">

 

    <p class="small_pic">

        <span class="mark"></span>

        <span class="float_layer"></span>

        <img src="images/b.jpg" alt="" longdesc="" />

    </p>

 

    <p class="big_pic">

        <img src="images/a.jpg" alt=""longdesc="" />

    </p>

 

</p>

 

</body>

<script src="./js/js.js"></script> 

</html>

Salin selepas log masuk

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

function getByClass(oParent,sClass){

    var aEle=oParent.getElementsByTagName(&#39;*&#39;);

    var aTmp=[];

    var i=0;

    for(i=0;i<aEle.length;i++){

        if(aEle[i].className==sClass){

            aTmp.push(aEle[i]);

        }

    }

    return aTmp;

 

}

var op = document.getElementById(&#39;p1&#39;);

var oMark = getByClass(op,&#39;mark&#39;)[0];

var oFloat=getByClass(op,&#39;float_layer&#39;)[0];

var oBg=getByClass(op,&#39;big_pic&#39;)[0];

var oSm=getByClass(op,&#39;small_pic&#39;)[0];

var oImg=oBg.getElementsByTagName(&#39;img&#39;)[0];

oMark.onmouseover=function(){

    oFloat.style.display=&#39;block&#39;;

    oBg.style.display=&#39;block&#39;;

}

oMark.onmouseout=function(){

    oFloat.style.display=&#39;none&#39;;

    oBg.style.display=&#39;none&#39;;

}  

oMark.onmousemove=function(ev){

    var oEvent=ev||event;

    var disX=oEvent.clientX-op.offsetLeft-oSm.offsetLeft-oFloat.offsetWidth/2;

    var disY=oEvent.clientY-op.offsetTop-oSm.offsetTop-oFloat.offsetHeight/2;

    var l=disX, t=disY;

    l<0?l=0:l>(oMark.offsetWidth-oFloat.offsetWidth)?l=oMark.offsetWidth-oFloat.offsetWidth:l=disX;

    t<0?t=0:t>(oMark.offsetWidth-oFloat.offsetHeight)?t=oMark.offsetWidth-oFloat.offsetHeight:t=disY;

    // if(l<0){

    //  l=0;

    // }else if(l>oMark.offsetWidth-oFloat.offsetWidth){

    //  l=oMark.offsetWidth-oFloat.offsetWidth;

    // }

    // if(t<0){

    //  t=0;

    // }else if(t>oMark.offsetWidth-oFloat.offsetHeight){

    //  t=oMark.offsetWidth-oFloat.offsetHeight;

    // }

    oFloat.style.left=l+&#39;px&#39;;

    oFloat.style.top=t+&#39;px&#39;;

    var percentX=l/(oMark.offsetWidth-oFloat.offsetWidth);

    var percentY=t/(oMark.offsetHeight-oFloat.offsetHeight);

    oImg.style.left=-(oImg.offsetWidth-oBg.offsetWidth)*percentX +&#39;px&#39;;

    oImg.style.top=-(oImg.offsetHeight-oBg.offsetHeight)*percentY +&#39;px&#39;;

}

Salin selepas log masuk

Atas ialah kandungan terperinci 如何实现淘宝放大镜实例. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan