1. 程式人生 > >用jquery實現放大鏡效果

用jquery實現放大鏡效果

----css程式碼---
*{margin:0;padding:0;
}
.showimg{position:relative;width:450px;height:420px;border:1px solid #f5f5f5;
}
.show{width:450px;height:420px;
}
.product-img img{margin:0 3px;width:60px;height:60px;border:2px solid #FFF;
}
.showbox{position:absolute;top:0;left:0;opacity:0.5;cursor:move;width:225px;height:210px;background-color:lightblue;display:none;
}
.showlarge{position:absolute;overflow:hidden;top:0;left:470px;width:450px;height:420px;border:1px solid #f5f5f5;display:none;
}
.showlarge img{width:900px;height:840px;position:absolute;
}

---html程式碼---
<div class="showimg">
<img class="show" src="img/01.jpg">
<div class="showbox"></div>
<div class="showlarge">
<img src="img/01.jpg">
</div>
</div>
<div class="product-img">
<img src="img/01.jpg">
<img src="img/img1.jpg">
<img src="img/img2.jpg">
<img src="img/img3.jpg">
<img src="img/01.jpg">
</div>
</div>
----js程式碼----
<script type="text/javascript" src="js/jquery-1.8.3.min.js"></script>
<script>

$(function() {
//滑鼠移入產品小圖事件
$(".product-img img").mouseenter(function(){//滑鼠懸浮在不同的產品小圖片時外加黑色邊框並且主圖將其顯示出來
$(".product-img img").css({"border":"2px solid #FFF"});
$(this).css({"border":"2px solid #000"});//this獲取的是當前滑鼠移入的元素,設定黑色邊框
var imgsrc=$(this).attr("src");//獲取當前滑鼠移入元素的src屬性值將其賦值給主圖元素
$(".show").attr("src",imgsrc);
$(".showlarge img").attr("src",imgsrc);//將滑鼠選中的圖傳給放大圖元素的src屬性
});
//滑鼠移入產品主圖時出現放大的細節圖和小框
$(".showimg").mouseenter(function(){
$(".showbox").show();
$(".showlarge").show();
});
//滑鼠在產品主圖移動事件
$(".showimg").mousemove(function(e){
var mousex=e.clientX;//獲取滑鼠當前對於瀏覽器可視區的X座標
var mousey=e.clientY;
var imgx=$(".showimg").offset().left;//獲得產品主圖對於文件的偏移座標
var imgy=$(".showimg").offset().top;
//小框的left值是滑鼠位移減去產品圖元素偏移座標減去小框寬度的一半,使滑鼠保持位於小框的中間
var boxleft=mousex-imgx-$(".showbox").width()/2;//計算小框對於產品主圖元素的距離用來定位
var boxtop=mousey-imgy-$(".showbox").height()/2;
//滑鼠移動小框位置跟著變化
$(".showbox").css({"top":boxtop,"left":boxleft});
//計算小框移動的最大範圍
var maxtop=$(".showimg").height()-$(".showbox").height();
var maxleft=$(".showimg").width()-$(".showbox").width();
//判斷小框移動的邊界
if(boxtop<=0){
$(".showbox").css("top","0");
}else if(boxtop>maxtop){
$(".showbox").css("top",maxtop);
}
if(boxleft<=0){
$(".showbox").css("left","0");
}else if(boxleft>maxleft){
$(".showbox").css("left",maxleft);
}
//設定放大圖的位置偏移量,獲取小框偏移量乘放大倍數,注意!!!放大圖偏移量應設定為負值
var showleft=-$(".showbox").position().left*2;//position()方法返回當前元素相對於父元素的位置(偏移)
var showtop=-$(".showbox").position().top*2;
//此處獲取小框偏移量不應該使用前面計算出來的boxtop和boxleft值,因可能會出現超出移動的邊界
$(".showlarge img").css({"left":showleft,"top":showtop});
});
//滑鼠離開產品主圖元素事件,此處使用mouseleave事件只有在滑鼠指標離開被選元素時才會觸發,mouseout滑鼠指標離開被選元素和其任何子元素都會觸發。
$(".showimg").mouseleave(function(){
$(".showbox").hide();//小框隱藏
$(".showlarge").hide();//放大圖隱藏
});

});
</script>

 

實現的效果如下:

相關推薦

jquery實現放大鏡效果

