原生javascript實(shí)現(xiàn)圖片放大鏡效果_第1頁
原生javascript實(shí)現(xiàn)圖片放大鏡效果_第2頁
原生javascript實(shí)現(xiàn)圖片放大鏡效果_第3頁
原生javascript實(shí)現(xiàn)圖片放大鏡效果_第4頁
原生javascript實(shí)現(xiàn)圖片放大鏡效果_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、<!DOCTYPE html><!- saved from url=(0042) -><html lang="zh-cn"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta charset="utf-8"><meta name="viewport" content="width=device-width

2、, initial-scale=1"><title>原生javascript實(shí)現(xiàn)圖片放大鏡效果 - 依然仰望 - 博客園</title><link type="text/css" rel="stylesheet" href="./原生javascript實(shí)現(xiàn)圖片放大鏡效果 - 依然仰望 - 博客園_files/blog-common.css"><link id="MainCss" type="text/css" rel="sty

3、lesheet" href="./原生javascript實(shí)現(xiàn)圖片放大鏡效果 - 依然仰望 - 博客園_files/bundle-darkgreentrip.css"><link type="text/css" rel="stylesheet" href="./原生javascript實(shí)現(xiàn)圖片放大鏡效果 - 依然仰望 - 博客園_files/325161.css"><link id="mobile-style" media="only screen a

4、nd (max-width: 768px)" type="text/css" rel="stylesheet" href="./原生javascript實(shí)現(xiàn)圖片放大鏡效果 - 依然仰望 - 博客園_files/bundle-darkgreentrip-mobile.css"><link title="RSS" type="application/rss+xml" rel="alternate" href="<link title=&quo

5、t;RSD" type="application/rsd+xml" rel="EditURI" href="<link type="application/wlwmanifest+xml" rel="wlwmanifest" href="<script async="" src="./原生javascript實(shí)現(xiàn)圖片放大鏡效果 - 依然仰望 - 博客園_files/analytics.js"></script><

6、;script type="text/javascript" src="./原生javascript實(shí)現(xiàn)圖片放大鏡效果 - 依然仰望 - 博客園_files/encoder.js"></script><script src="./原生javascript實(shí)現(xiàn)圖片放大鏡效果 - 依然仰望 - 博客園_files/jquery.js" type="text/javascript"></script> <script type="text/javascript&q

7、uot;>var currentBlogApp = 'wswq', cb_enable_mathjax=false;var isLogined=false;</script><script src="./原生javascript實(shí)現(xiàn)圖片放大鏡效果 - 依然仰望 - 博客園_files/blog-common.js" type="text/javascript"></script></head><body><a name="top"></

8、a><!-PageBeginHtml Block Begin-><div id="forme"><a target="_blank" href=" src="./原生javascript實(shí)現(xiàn)圖片放大鏡效果 - 依然仰望 - 博客園_files/o_fro.png" title="Frok me on GitHub"></a></div><!-PageBeginHtml Block End-><!-done-><

9、div id="home"><div id="header"><div id="blogTitle"><a id="lnkBlogLogo" href=" id="blogLogo" src="./原生javascript實(shí)現(xiàn)圖片放大鏡效果 - 依然仰望 - 博客園_files/logo.gif" alt="返回主頁"></a><!-done-><h1><a id

10、="Header1_HeaderTitle" class="headermaintitle" href="<h2>人生苦短,必須果敢。</h2></div><!-end: blogTitle 博客的標(biāo)題和副標(biāo)題 -><div id="navigator"><ul id="navList"><li><a id="blog_nav_sitehome" class="menu" hr

11、ef="<li><a id="blog_nav_myhome" class="menu" href="<li><a id="blog_nav_newpost" class="menu" rel="nofollow" href="<li><a id="blog_nav_contact" class="menu" rel="nofollow" href=&q

12、uot;<li><!-></li><li><a id="blog_nav_admin" class="menu" rel="nofollow" href="</ul><div class="blogStats"><div id="blog_stats"><span id="stats_post_count">隨筆 - 18&nbsp; </span&g

