jquery實(shí)現(xiàn)的縮略圖預(yù)覽滑塊實(shí)例
本文實(shí)例講述了jquery實(shí)現(xiàn)的縮略圖預(yù)覽滑塊。分享給大家供大家參考。具體如下:
運(yùn)行效果如下圖所示:

主要代碼如下:
(function($) {
$.fn.thumbnailSlider = function(options) {
var opts = $.extend({}, $.fn.thumbnailSlider.defaults, options);
return this.each(function() {
var $this = $(this),
o = $.meta ? $.extend({}, opts, $pxs_container.data()) : opts;
var $ts_container= $this.children('.ts_container'),
$ts_thumbnails= $ts_container.children('.ts_thumbnails'),
$nav_elems= $ts_container.children('li').not($ts_thumbnails),
total_elems= $nav_elems.length,
$ts_preview_wrapper= $ts_thumbnails.children('.ts_preview_wrapper'),
$arrow= $ts_thumbnails.children('span'),
$ts_preview= $ts_preview_wrapper.children('.ts_preview');
/*
計(jì)算出$ts_thumbnails的尺寸:
width -> width thumbnail + border (2*5)
height -> height thumbnail + border + triangle height(6)
top-> -(height plus margin of 5)
left-> leftDot - 0.5*width + 0.5*widthNavDot
當(dāng)鼠標(biāo)經(jīng)過(guò)導(dǎo)航的時(shí)候它將會(huì)被設(shè)定并且默認(rèn)的值將會(huì)賦給導(dǎo)航的第一個(gè)預(yù)覽點(diǎn)
*/
var w_ts_thumbnails= o.thumb_width + 2*5,
h_ts_thumbnails= o.thumb_height + 2*5 + 6,
t_ts_thumbnails= -(h_ts_thumbnails + 5),
$first_nav= $nav_elems.eq(0),
l_ts_thumbnails= $first_nav.position().left - 0.5*w_ts_thumbnails + 0.5*$first_nav.width();
$ts_thumbnails.css({
width: w_ts_thumbnails + 'px',
height: h_ts_thumbnails + 'px',
top: t_ts_thumbnails + 'px',
left: l_ts_thumbnails + 'px'
});
/*
計(jì)算出提示箭頭的上方和左邊的位置
top-> thumb height + border(2*5)
left-> (thumb width + border)/2 -width/2
*/
var t_arrow= o.thumb_height + 2*5,
l_arrow= (o.thumb_width + 2*5) / 2 - $arrow.width() / 2;
$arrow.css({
left: l_arrow + 'px',
top: t_arrow + 'px'
});
/*
計(jì)算出$ts_preview的寬度->縮略圖的寬度乘以所有縮略圖的數(shù)量
*/
$ts_preview.css('width' , total_elems*o.thumb_width + 'px');
/*
設(shè)定 $ts_preview_wrapper 的寬度和高度 -> thumb width / thumb height
*/
$ts_preview_wrapper.css({
width: o.thumb_width + 'px',
height: o.thumb_height + 'px'
});
//鼠標(biāo)經(jīng)過(guò)導(dǎo)航的元素
$nav_elems.bind('mouseenter',function(){
var $nav_elem= $(this),
idx= $nav_elem.index();
/*
計(jì)算出 $ts_thumbnails 最新的左側(cè)距離
*/
var new_left= $nav_elem.position().left - 0.5*w_ts_thumbnails + 0.5*$nav_elem.width();
$ts_thumbnails.stop(true)
.show()
.animate({
left: new_left + 'px'
},o.speed,o.easing);
/*
動(dòng)畫從 $ts_preview 的左側(cè)過(guò)渡到右邊的縮略圖
*/
$ts_preview.stop(true)
.animate({
left: -idx*o.thumb_width + 'px'
},o.speed,o.easing);
//當(dāng)鼠標(biāo)停留的時(shí)候圖片進(jìn)行放大
if(o.zoom && o.zoomratio > 1){
var new_width= o.zoomratio * o.thumb_width,
new_height= o.zoomratio * o.thumb_height;
//增加 $ts_preview 的寬度為了能夠讓圖片放大
var ts_preview_w= $ts_preview.width();
$ts_preview.css('width' , (ts_preview_w - o.thumb_width + new_width) + 'px');
$ts_preview.children().eq(idx).find('img').stop().animate({
width: new_width + 'px',
height: new_height + 'px'
},o.zoomspeed);
}
}).bind('mouseleave',function(){
//如果放大了設(shè)置它的寬度和高度為默認(rèn)值
if(o.zoom && o.zoomratio > 1){
var $nav_elem= $(this),
idx= $nav_elem.index();
$ts_preview.children().eq(idx).find('img').stop().css({
width: o.thumb_width + 'px',
height: o.thumb_height + 'px'
});
}
$ts_thumbnails.stop(true)
.hide();
}).bind('click',function(){
var $nav_elem= $(this),
idx= $nav_elem.index();
o.onClick(idx);
});
});
};
$.fn.thumbnailSlider.defaults = {
speed: 100,// 幻燈片過(guò)渡的動(dòng)畫速度
easing: 'jswing',// easing動(dòng)畫效果
thumb_width: 75,//您的圖片寬度
thumb_height: 75,//您的圖片高度
zoom: false,//縮略圖是否放大
zoomratio: 1.3,// 放大比率(數(shù)值必須大于1)
zoomspeed: 15000,//放大動(dòng)畫的速度
onClick: function(){return false;}//點(diǎn)擊回發(fā)
};
})(jQuery);
完整實(shí)例代碼點(diǎn)擊此處本站下載。
希望本文所述對(duì)大家的jQuery程序設(shè)計(jì)有所幫助。
- jQuery animate(滑塊滑動(dòng)效果代碼)
- 25個(gè)非常棒的jQuery滑塊插件和教程小結(jié)
- 最新的10款jQuery內(nèi)容滑塊插件分享
- 最佳6款用于移動(dòng)網(wǎng)站開(kāi)發(fā)的jQuery 圖片滑塊插件小結(jié)
- jQuery的圖片滑塊焦點(diǎn)圖插件整理推薦
- 再分享70+免費(fèi)的jquery 圖片滑塊效果插件和教程
- 分享28款免費(fèi)實(shí)用的 JQuery 圖片和內(nèi)容滑塊插件
- jQuery插件slider實(shí)現(xiàn)拖動(dòng)滑塊選取價(jià)格范圍
- Jquery實(shí)現(xiàn)彈性滑塊滑動(dòng)選擇數(shù)值插件
相關(guān)文章
基于JQuery的模擬蘋果桌面Dock效果(穩(wěn)定版)
之所以將它命名為穩(wěn)定版,是因?yàn)橹耙呀?jīng)分享了一個(gè)初級(jí)版本的,之前的初級(jí)版中存在很多bug?,F(xiàn)在經(jīng)過(guò)反復(fù)琢磨、實(shí)驗(yàn),修復(fù)了之前版本存在的很多不足之處,就算鼠標(biāo)快速的滑動(dòng)依然表現(xiàn)的很穩(wěn)定2012-10-10
jquery-file-upload 文件上傳帶進(jìn)度條效果
這篇文章主要介紹了jquery-file-upload 文件上傳帶進(jìn)度條效果,代碼分為html部分css部分和js部分,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-11-11
Jquery實(shí)現(xiàn)地鐵線路指示燈提示牌效果的方法
這篇文章主要介紹了Jquery實(shí)現(xiàn)地鐵線路指示燈提示牌效果的方法,實(shí)例分析了jQuery動(dòng)態(tài)顯示特效的使用技巧,需要的朋友可以參考下2015-03-03
基于jQuery實(shí)現(xiàn)歌詞滾動(dòng)版音樂(lè)播放器的代碼
這篇文章主要介紹了基于jQuery實(shí)現(xiàn)歌詞滾動(dòng)版音樂(lè)播放器的代碼,代碼簡(jiǎn)單易懂,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-09-09
jQuery實(shí)現(xiàn)可以計(jì)算進(jìn)制轉(zhuǎn)換的計(jì)算器
這篇文章主要為大家詳細(xì)介紹了jQuery實(shí)現(xiàn)可以計(jì)算進(jìn)制轉(zhuǎn)換的計(jì)算器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-10-10
jQuery實(shí)現(xiàn)彩帶延伸效果的網(wǎng)頁(yè)加載條loading動(dòng)畫
這篇文章主要介紹了jQuery實(shí)現(xiàn)彩帶延伸效果的網(wǎng)頁(yè)加載條loading動(dòng)畫,涉及jQuery動(dòng)畫效果的實(shí)現(xiàn)技巧,非常簡(jiǎn)單實(shí)用,需要的朋友可以參考下2015-10-10

