




版權(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 </span&g
13、t;<span id="stats_article_count">文章 - 0 </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)圖片放大鏡效果。 <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> <!doctype html><span style="color: #008080;"> 2</span> <html><span style="color: #008080;"> 3</span> <head><span style="color: #008080;"> 4</span>
19、; <meta charset="UTF-8"><span style="color: #008080;"> 5</span> <title>Document</title><span style="color: #008080;"> 6</span> <style type="text/css"><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> </style><span style="color: #008080;"> 55</span> </head>
42、;<span style="color: #008080;"> 56</span> <body><span style="color: #008080;"> 57</span> <div class="small-box" id="smallBox"><span style="color: #008080;"> 58</span> <img src=&qu
43、ot;img1.jpg"/><span style="color: #008080;"> 59</span> <div class="tool" id="tool"></div><span style="color: #008080;"> 60</span> </div><span style="color: #008080;">
44、 61</span> <div class="big-box" id="bigBox"><span style="color: #008080;"> 62</span> <img src="img1.jpg" id="bigImg" /><span style="color: #008080;"> 63</span> </div>&l
45、t;span style="color: #008080;"> 64</span> <script><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<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<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><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><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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030年中國非保溫鋼制門行業(yè)市場現(xiàn)狀分析規(guī)劃研究報(bào)告
- 2025-2030年中國除雪車行業(yè)競爭格局及前景趨勢預(yù)測報(bào)告
- 2025-2030年中國防曬品市場運(yùn)行態(tài)勢及投資前景規(guī)劃研究報(bào)告
- 2025-2030年中國鐵水脫硫噴槍市場運(yùn)行現(xiàn)狀及發(fā)展趨勢預(yù)測報(bào)告
- 2025-2030年中國鎢銅市場運(yùn)營狀況及發(fā)展前景分析報(bào)告
- 2025-2030年中國重點(diǎn)地區(qū)文物保護(hù)工程市場十三五規(guī)劃與投資戰(zhàn)略研究報(bào)告
- 2025-2030年中國醬菜、辣白菜未來運(yùn)營趨勢及發(fā)展盈利分析報(bào)告
- 2025-2030年中國藝術(shù)陶瓷行業(yè)市場現(xiàn)狀調(diào)研與前景規(guī)模預(yù)測報(bào)告
- 2025-2030年中國纖維素行業(yè)需求現(xiàn)狀及發(fā)展趨勢分析報(bào)告
- 2025貴州省安全員-B證(項(xiàng)目經(jīng)理)考試題庫
- 中央2025年中國科協(xié)所屬單位招聘社會在職人員14人筆試歷年參考題庫附帶答案詳解-1
- 中華人民共和國保守國家秘密法實(shí)施條例培訓(xùn)課件
- 2024年全國統(tǒng)一高考英語試卷(新課標(biāo)Ⅰ卷)含答案
- 2024年認(rèn)證行業(yè)法律法規(guī)及認(rèn)證基礎(chǔ)知識 CCAA年度確認(rèn) 試題與答案
- 2024年濰坊工程職業(yè)學(xué)院高職單招(英語/數(shù)學(xué)/語文)筆試歷年參考題庫含答案解析
- 部編版一年級語文下冊全冊分層作業(yè)設(shè)計(jì)
- 化妝品批生產(chǎn)記錄
- Excel數(shù)據(jù)透視表培訓(xùn)PPT課件
- 化工車間布置原則
- 硬筆書法紙(A3)
- 【公開課課件】高三英語二輪復(fù)習(xí)polish writing
評論
0/150
提交評論