13、t;<span id="stats_article_count">文章 - 0&nbsp; </span><span id="stats-comment_count">評論 - 28</span></div></div><!-end: blogStats -></div><!-end: navigator 博客導(dǎo)航欄 -></div><!-end: header 頭部 -><div id="main&

14、quot;><div id="mainContent"><div class="forFlow"><div id="post_detail"><!-done-><div id="topics"><div class="post"><h1 class="postTitle"><a id="cb_post_title_url" class="postTit

15、le2" href="./原生javascript實(shí)現(xiàn)圖片放大鏡效果 - 依然仰望 - 博客園_files/原生javascript實(shí)現(xiàn)圖片放大鏡效果 - 依然仰望 - 博客園.html">原生javascript實(shí)現(xiàn)圖片放大鏡效果</a></h1><div class="clear"></div><div class="postBody"><div id="cnblogs_post_body"><p>當(dāng)我們在電商網(wǎng)

16、站上購買商品時,經(jīng)常會看到這樣一種效果,當(dāng)我們把鼠標(biāo)放到我們?yōu)g覽的商品圖片上時,會出現(xiàn)類似放大鏡一樣的一定區(qū)域的放大效果,方便消費(fèi)者觀察商品。今天我對這一技術(shù),進(jìn)行簡單實(shí)現(xiàn),實(shí)現(xiàn)圖片放大鏡效果。&nbsp;<br>我在代碼中進(jìn)行了代碼編寫的思路的說明和詳細(xì)的代碼注釋,方便讀者,請看代碼:</p><div class="cnblogs_code"><div class="cnblogs_code_toolbar"><span class="cnblogs_code_copy"

17、><a href="javascript:void(0);" onclick="copyCnblogsCode(this)" title="復(fù)制代碼"><img src="./原生javascript實(shí)現(xiàn)圖片放大鏡效果 - 依然仰望 - 博客園_files/copycode.gif" alt="復(fù)制代碼"></a></span></div><pre deep="10"><span style=

18、"color: #008080;"> 1</span> &lt;!doctype html&gt;<span style="color: #008080;"> 2</span> &lt;html&gt;<span style="color: #008080;"> 3</span> &lt;head&gt;<span style="color: #008080;"> 4</span>

19、; &lt;meta charset="UTF-8"&gt;<span style="color: #008080;"> 5</span> &lt;title&gt;Document&lt;/title&gt;<span style="color: #008080;"> 6</span> &lt;style type="text/css"&gt;<span style="color: #0

20、08080;"> 7</span> *<span style="color: #000000;">margin:0px; padding:0px;</span><span style="color: #008080;"> 8</span> .small-<span style="color: #000000;">box </span><span style="color: #008080;"> 9<

21、/span> <span style="color: #000000;"> width:300px;</span><span style="color: #008080;"> 10</span> <span style="color: #000000;"> height:300px;</span><span style="color: #008080;"> 11</span> margin-<span sty

22、le="color: #000000;">left:100px;</span><span style="color: #008080;"> 12</span> margin-<span style="color: #000000;">top:100px;</span><span style="color: #008080;"> 13</span> <span style="color: #000000;&quo

23、t;> border:1px #ccc solid;</span><span style="color: #008080;"> 14</span> <span style="color: #000000;"> cursor:move;</span><span style="color: #008080;"> 15</span> <span style="color: #0000ff;">float</span

24、><span style="color: #000000;">:left;</span><span style="color: #008080;"> 16</span> <span style="color: #000000;"> position:relative;</span><span style="color: #008080;"> 17</span> <span style="color:

25、 #000000;"> </span><span style="color: #008080;"> 18</span> .small-<span style="color: #000000;">box img </span><span style="color: #008080;"> 19</span> <span style="color: #000000;"> width:300px;</spa

26、n><span style="color: #008080;"> 20</span> <span style="color: #000000;"> height:300px;</span><span style="color: #008080;"> 21</span> <span style="color: #000000;"> </span><span style="color: #008080;