----css程式碼--- *{margin:0;padding:0;} .showimg{position:relative;width:450px;height:420px;border:1px solid #f5f5f5;} .show{width:450px;height:420px; } .prod

jquery實現放大鏡效果

實現 距離 top use jpg border rgb absolute order 放大鏡效果,被廣泛的應用於商城的商品展示,其效果相比大家都不陌生。其原理也不是很難,那麽今天就實現下放大鏡效果!? 主要的CSS樣式:溢出隱藏overflow:hidden,

【前端】jQuery實現瀑布流效果

scrollto title n) 個性 避免 ive gets type turn jQuery實現瀑布流效果 何為瀑布流:   瀑布流,又稱瀑布流式布局。是比較流行的一種網站頁面布局,視覺表現為參差不齊的多欄布局,隨著頁面滾動條向下滾動,這種布局還會不斷加載數據塊並附加

jquery實現仿蘑菇街導航固定頂部的效果

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

jquery實現選項卡效果(非常漂亮,帶動畫效果

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

jQuery實現簡單的DOM操作

追加 匹配 簡單的 rep 兄弟節點 子元素 spa 添加元素 新建 通過jQuery創建元素節點:$oLi = $("<li></li>");這樣我們就創建了一個li標簽 如果想在元素節點中添加文本的話也挺簡單:$oLi = $("<li&g

jquery實現隱藏列表表單的顯示關閉切換以及Ajax方式改動提交相應的那一行的改動內容。

turn jquery enter lag exit none button inpu ner 請勿盜版,轉載請加上出處http://blog.csdn.net/yanlintao1 請勿盜版,轉載請加上出處http://blog.csdn.net/yanli

jQuery實現播放時出現的錯誤

畫面 query 今天 absolut htm 元素 play body 我們    今天,我在項目時,我的朋友讓我給她找錯誤,她說她用jQuery寫視頻的播放,獲取的按鈕也對,使用的方法也對,就是播放不了。     她的思路是這樣的,在剛開始的視頻畫面上有個播放按鈕,她想

jquery實現帶左右按鍵的輪播圖

round 500px asc pub video 記錄 找到 blog span 成品如下: 簡單來說就是點擊“右”按鈕時,轉換到右邊的下一幅圖片,同時上面的小方塊顏色也跟著改變,如果已經是最後一幅圖片,再點擊“右”,則轉換到第一幅圖片,是直接向左移找到第一幅圖的,明天

JQuery實現ajax技術的常用方法

this 鏈接 js實現 一個 nbsp cal 總結 emp 回調函數 在我的前一篇用js實現ajax的三種技術中,我提到了怎麽用原生的js代碼去實現ajax技術,但是 可以看到,代碼相對於來說還是比較多,在我們實際的開發中,我們用到的比較多的技術是用jqu

原生JS實現放大鏡效果

use 瀏覽器 賦值 uri 字符串 () solid adding clas 效果: 1、 鼠標放上去會有半透明遮罩、右邊會有大圖片局部圖 2、 鼠標移動時右邊的大圖片也會局部移動 放大鏡的關鍵原理: 鼠標在小圖片上移動時,通過捕捉鼠標在小圖片上的位置,定位大圖片的相

js實現放大鏡效果

設置 信息 鼠標 放大 ack 視口 seo bim wid html部分 <div id="box"> <img width="100%" height="100%" src="images/1.png" alt="#">

jQuery 實現表單驗證(轉載)

失去焦點 cli on() 獲得 itl 文本框 特殊 體驗 格式 jQuery 官方 API 地址: http://api.jquery.com/ 在線引用 jQuery:http://code.jquery.com/ ——選自《鋒利的jQuery》(第2版)第5章的

定位實現機器人效果

gre span arr eight adding header fff posit class <!DOCTYPE html> <html> <head> <meta charset="UTF-8">

jQuery實現(全選、反選、全不選功能)

sele 元素 selectall input html元素 UNC 推薦 not rop 在jQuery選擇器的基礎下我們實現一個全選,反選,全不選功能! <script type="text/javascript"> $(functio

bootstrap實現手風琴效果

<!DOCTYPE html> <html lang="zh-cn"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"&

jQuery實現手風琴效果

-h 兩個 radi 作用 del 4.2 擁有 高效 head <div class="panel"> <div class="panel-header"> jQuery的核心特性 </div> <d

js實現打字機效果

1.難得有點時間,回憶下古詩文,順便練習下js,實現下打字機效果 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>打字機</t

jQuery實現購物車的總價計算和總價傳值

效果圖:          程式碼實現: 1.多選框程式碼: 2.結算價格程式碼: 3. jQuery實現價格計算程式碼: (當點選多選框時,下面的總計金

jquery 實現動畫效果(各種方法)

asc func 綜合 oat 代碼 jquer 一秒 遞歸 pan 1.show()和hide()和toggle()(這是show和hide的一個綜合,一個按鈕就實現顯示和隱藏) 效果: 代碼: <button type="button" class="show"