<button id="0gwz0"></button>

<\/div>\"jQuery實現放大鏡效果_html\/css_WEB-ITnose\"<\/div><\/body><\/html><\/pre>

上面,我們定義了small對象用于顯示原圖,而large對象作為一個顯示框用來顯示大圖的對應位置。<\/p> mousemove事件

接下來,我們通過jQuery插件形式來實現放大鏡效果,當鼠標移動到small對象上方時,就會在large對象中顯示大圖的對應位置,這就涉及到mousemove事件了,所以,我們需要實現mousemove事件的監(jiān)聽方法(如何定義jQuery插件可以參考《自定義jQuery插件Step by Step》)。<\/p>

現在,讓我們實現jquery.imagezoom.js插件吧!<\/p>

;(function ($) {    $.fn.imageZoom = function (options) {    \/\/ The native width and height of the image.    var native_width = 0,        native_height = 0,        current_width = 0,        current_height = 0,        $small = $(\".small\"),        $large = $(\".large\");    $(\".magnify\").mousemove(function (e) {        \/* Act on the event *\/        if (!native_width && !native_height) {            var image_object = new Image();            image_object.src = $small.attr('src');            \/\/ Gets the image native height and width.            native_height = image_object.height;            native_width = image_object.width;            \/\/ Gets the image current height and width.            current_height = $small.height();            current_width = $small.width();        } else {            \/\/ Gets .maginfy offset coordinates.            var magnify_offset = $(this).offset(),                \/\/ Gets coordinates within .maginfy.                mx = e.pageX - magnify_offset.left,                my = e.pageY - magnify_offset.top;            \/\/ Checks the mouse within .maginfy or not.            if (mx < $(this).width() && my < $(this).height() && mx > 0 && my > 0) {                $large.fadeIn(100);            } else {                $large.fadeOut(100);            } if ($large.is(\":visible\")) {                \/* Gets the large image coordinate by ratio                    small.x \/ small.width = large.x \/ large.width                   small.y \/ small.height = large.y \/ large.height                   then we need to keep pointer in the centre,                    so deduct the half of .large width and height.                *\/                var rx = Math.round(mx \/ $small.width() * native_width - $large.width() \/ 2) * -1,                    ry = Math.round(my \/ $small.height() * native_height - $large.height() \/ 2) * -1,                    bgp = rx + \"px \" + ry + \"px\",                    px = mx - $large.width() \/ 2,                    py = my - $large.height() \/ 2;                $large.css({                    left: px,                    top: py,                    backgroundPosition: bgp                });            }        }    });});<\/pre>   

上面,我實現了mousemove事件的監(jiān)聽方法,當鼠標移動到magnify對象中,我們需要獲取當前鼠標的相對坐標位置,下面我們通過圖片講解如何獲取鼠標的相對坐標位置。<\/p> 相對坐標

   <\/p>

圖1鼠標相對坐標位置<\/p>

當鼠標移動到magnify對象中,我們需要獲取鼠標在magnify中的相對坐標位置,這里我們把相對坐標定義為(mx,my),通過上圖我們知道相對坐標等于(pageX - offsetLeft, pageY - offsetTop)。<\/p>

現在,我們已經獲取鼠標在magnify對象中的坐標值,接下來,需要獲取對應大圖的相應坐標,這里我們把大圖的對應坐標定義為(rx,ry),我們可以通過比例關系獲取(rx,ry)的值。<\/p>

mx \/ small.width (原圖的寬)= rx \/ native_width(大圖的寬)<\/p>

my \/ small.height (原圖的長)= ry \/ native_height(大圖的長)<\/p>

通過上面的比例關系,我們知道大圖的坐標(rx,ry)等于(mx\/small.width*native_width, my\/small.height*native_height)。<\/p>

通過上述的公式,我們可以獲取大圖對應坐標位置,當鼠標移動到magnify對象中就顯示對應位置的大圖部位,接下來我們需要實現大圖的加載實現了。<\/p> background-position屬性

在實現大圖加載顯示之前,首先介紹CSS中背景定位background-position的知識。<\/p>

<\/p>

<\/p>

<\/p>

圖2 CSS background-position<\/p>

上面,有一個100x100像素的圖片它由四種顏色組成,而且每種顏色占50 x50像素,接下來,我們將通過修改該圖片CSS的background-position屬性值來顯示該圖片的不同位置。<\/p>

<\/p>

我們看到在大正方形下有兩行小正方形,它們顯示的顏色位置都不相同,這里我們通過修改每個div元素CSS的background-position屬性值實現的。<\/p>

例如:第一行的藍色方形,我們設置CSS的background-position屬性為:0px -50px;這相當于原圖往上移動50px,第一行的其他方形也通過左右和上下移動實現的。<\/p>

但第二行的方形就顯得更加奇怪了,因為它們都由四種顏色組成,而且顏色的位置都不一樣,這究竟是怎樣實現的呢?<\/p>

例如:第二行的第一個方形,我們設置CSS的background-position屬性為:25px 25px;這相當于原圖向下和向右移動了25px,由于image wrap的作用它會填充剩余位置的顏色。<\/p>

現在,我們已經了解到了CSS的background-position屬性的作用,所以我們通過修改large對象的background-position屬性來顯示對應的圖像部分,具體實現如下:<\/p>

$large.css({    left: px,    top: py,    backgroundPosition: bgp});<\/pre>   

上面,我們通過加載大圖的方式來實現放大鏡效果,接下來,我們將介紹通過調整原圖的長和寬來實現放大鏡效果。<\/p> mousewheel事件

前面,我們通過mousemove事件來放大圖片,這里我們將通過鼠標的滾輪事件實現圖片放大效果。<\/p>

由于,不同的瀏覽器有不同的滾輪事件。主要是有三種:onmousewheel(IE 6\/7\/8)、mousewheel(IE9,Chrome,Safari和Opera)和DOMMouseScroll(只有Firefox支持),關于這三個事件這里不做詳細的介紹了。<\/p>

由于不同瀏覽器之間存在著差異,為了實現瀏覽器之間的兼容,所以,我們需要監(jiān)聽以上三種滾輪事件(onmousewheel,mousewheel和DOMMouseScroll),具體實現如下:<\/p>

$(\".magnify\").bind('DOMMouseScroll mousewheel onmousewheel', function(e) {});<\/pre>   

上面,我們實現了兼容不同瀏覽器的滾輪事件監(jiān)聽方法,接下來,判斷滾輪向上或向下也要考慮不同瀏覽器的兼容性,主流的覽器(IE、Opera、Safari、Firefox、Chrome)中Firefox 使用detail,其余四類使用wheelDelta;兩者只在取值上不一致,代表含義一致,detail與wheelDelta只各取兩個值,detail只取±3,wheelDelta只取±120,其中正數表示為向上,負數表示向下。<\/p>

由于detail和wheelDelta都有兩個值表示向上或向下滾動,所以不同瀏覽器間可以通過以下方式實現兼容,具體實現如下:<\/p>

$(\".magnify\").bind('DOMMouseScroll mousewheel onmousewheel', function(e) {    \/\/ cross-browser wheel delta    var e = window.event || e; \/\/ old IE support.    var delta = Math.max(-1, Math.min(1, (e.wheelDelta || -e.detail)));});<\/pre>   

上面,我們已經處理了不同瀏覽器滾輪監(jiān)聽方法,當用戶滾動滾輪時需要動態(tài)地修改原圖的尺寸,這里我們定義縮放比scaling為0.3,也就是說每當用戶滾動一下滾輪原圖就按0.3的比例進行縮放,具體實現如下:<\/p>

\/\/ Gets the image scaling height and width.native_height += (native_height * scaling * delta);native_width += (native_width * scaling * delta);\/\/ Update backgroud image size.$large.css('background-size', native_width + \"px \" + native_height + \"px\");<\/pre>   

現在,我們已經實現了通過滾輪對圖片進行縮放查看的效果,完整的實現如下:<\/p>

\/************************************ Author: Jackson Huang* Blog: http:\/\/www.cnblogs.com\/rush* Date: 8\/23\/2013* Reference:* http:\/\/www.sitepoint.com\/html5-javascript-mouse-wheel\/* http:\/\/thecodeplayer.com\/walkthrough\/magnifying-glass-for-images-using-jquery-and-css3***********************************\/;(function($) {    $.fn.imageZoom = function(options) {        \/\/ The native width and height of the image.        var defaults = {            scaling: 0.3        };        \/\/ Combines object defaults and options.        options = $.extend(defaults, options),            native_width = 0,            native_height = 0,            current_width = 0,            current_height = 0,            $small = $(\".small\"),            $large = $(\".large\");        $(\".magnify\").mousemove(function(e) {            \/* Act on the event *\/            if (!native_width && !native_height) {                var image_object = new Image();                image_object.src = $small.attr('src');                \/\/ Gets the image native height and width.                native_height = image_object.height;                native_width = image_object.width;                \/\/ Gets the image current height and width.                current_height = $small.height();                current_width = $small.width();            } else {                \/\/ Gets .maginfy offset coordinates.                var magnify_offset = $(this).offset(),                \/\/ Gets coordinates within .maginfy.                    mx = e.pageX - magnify_offset.left,                    my = e.pageY - magnify_offset.top;                \/\/ Checks the mouse within .maginfy or not.                if (mx < $(this).width() && my < $(this).height() && mx > 0 && my > 0) {                    $large.fadeIn(100);                } else {                    $large.fadeOut(100);                }                if ($large.is(\":visible\")) {                    \/* Gets the large image coordinate by ratio                     small.x \/ small.width = large.x \/ large.width                    small.y \/ small.height = large.y \/ large.height                    then we need to keep pointer in the centre,                     so deduct the half of .large width and height.                    *\/                    var rx = Math.round(mx \/ $small.width() * native_width - $large.width() \/ 2) * -1,                        ry = Math.round(my \/ $small.height() * native_height - $large.height() \/ 2) * -1,                        bgp = rx + \"px \" + ry + \"px\",                        px = mx - $large.width() \/ 2,                        py = my - $large.height() \/ 2;                    $large.css({                        left: px,                        top: py,                        backgroundPosition: bgp                    });                }            }        });        $(\".magnify\").bind('DOMMouseScroll mousewheel onmousewheel', function(e) {            var image_object = new Image();            image_object.src = $large.attr('src');            \/\/ cross-browser wheel delta            e = window.event || e; \/\/ old IE support.            var delta = Math.max(-1, Math.min(1, (e.wheelDelta || -e.detail)));            \/\/ Gets the image scaling height and width.            native_height += (native_height * defaults.scaling * delta);            native_width += (native_width * defaults.scaling * delta);            \/\/ The image can't smaller than the original.            if (native_height < current_height) {                native_height = current_height;            }            if (native_width < current_width) {                native_width = current_width;            }            \/\/ console.log(\"native_height: \" + native_height + \" native_width: \" + native_width);            \/\/ Gets .maginfy offset coordinates.            var magnify_offset = $(this).offset(),                mx = e.pageX - magnify_offset.left,                my = e.pageY - magnify_offset.top;            \/\/ Update backgroud image size.            $large.css('background-size', native_width + \"px \" + native_height + \"px\");            \/* Gets the large image coordinate by ratio             small.x \/ small.width = large.x \/ large.width            small.y \/ small.height = large.y \/ large.height            then we need to keep pointer in the centre,             so deduct the half of .large width and height.            *\/            var rx = Math.round(mx \/ $small.width() * native_width - $large.width() \/ 2) * -1,                ry = Math.round(my \/ $small.height() * native_height - $large.height() \/ 2) * -1,                bgp = rx + \"px \" + ry + \"px\",                px = mx - $large.width() \/ 2,                py = my - $large.height() \/ 2;            $large.css({                left: px,                top: py,                backgroundPosition: bgp            });        });    };})(jQuery);<\/pre>   

?<\/p>

圖3 放大鏡效果<\/p>

上面,我們實現了放大鏡效果,當我們鼠標停留在圖片上方會自動放大圖片的相應部位,當然我們可以通過滾輪調整放大的比例。<\/p> 1.1.3 總結

在本博文中,我們介紹了如何實現放大鏡效果,總的來說,我們可以通過兩種方式實現放大鏡效果,而且在博文中都給出了詳細的介紹,通過mousemove事件實現加載大圖的效果,mousewheel事件實現動態(tài)修改原圖的尺寸。<\/p>

這只是一個簡單的程序,我們還有很大的改善空間,提供一個內容豐富和功能強大的程序是我們的目標。<\/p> 參考 http:\/\/tech.pro\/tutorial\/681\/css-tutorial-the-background-position-property http:\/\/www.sitepoint.com\/html5-javascript-mouse-wheel\/ http:\/\/thecodeplayer.com\/walkthrough\/magnifying-glass-for-images-using-jquery-and-css3

Demo<\/p> "}

国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

首頁 web前端 html教程 jQuery實現放大鏡效果_html/css_WEB-ITnose

jQuery實現放大鏡效果_html/css_WEB-ITnose

Jun 24, 2016 pm 12:33 PM

1.1.1 摘要

相信大家都見過或使用過放大鏡效果,甚至實現過該效果,它一般應用于放大查看商品圖片,一些電商網站(例如:凡客,京東商城,阿里巴巴等)都有類似的圖片查看效果。

在接下來的博文中,我們將向大家介紹通過jQuery實現放大鏡效果。

目錄 實現原理 mousemove事件 相對坐標 background-position屬性 mousewheel事件 1.1.2 正文 實現原理

首先,我們講解一下放大鏡效果的實現方式:

方法一:準備一張高像素的大圖,當鼠標放到原圖上,加載顯示大圖的對應位置。

方法二:對原圖片進行放大,也就是調整原圖的長和寬。

上面我們介紹了通過兩種方式實現放大鏡效果,接下來,我們將以上的兩種方式應用到我們的jQuery插件中。

首先,我們需要一個img元素顯示原圖對象,還需要一個容器作為顯示框;顯示框里面存放大圖對象。當鼠標移動到原圖上時,通過對大圖進行絕對定位來顯示對應的部位,實現類似放大鏡的效果。

接下來,讓我們定義Index.html頁面,具體實現如下:

<!doctype html><html lang="en-US"><head>  <meta http-equiv="Content-Type" content="text/html;charset=utf-8">  <title>jQuery Image Zoom Demo</title>  <meta name="author" content="Jackson Huang"></head><body><div class="magnify"><div class="large"></div><img  class="small lazy"  src="/static/imghw/default1.png"  data-src="./img/1.jpg"     style="max-width:90%" / alt="jQuery實現放大鏡效果_html/css_WEB-ITnose" ></div></body></html>

上面,我們定義了small對象用于顯示原圖,而large對象作為一個顯示框用來顯示大圖的對應位置。

mousemove事件

接下來,我們通過jQuery插件形式來實現放大鏡效果,當鼠標移動到small對象上方時,就會在large對象中顯示大圖的對應位置,這就涉及到mousemove事件了,所以,我們需要實現mousemove事件的監(jiān)聽方法(如何定義jQuery插件可以參考《自定義jQuery插件Step by Step》)。

現在,讓我們實現jquery.imagezoom.js插件吧!

;(function ($) {    $.fn.imageZoom = function (options) {    // The native width and height of the image.    var native_width = 0,        native_height = 0,        current_width = 0,        current_height = 0,        $small = $(".small"),        $large = $(".large");    $(".magnify").mousemove(function (e) {        /* Act on the event */        if (!native_width && !native_height) {            var image_object = new Image();            image_object.src = $small.attr('src');            // Gets the image native height and width.            native_height = image_object.height;            native_width = image_object.width;            // Gets the image current height and width.            current_height = $small.height();            current_width = $small.width();        } else {            // Gets .maginfy offset coordinates.            var magnify_offset = $(this).offset(),                // Gets coordinates within .maginfy.                mx = e.pageX - magnify_offset.left,                my = e.pageY - magnify_offset.top;            // Checks the mouse within .maginfy or not.            if (mx < $(this).width() && my < $(this).height() && mx > 0 && my > 0) {                $large.fadeIn(100);            } else {                $large.fadeOut(100);            } if ($large.is(":visible")) {                /* Gets the large image coordinate by ratio                    small.x / small.width = large.x / large.width                   small.y / small.height = large.y / large.height                   then we need to keep pointer in the centre,                    so deduct the half of .large width and height.                */                var rx = Math.round(mx / $small.width() * native_width - $large.width() / 2) * -1,                    ry = Math.round(my / $small.height() * native_height - $large.height() / 2) * -1,                    bgp = rx + "px " + ry + "px",                    px = mx - $large.width() / 2,                    py = my - $large.height() / 2;                $large.css({                    left: px,                    top: py,                    backgroundPosition: bgp                });            }        }    });});

上面,我實現了mousemove事件的監(jiān)聽方法,當鼠標移動到magnify對象中,我們需要獲取當前鼠標的相對坐標位置,下面我們通過圖片講解如何獲取鼠標的相對坐標位置。

相對坐標

圖1鼠標相對坐標位置

當鼠標移動到magnify對象中,我們需要獲取鼠標在magnify中的相對坐標位置,這里我們把相對坐標定義為(mx,my),通過上圖我們知道相對坐標等于(pageX - offsetLeft, pageY - offsetTop)。

現在,我們已經獲取鼠標在magnify對象中的坐標值,接下來,需要獲取對應大圖的相應坐標,這里我們把大圖的對應坐標定義為(rx,ry),我們可以通過比例關系獲取(rx,ry)的值。

mx / small.width (原圖的寬)= rx / native_width(大圖的寬)

my / small.height (原圖的長)= ry / native_height(大圖的長)

通過上面的比例關系,我們知道大圖的坐標(rx,ry)等于(mx/small.width*native_width, my/small.height*native_height)。

通過上述的公式,我們可以獲取大圖對應坐標位置,當鼠標移動到magnify對象中就顯示對應位置的大圖部位,接下來我們需要實現大圖的加載實現了。

background-position屬性

在實現大圖加載顯示之前,首先介紹CSS中背景定位background-position的知識。

圖2 CSS background-position

上面,有一個100x100像素的圖片它由四種顏色組成,而且每種顏色占50 x50像素,接下來,我們將通過修改該圖片CSS的background-position屬性值來顯示該圖片的不同位置。

我們看到在大正方形下有兩行小正方形,它們顯示的顏色位置都不相同,這里我們通過修改每個div元素CSS的background-position屬性值實現的。

例如:第一行的藍色方形,我們設置CSS的background-position屬性為:0px -50px;這相當于原圖往上移動50px,第一行的其他方形也通過左右和上下移動實現的。

但第二行的方形就顯得更加奇怪了,因為它們都由四種顏色組成,而且顏色的位置都不一樣,這究竟是怎樣實現的呢?

例如:第二行的第一個方形,我們設置CSS的background-position屬性為:25px 25px;這相當于原圖向下和向右移動了25px,由于image wrap的作用它會填充剩余位置的顏色。

現在,我們已經了解到了CSS的background-position屬性的作用,所以我們通過修改large對象的background-position屬性來顯示對應的圖像部分,具體實現如下:

$large.css({    left: px,    top: py,    backgroundPosition: bgp});

上面,我們通過加載大圖的方式來實現放大鏡效果,接下來,我們將介紹通過調整原圖的長和寬來實現放大鏡效果。

mousewheel事件

前面,我們通過mousemove事件來放大圖片,這里我們將通過鼠標的滾輪事件實現圖片放大效果。

由于,不同的瀏覽器有不同的滾輪事件。主要是有三種:onmousewheel(IE 6/7/8)、mousewheel(IE9,Chrome,Safari和Opera)和DOMMouseScroll(只有Firefox支持),關于這三個事件這里不做詳細的介紹了。

由于不同瀏覽器之間存在著差異,為了實現瀏覽器之間的兼容,所以,我們需要監(jiān)聽以上三種滾輪事件(onmousewheel,mousewheel和DOMMouseScroll),具體實現如下:

$(".magnify").bind('DOMMouseScroll mousewheel onmousewheel', function(e) {});

上面,我們實現了兼容不同瀏覽器的滾輪事件監(jiān)聽方法,接下來,判斷滾輪向上或向下也要考慮不同瀏覽器的兼容性,主流的覽器(IE、Opera、Safari、Firefox、Chrome)中Firefox 使用detail,其余四類使用wheelDelta;兩者只在取值上不一致,代表含義一致,detail與wheelDelta只各取兩個值,detail只取±3,wheelDelta只取±120,其中正數表示為向上,負數表示向下。

由于detail和wheelDelta都有兩個值表示向上或向下滾動,所以不同瀏覽器間可以通過以下方式實現兼容,具體實現如下:

$(".magnify").bind('DOMMouseScroll mousewheel onmousewheel', function(e) {    // cross-browser wheel delta    var e = window.event || e; // old IE support.    var delta = Math.max(-1, Math.min(1, (e.wheelDelta || -e.detail)));});

上面,我們已經處理了不同瀏覽器滾輪監(jiān)聽方法,當用戶滾動滾輪時需要動態(tài)地修改原圖的尺寸,這里我們定義縮放比scaling為0.3,也就是說每當用戶滾動一下滾輪原圖就按0.3的比例進行縮放,具體實現如下:

// Gets the image scaling height and width.native_height += (native_height * scaling * delta);native_width += (native_width * scaling * delta);// Update backgroud image size.$large.css('background-size', native_width + "px " + native_height + "px");

現在,我們已經實現了通過滾輪對圖片進行縮放查看的效果,完整的實現如下:

/************************************ Author: Jackson Huang* Blog: http://www.cnblogs.com/rush* Date: 8/23/2013* Reference:* http://www.sitepoint.com/html5-javascript-mouse-wheel/* http://thecodeplayer.com/walkthrough/magnifying-glass-for-images-using-jquery-and-css3***********************************/;(function($) {    $.fn.imageZoom = function(options) {        // The native width and height of the image.        var defaults = {            scaling: 0.3        };        // Combines object defaults and options.        options = $.extend(defaults, options),            native_width = 0,            native_height = 0,            current_width = 0,            current_height = 0,            $small = $(".small"),            $large = $(".large");        $(".magnify").mousemove(function(e) {            /* Act on the event */            if (!native_width && !native_height) {                var image_object = new Image();                image_object.src = $small.attr('src');                // Gets the image native height and width.                native_height = image_object.height;                native_width = image_object.width;                // Gets the image current height and width.                current_height = $small.height();                current_width = $small.width();            } else {                // Gets .maginfy offset coordinates.                var magnify_offset = $(this).offset(),                // Gets coordinates within .maginfy.                    mx = e.pageX - magnify_offset.left,                    my = e.pageY - magnify_offset.top;                // Checks the mouse within .maginfy or not.                if (mx < $(this).width() && my < $(this).height() && mx > 0 && my > 0) {                    $large.fadeIn(100);                } else {                    $large.fadeOut(100);                }                if ($large.is(":visible")) {                    /* Gets the large image coordinate by ratio                     small.x / small.width = large.x / large.width                    small.y / small.height = large.y / large.height                    then we need to keep pointer in the centre,                     so deduct the half of .large width and height.                    */                    var rx = Math.round(mx / $small.width() * native_width - $large.width() / 2) * -1,                        ry = Math.round(my / $small.height() * native_height - $large.height() / 2) * -1,                        bgp = rx + "px " + ry + "px",                        px = mx - $large.width() / 2,                        py = my - $large.height() / 2;                    $large.css({                        left: px,                        top: py,                        backgroundPosition: bgp                    });                }            }        });        $(".magnify").bind('DOMMouseScroll mousewheel onmousewheel', function(e) {            var image_object = new Image();            image_object.src = $large.attr('src');            // cross-browser wheel delta            e = window.event || e; // old IE support.            var delta = Math.max(-1, Math.min(1, (e.wheelDelta || -e.detail)));            // Gets the image scaling height and width.            native_height += (native_height * defaults.scaling * delta);            native_width += (native_width * defaults.scaling * delta);            // The image can't smaller than the original.            if (native_height < current_height) {                native_height = current_height;            }            if (native_width < current_width) {                native_width = current_width;            }            // console.log("native_height: " + native_height + " native_width: " + native_width);            // Gets .maginfy offset coordinates.            var magnify_offset = $(this).offset(),                mx = e.pageX - magnify_offset.left,                my = e.pageY - magnify_offset.top;            // Update backgroud image size.            $large.css('background-size', native_width + "px " + native_height + "px");            /* Gets the large image coordinate by ratio             small.x / small.width = large.x / large.width            small.y / small.height = large.y / large.height            then we need to keep pointer in the centre,             so deduct the half of .large width and height.            */            var rx = Math.round(mx / $small.width() * native_width - $large.width() / 2) * -1,                ry = Math.round(my / $small.height() * native_height - $large.height() / 2) * -1,                bgp = rx + "px " + ry + "px",                px = mx - $large.width() / 2,                py = my - $large.height() / 2;            $large.css({                left: px,                top: py,                backgroundPosition: bgp            });        });    };})(jQuery);

?

圖3 放大鏡效果

上面,我們實現了放大鏡效果,當我們鼠標停留在圖片上方會自動放大圖片的相應部位,當然我們可以通過滾輪調整放大的比例。

1.1.3 總結

在本博文中,我們介紹了如何實現放大鏡效果,總的來說,我們可以通過兩種方式實現放大鏡效果,而且在博文中都給出了詳細的介紹,通過mousemove事件實現加載大圖的效果,mousewheel事件實現動態(tài)修改原圖的尺寸。

這只是一個簡單的程序,我們還有很大的改善空間,提供一個內容豐富和功能強大的程序是我們的目標。

參考 http://tech.pro/tutorial/681/css-tutorial-the-background-position-property http://www.sitepoint.com/html5-javascript-mouse-wheel/ http://thecodeplayer.com/walkthrough/magnifying-glass-for-images-using-jquery-and-css3

Demo

本站聲明
本文內容由網友自發(fā)貢獻,版權歸原作者所有,本站不承擔相應法律責任。如您發(fā)現有涉嫌抄襲侵權的內容,請聯系admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣服圖片

Undresser.AI Undress

Undresser.AI Undress

人工智能驅動的應用程序,用于創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用于從照片中去除衣服的在線人工智能工具。

Clothoff.io

Clothoff.io

AI脫衣機

Video Face Swap

Video Face Swap

使用我們完全免費的人工智能換臉工具輕松在任何視頻中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的代碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

功能強大的PHP集成開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級代碼編輯軟件(SublimeText3)

我如何了解最新的HTML標準和最佳實踐? 我如何了解最新的HTML標準和最佳實踐? Jun 20, 2025 am 08:33 AM

要跟上HTML標準和最佳實踐,關鍵在于有意為之而非盲目追隨。首先,關注官方來源如WHATWG和W3C的摘要或更新日志,了解新標簽(如)和屬性,將其作為參考解決疑難問題;其次,訂閱可信的網頁開發(fā)新聞通訊和博客,每周花10-15分鐘瀏覽更新,關注實際用例而非僅收藏文章;再次,使用開發(fā)者工具和linters如HTMLHint,通過即時反饋優(yōu)化代碼結構;最后,與開發(fā)者社區(qū)互動,分享經驗并學習他人實戰(zhàn)技巧,從而持續(xù)提升HTML技能。

如何使用元素來表示文檔的主要內容? 如何使用元素來表示文檔的主要內容? Jun 19, 2025 pm 11:09 PM

使用標簽的原因是提升網頁的語義化結構和可訪問性,使屏幕閱讀器和搜索引擎更易理解頁面內容,并允許用戶快速跳轉至核心內容。以下是關鍵要點:1.每個頁面應僅包含一個元素;2.不應包括跨頁面重復的內容(如側邊欄或頁腳);3.可與ARIA屬性結合使用以增強無障礙體驗。通常位于和之后、之前,用于包裹唯一的頁面內容,例如文章、表單或產品詳情,并應避免嵌套在、或中;為提高輔助功能,可使用aria-labelledby或aria-label明確標識部分。

如何創(chuàng)建基本的HTML文檔? 如何創(chuàng)建基本的HTML文檔? Jun 19, 2025 pm 11:01 PM

要創(chuàng)建一個基本的HTML文檔,首先需要了解其基本結構并按照標準格式編寫代碼。1.開始時使用聲明文檔類型;2.使用標簽包裹整個內容;3.在其中包含和兩個主要部分,用于存放元數據如標題、樣式表鏈接等,而則包含用戶可見的內容如標題、段落、圖片和鏈接;4.保存文件為.html格式并在瀏覽器中打開查看效果;5.隨后可逐步添加更多元素以豐富頁面內容。遵循這些步驟即可快速構建一個基礎網頁。

如何使用 如何使用 Jun 19, 2025 pm 11:41 PM

要創(chuàng)建HTML復選框,需使用type屬性設為checkbox的元素。1.基本結構包含id、name和label標簽,確保點擊文字可切換選項;2.多個相關復選框應使用相同name但不同value,并用fieldset包裹提升可訪問性;3.自定義樣式時隱藏原生控件并用CSS設計替代元素,同時保持功能完整;4.確??捎眯?,配對label、支持鍵盤導航且避免僅依賴視覺提示。以上步驟能幫助開發(fā)者正確實現兼具功能與美觀的復選框組件。

如何最小化HTML文件的大?。? />
								</a>
								<a href=如何最小化HTML文件的大??? Jun 24, 2025 am 12:53 AM

要減小HTML文件大小需清理冗余代碼、壓縮內容并優(yōu)化結構。 1.刪??除未使用的標簽、注釋和多余空白以減少體積;2.將內聯CSS和JavaScript移至外部文件并合并多個腳本或樣式塊;3.在不影響解析的前提下簡化標簽語法,如省略可選閉合標簽或使用簡短屬性;4.清理后啟用Gzip或Brotli等服務器端壓縮技術進一步縮減傳輸體積。這些步驟可在不犧牲功能的前提下顯著提升頁面加載性能。

如何使用元素代表文檔或部分的頁腳? 如何使用元素代表文檔或部分的頁腳? Jun 25, 2025 am 12:57 AM

是HTML5中用于定義頁面或內容區(qū)塊底部的語義化標簽,通常包含版權信息、聯系方式或導航鏈接等;它可置于頁面底部或嵌套在、等標簽內作為區(qū)塊尾部;使用時應注意避免重復濫用及放入無關內容。

隨著時間的流逝,HTML如何發(fā)展,其歷史上的關鍵里程碑是什么? 隨著時間的流逝,HTML如何發(fā)展,其歷史上的關鍵里程碑是什么? Jun 24, 2025 am 12:54 AM

htmlhasevolvedscreatscreationtomeetthegrowingdemandsofwebdevelopersandusers.inatelyallyasimplemarkuplanguageforsharingdocuments,ithasundergonemajorupdates,包括html.2.0,包括wheintrodistusefforms;

如何使用Tabindex屬性來控制元素的選項卡順序? 如何使用Tabindex屬性來控制元素的選項卡順序? Jun 24, 2025 am 12:56 AM

ThetabindexattributecontrolshowelementsreceivefocusviatheTabkey,withthreemainvalues:tabindex="0"addsanelementtothenaturaltaborder,tabindex="-1"allowsprogrammaticfocusonly,andtabindex="n"(positivenumber)setsacustomtabbing

See all articles