27、"> 22</span> <span style="color: #000000;"> .tool </span><span style="color: #008080;"> 23</span> <span style="color: #000000;"> width:150px;</span><span style="color: #008080;"> 24</span> <span

28、style="color: #000000;"> height:150px;</span><span style="color: #008080;"> 25</span> background-<span style="color: #000000;">color:gold;</span><span style="color: #008080;"> 26</span> opacity:0.6<span style=&qu

29、ot;color: #000000;"></span><span style="color: #008080;"> 27</span> filter:alpha(opacity=60<span style="color: #000000;">);</span><span style="color: #008080;"> 28</span> <span style="color: #000000;"> po

30、sition:absolute;</span><span style="color: #008080;"> 29</span> <span style="color: #000000;"> left:0px;</span><span style="color: #008080;"> 30</span> <span style="color: #000000;"> top:0px;</span><span

31、 style="color: #008080;"> 31</span> <span style="color: #000000;"> display:none;</span><span style="color: #008080;"> 32</span> <span style="color: #000000;"> </span><span style="color: #008080;"> 33

32、</span> <span style="color: #000000;"> .tool.active </span><span style="color: #008080;"> 34</span> <span style="color: #000000;"> display:block;</span><span style="color: #008080;"> 35</span> <span styl

33、e="color: #000000;"> </span><span style="color: #008080;"> 36</span> .big-<span style="color: #000000;">box </span><span style="color: #008080;"> 37</span> <span style="color: #000000;"> width:300px;

34、</span><span style="color: #008080;"> 38</span> <span style="color: #000000;"> height:300px;</span><span style="color: #008080;"> 39</span> <span style="color: #000000;"> border:1px #ccc solid;</span><sp

35、an style="color: #008080;"> 40</span> <span style="color: #000000;"> overflow:hidden;</span><span style="color: #008080;"> 41</span> <span style="color: #0000ff;">float</span><span style="color: #000000;&quo

36、t;>:left;</span><span style="color: #008080;"> 42</span> margin-<span style="color: #000000;">top:100px;</span><span style="color: #008080;"> 43</span> <span style="color: #000000;"> position:relative;</spa

37、n><span style="color: #008080;"> 44</span> <span style="color: #000000;"> display:none;</span><span style="color: #008080;"> 45</span> <span style="color: #000000;"> </span><span style="color: #008080;

38、"> 46</span> .big-<span style="color: #000000;">box.active </span><span style="color: #008080;"> 47</span> <span style="color: #000000;"> display:block;</span><span style="color: #008080;"> 48</span>

39、; <span style="color: #000000;"> </span><span style="color: #008080;"> 49</span> .big-<span style="color: #000000;">box img </span><span style="color: #008080;"> 50</span> <span style="color: #000000;&quo

40、t;> width:600px;</span><span style="color: #008080;"> 51</span> <span style="color: #000000;"> height:600px;</span><span style="color: #008080;"> 52</span> <span style="color: #000000;"> position:absolute;<

41、/span><span style="color: #008080;"> 53</span> <span style="color: #000000;"> </span><span style="color: #008080;"> 54</span> &lt;/style&gt;<span style="color: #008080;"> 55</span> &lt;/head&gt

42、;<span style="color: #008080;"> 56</span> &lt;body&gt;<span style="color: #008080;"> 57</span> &lt;div class="small-box" id="smallBox"&gt;<span style="color: #008080;"> 58</span> &lt;img src=&qu

43、ot;img1.jpg"/&gt;<span style="color: #008080;"> 59</span> &lt;div class="tool" id="tool"&gt;&lt;/div&gt;<span style="color: #008080;"> 60</span> &lt;/div&gt;<span style="color: #008080;">

44、 61</span> &lt;div class="big-box" id="bigBox"&gt;<span style="color: #008080;"> 62</span> &lt;img src="img1.jpg" id="bigImg" /&gt;<span style="color: #008080;"> 63</span> &lt;/div&gt;&l

