一直以來都想寫一個(gè)圖片放大和縮小的小玩意,本來以為會(huì)很復(fù)雜,這幾天自己思考了一下,原來是so easy啊。目前實(shí)現(xiàn)的放大縮小,主要時(shí)依據(jù)鼠標(biāo)的滾輪觸發(fā)事件來實(shí)現(xiàn)的,廢話少說直接上源碼。
創(chuàng)新互聯(lián)專注于文水企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè)公司,成都商城網(wǎng)站開發(fā)。文水網(wǎng)站建設(shè)公司,為文水等地區(qū)提供建站服務(wù)。全流程定制開發(fā),專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)
*{
margin:0; padding:0;
}
body {
width:100%; height:100%; overflow:auto;
}
#img {
display:block;
width:20%;
margin:20px auto;
cursor:-webkit-zoom-in;
cursor:-moz-zoom-in;
border:4px solid #ccc;
}
$(document).ready(function(){
var img=$("#img");
var i=0;
img.bind('DOMMouseScroll mousewheel function(e) {
var ev=window.event||e;//處理瀏覽器兼容性問題
var scrollUnit=Math.max(-1,Math.min(1,(ev.wheelDelta||-ev.detail)));
var newWith=Math.max(100,Math.min(1600,parseInt(img.css("width"))+(30*scrollUnit)))+"px";
img.css("width",newWith);
console.log(i++);
console.log(img.css("width"));
});
});
針對(duì)源碼,做幾點(diǎn)說明和補(bǔ)充:
1,ev.wheelDelta和ev.detail
ev.wheelDelta, 除出火狐外的瀏覽器IE,chrome,Opera、Safari基本支持屬性,該屬性取值為+,-,120;
ev.detail,為火狐特有的事件屬性,取值+,-3;
2,Math.min,Math.max
這個(gè)地方的取最大值和最小值,最好自己琢磨一下,稍微有一個(gè)繞。
3,放大縮小的倍數(shù)和最值問題
1和-1控制縮小和放大速率,絕對(duì)值越大縮放效果越明顯。
100,1600,分別為縮小的最小值和放大的最大值。
基本就這么多了,歡迎大家提出寶貴建議和想法。