45、t;span style="color: #008080;"> 64</span> &lt;script&gt;<span style="color: #008080;"> 65</span> <span style="color: #008000;">/*</span><span style="color: #008080;"> 66</span> <span style="color: #0

46、08000;"> 第一步:當(dāng)頁面加載完后,獲取所要操作的節(jié)點(diǎn)對象。</span><span style="color: #008080;"> 67</span> <span style="color: #008000;"> 第二步:為smallBox添加一個鼠標(biāo)浮動事件</span><span style="color: #008080;"> 68</span> <span style="color: #008000;&

47、quot;> 當(dāng)鼠標(biāo)浮動到smallBox可視區(qū)域的時候,顯示出小黃盒子tool</span><span style="color: #008080;"> 69</span> <span style="color: #008000;"> 和右邊的大盒子(小黃盒子的放大版)bigBox</span><span style="color: #008080;"> 70</span> <span style="color: #008000

48、;"> 添加active</span><span style="color: #008080;"> 71</span> <span style="color: #008080;"> 72</span> <span style="color: #008000;"> 為smallBox添加一個鼠標(biāo)離開事件</span><span style="color: #008080;"> 73</span>

49、 <span style="color: #008000;"> 隱藏小黃盒子和右邊的大盒子</span><span style="color: #008080;"> 74</span> <span style="color: #008000;"> 去掉active</span><span style="color: #008080;"> 75</span> <span style="color: #008

50、080;"> 76</span> <span style="color: #008000;"> 第三步:為smallBox添加一個鼠標(biāo)移動事件</span><span style="color: #008080;"> 77</span> <span style="color: #008000;"> 小黃盒子tool要跟著鼠標(biāo)的坐標(biāo)移動</span><span style="color: #008080;">

51、; 78</span> <span style="color: #008000;"> 右邊的大盒子里的圖片也跟著指定的比例移動</span><span style="color: #008080;"> 79</span> <span style="color: #008000;">*/</span><span style="color: #008080;"> 80</span> <span style=

52、"color: #0000ff;">var</span> smallBox = document.getElementById("smallBox");<span style="color: #008000;">/</span><span style="color: #008000;">小盒子</span><span style="color: #008080;"> 81</span> <span s

53、tyle="color: #0000ff;">var</span> tool = document.getElementById("tool");<span style="color: #008000;">/</span><span style="color: #008000;">小盒子中的黃色區(qū)域</span><span style="color: #008080;"> 82</span> <spa

54、n style="color: #0000ff;">var</span> bigBox = document.getElementById("bigBox");<span style="color: #008000;">/</span><span style="color: #008000;">大盒子</span><span style="color: #008080;"> 83</span> <sp

55、an style="color: #0000ff;">var</span> bigImg = document.getElementById("bigImg");<span style="color: #008000;">/</span><span style="color: #008000;">放大的圖片</span><span style="color: #008080;"> 84</span> <

56、;span style="color: #008000;">/</span><span style="color: #008000;">鼠標(biāo)進(jìn)入小盒子區(qū)域內(nèi),顯示黃色區(qū)域和大盒子</span><span style="color: #008080;"> 85</span> smallBox.onmouseenter = <span style="color: #0000ff;">function</span><span

57、style="color: #000000;">()</span><span style="color: #008080;"> 86</span> tool.className = "tool active"<span style="color: #000000;"></span><span style="color: #008080;"> 87</span> bigBox.className = &quo

58、t;big-box active"<span style="color: #000000;"></span><span style="color: #008080;"> 88</span> <span style="color: #000000;"> </span><span style="color: #008080;"> 89</span> <span style="color: #0080

59、00;">/</span><span style="color: #008000;">鼠標(biāo)離開小盒子區(qū)域,不顯示黃色區(qū)域和大盒子</span><span style="color: #008080;"> 90</span> smallBox.onmouseleave = <span style="color: #0000ff;">function</span><span style="color: #000000;&qu

60、ot;>()</span><span style="color: #008080;"> 91</span> tool.className = "tool"<span style="color: #000000;"></span><span style="color: #008080;"> 92</span> bigBox.className = "big-box"<span style="c

61、olor: #000000;"></span><span style="color: #008080;"> 93</span> <span style="color: #000000;"> </span><span style="color: #008080;"> 94</span> <span style="color: #008000;">/</span><span style=&q

62、uot;color: #008000;">鼠標(biāo)在小盒子內(nèi)移動</span><span style="color: #008080;"> 95</span> smallBox.onmousemove = <span style="color: #0000ff;">function</span><span style="color: #000000;">(e)</span><span style="color: #00808

63、0;"> 96</span> <span style="color: #0000ff;">var</span> _e = window.event|e;<span style="color: #008000;">/</span><span style="color: #008000;">事件對象</span><span style="color: #008080;"> 97</span> &l

64、t;span style="color: #0000ff;">var</span> x = _e.clientX-<span style="color: #0000ff;">this</span>.offsetLeft-tool.offsetWidth/2;/事件對象在小盒子內(nèi)的橫向偏移量<span style="color: #008080;"> 98</span> <span style="color: #0000ff;">var&l

65、t;/span> y = _e.clientY-<span style="color: #0000ff;">this</span>.offsetTop-tool.offsetHeight/2;/豎向偏移量<span style="color: #008080;"> 99</span> <span style="color: #0000ff;">if</span>(x&lt;0<span style="color: #000000;&q

66、uot;>)</span><span style="color: #008080;">100</span> x = 0;<span style="color: #008000;">/</span><span style="color: #008000;">當(dāng)左偏移出小盒子時,設(shè)為0</span><span style="color: #008080;">101</span> <span style

67、="color: #000000;"> </span><span style="color: #008080;">102</span> <span style="color: #0000ff;">if</span>(y&lt;0<span style="color: #000000;">)</span><span style="color: #008080;">103</span&

68、gt; y = 0;<span style="color: #008000;">/</span><span style="color: #008000;">當(dāng)上偏移出小盒子時,設(shè)為0</span><span style="color: #008080;">104</span> <span style="color: #000000;"> </span><span style="color: #008080

69、;">105</span> <span style="color: #0000ff;">if</span>(x&gt;<span style="color: #0000ff;">this</span>.offsetWidth-<span style="color: #000000;">tool.offsetWidth)</span><span style="color: #008080;">106

70、</span> x = <span style="color: #0000ff;">this</span>.offsetWidth-tool.offsetWidth;<span style="color: #008000;">/</span><span style="color: #008000;">當(dāng)右偏移出小盒子時,設(shè)為小盒子的寬度-黃色放大區(qū)域?qū)挾?lt;/span><span style="color: #008080;"&

71、gt;107</span> <span style="color: #000000;"> </span><span style="color: #008080;">108</span> <span style="color: #0000ff;">if</span>(y&gt;<span style="color: #0000ff;">this</span>.offsetHeight-<span

72、style="color: #000000;">tool.offsetHeight)</span><span style="color: #008080;">109</span> y = <span style="color: #0000ff;">this</span>.offsetHeight-tool.offsetHeight;<span style="color: #008000;">/</span><span s

73、tyle="color: #008000;">當(dāng)下偏移出小盒子時,設(shè)為小盒子的高度-黃色放大區(qū)域高度</span><span style="color: #008080;">110</span> <span style="color: #000000;"> </span><span style="color: #008080;">111</span> tool.style.left = x + "px"&l

74、t;span style="color: #008000;">/</span><span style="color: #008000;">黃色放大區(qū)域距離小盒子左偏距</span><span style="color: #008080;">112</span> tool.style.top = y + "px"<span style="color: #008000;">/</span><span st

75、yle="color: #008000;">黃色放大區(qū)域距離小盒子上偏距</span><span style="color: #008080;">113</span> bigImg.style.left = -x*2 + "px"<span style="color: #008000;">/</span><span style="color: #008000;">放大圖片移動方向相反,偏移距離加倍</span><span style="color: #008080;">114</span> bigImg.style.top = -y*2 + "px"<span style="color: #000000;"></span><span style="color

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論