【超酷超实用】CSS3可滑动跳转的分页插件制作教程

原文:【超酷超实用】CSS3可滑动跳转的分页插件制作教程

今天我要向大家分享一款很特别的CSS3分页插件,这款分页插件不仅可以点击分页按钮来实现分页,而且可以滑动滑杆来实现任意页面的跳转,看看都非常酷,很适合一些个性化的个人网站使用,当然,这款分页插件也适合ajax翻页,效果都挺不错的。先来看看效果图:

怎么样,还挺酷的吧。

当然你也可以在这里查看插件的DEMO演示

接下来我们来分享一下源码的实现思路,这里用到了jQuery UI框架,这么酷的滑杆是靠它实现的,不然,写的累死。。

首先是HTML代码:


<div class="pageSlider long"></div>

<form class="pageForm" action="#">

<label class="pageLabel" for="pageInput">
Page number you‘d like to go to. (Max of 30)
</label>

<a
class="pagePrev pageSkip"
href="#?page=6"
title="Previous Page (6)">Previous Page</a>

<input id="pageInput" class="pageInput"
type="text" maxlength="3" placeholder="#">

<a
class="pageNext pageSkip"
href="#?page=8"
title="Next Page (8)">Next Page</a>

<button class="pageButton"
title="Go to chosen page of results">Go</button>

</form>

这里我们看到,先是定义了滑杆的区域,然后是两个分页按钮,可以向前翻和向后翻,最后是一个任意页跳转的页码输入框和一个按钮。

别看这个滑杆很漂亮,会很难实现,其实利用jQuery UI这个东西非常简单。

接下来看看CSS代码:

前后翻页按钮:


.pageSkip {
display: inline-block;
background: transparent url(‘css/monotone_arrow_left_small.png‘) no-repeat -10px -10px;
text-indent: -999em;
background-size: 40px;
opacity: 0.7;
vertical-align: middle;
width: 20px;
height: 20px;
}
.pageNext {
background-image: url(‘css/monotone_arrow_right.png‘);
}

很遗憾,利用了两张箭头图片作为背景,不过,效果也还可以。

然后是输入框:


.pageNumber {
position: relative;
top: -38px;
left: 50%;
font-size: 12px;
color: #333;
width: 60px;
display: block;
text-align: center;
margin-left: -17px;
background: white;
padding: 5px 10px;
border-radius: 3px;
box-shadow: 0 0 5px rgba(151, 38, 20, 0.15);
}
.pageNumber:after {
content: " ";
display: block;
position: absolute;
width: 0;
height: 0;
top: 24px;
border: 6px solid transparent;
border-top-color: white;
}

然后是滑杆的背景,利用了CSS3线性渐变属性:


.ui-slider-horizontal {
width: 60%;
height: 6px;
top: 0px;
margin: 0px 10px 2px;
border-radius: 6px;
position: relative;
display: inline-block;
background: #F46652;
background-image: repeating-linear-gradient(28deg, transparent, transparent 10px, #dd5846 10px, #dd5846 20px);
box-shadow: inset 0 2px 5px rgba(0, 0, 0, 0.4);
}
.ui-slider-horizontal:before {
content: " ";
position: absolute;
width: auto;
height: 16px;
top: -5px;
left: -4px;
right: -4px;
border-radius: 10px;
z-index: -1;
background: linear-gradient(rgba(0, 0, 0, 0.1) 0%, rgba(255, 255, 255, 0.8) 90%);
}
.ui-slider.long .ui-slider-handle {
height: 12px;
width: 30px;
background: #f1f1f1;
display: block;
position: absolute;
border-radius: 50px;
margin-top: -3px;
margin-left: -15px;
text-decoration: none;
background: #f5f5f5;
background: linear-gradient(#f5f5f5 0%, #cccccc 100%);
box-shadow: 0 0 10px 0px rgba(0, 0, 0, 0.35), 0 0 2px 1px rgba(0, 0, 0, 0.15), 0 3px 3px rgba(0, 0, 0, 0.2), 0 7px 5px rgba(0, 0, 0, 0.1), 0 11px 10px rgba(0, 0, 0, 0.1);
}
.ui-slider.long .ui-slider-handle::before,
.ui-slider.long .ui-slider-handle::after {
content: " ";
width: 2px;
height: 40%;
position: absolute;
background: transparent;
border-radius: 0px;
box-shadow: -1px 0px 0px rgba(255, 255, 255, 0.8), 1px 0px 0px rgba(255, 255, 255, 0.8), 2px 0 0 rgba(0, 0, 0, 0.3), 1px 0 0 rgba(0, 0, 0, 0.3) inset;
}
.ui-slider.long .ui-slider-handle::before {
left: 10px;
top: 30%;
}
.ui-slider.long .ui-slider-handle::after {
right: 12px;
top: 30%;
}
@media (max-width: 550px) {
.pagination {
width: auto;
}
.pageForm {
display: block;
margin-top: 20px;
}
.pageInput {
margin: 0;
}
.pageSlider {
width: 260px;
margin: 0 15px;
}
}

最后是js,这是用来实现翻页逻辑的,来看看:


$(document).ready( function() {

var pagesMax = 30;
var pagesMin = 1;
var startPage = 7;
var url = "http://yoursite.com/results?page={{1}}";

$(‘.pagination .pageSlider‘).slider({

value: startPage, max: pagesMax, min: pagesMin,
animate: true,

create: function( event, ui ) {

$(‘.pagination .pageSlider .ui-slider-handle‘).attr({
"aria-valuenow": startPage,
"aria-valuetext": "Page " + startPage,
"role": "slider",
"aria-valuemin": pagesMin,
"aria-valuemax": pagesMax,
"aria-describedby": "pageSliderDescription"
});

$(‘.pagination .pageInput‘).val( startPage );

}

}).on( ‘slide‘, function(event,ui) {

// let user skip 10 pages with keyboard ;)
if( event.metaKey || event.ctrlKey ) {

if( ui.value > $(this).slider(‘value‘) ) {

if( ui.value+9 < pagesMax ) { ui.value+=9; }
else { ui.value=pagesMax }
$(this).slider(‘value‘,ui.value);

} else {

if( ui.value-9 > pagesMin ) { ui.value-=9; }
else { ui.value=pagesMin }
$(this).slider(‘value‘,ui.value);

}

event.preventDefault();

}

$(‘.pagination .pageNumber span‘).text( ui.value );
$(‘.pagination .pageInput‘).val( ui.value );

}).on(‘slidechange‘, function(event, ui) {

$(‘.pagination .pageNumber‘)
.attr(‘role‘,‘alert‘)
.find(‘span‘)
.text( ui.value );

$(‘.pagination .pageInput‘).val( ui.value );

$(‘.pagination .pageSlider .ui-slider-handle‘).attr({
"aria-valuenow": ui.value,
"aria-valuetext": "Page " + ui.value
});

});

$(‘.pagination .pageSlider .ui-slider-handle‘).on( ‘keyup‘ , function(e) {

if( e.which == 13 ) {
var curPage = $(‘.pagination .pageSlider‘).slider(‘value‘);
alert( ‘we would now send you to: ‘ + url.replace( /{{.}}/ , curPage ));
}

});

$(‘.pagination .pageInput‘).on( ‘change‘ , function(e) {
$(‘.pagination .pageSlider‘).slider( ‘value‘, $(this).val() );
});

var tmr;
$(‘.pageSkip‘).on(‘click‘, function(e) {

e.preventDefault();

var $this = $(this);

if( $this.hasClass(‘pageNext‘) ) {
var curPage = $(‘.pagination .pageSlider‘).slider(‘value‘)+1;
} else if( $this.hasClass(‘pagePrev‘) ) {
var curPage = $(‘.pagination .pageSlider‘).slider(‘value‘)-1;
}

$(‘.pagination .pageSlider‘).slider(‘value‘,curPage);

clearTimeout(tmr);
tmr = setTimeout( function() {
alert( ‘we would now send you to: ‘ + url.replace( /{{.}}/ , curPage ));
},1000);

});

function sliderPips( min, max ) {

var pips = max-min;
var $pagination = $(‘.pagination .pageSlider‘);

for( i=0; i<=pips; i++ ) {

var s = $(‘<span class="pagePip"/>‘).css({
left: ‘‘ + (100/pips)*i + ‘%‘
});

$pagination.append( s );

}

var minPip = $(‘<span class="pageMinPip">‘+min+‘</span>‘);
var maxPip = $(‘<span class="pageMaxPip">‘+max+‘</span>‘);
$pagination.prepend( minPip, maxPip );

};sliderPips( pagesMin, pagesMax );

function sliderLabel() {
$(‘.pagination .ui-slider-handle‘).append(
‘<span class="pageNumber">Page <span>‘ +
$(‘.pagination .pageSlider‘).slider(‘value‘) +
‘</span></span>‘);
};sliderLabel();

$(‘.pagination .pageButton‘).on(‘click‘, function(e) {

e.preventDefault();
var curPage = $(‘.pagination .pageSlider‘).slider(‘value‘);
alert( ‘we would now send you to: ‘ +
url.replace( /{{.}}/ , curPage ));

});

});

代码自己展开看吧,另外,和这款分页插件类似的还有一款精美jQuery分页插件 带滑动条分页,也是有滑杆的,只是个人觉得没这款酷,呵呵。

最后,把源代码打包一份,下载地址>>

时间: 2024-10-05 04:52:29

【超酷超实用】CSS3可滑动跳转的分页插件制作教程的相关文章

CSS3 飘带菜单 超酷3D CSS3菜单

之前我们分享过不少漂亮的CSS3菜单,CSS3/jQuery创意盒子动画菜单.CSS3垂直菜单 菜单有立体动画视觉.CSS3多级下拉菜单 弹性展开下拉动画.今天要分享的这款CSS3菜单非常特别,菜单是呈飘带状的,鼠标滑过菜单项时,菜单项会凸显出来,表现的非常立体动感. 下面我们来一起看看实现这款CSS3飘带菜单的具体过程以及源代码.源码主要由HTML代码和CSS代码组成,还比较简单. HTML代码: <div class=’ribbon’><a href=’#'><span&

超酷的CSS3网页加载效果

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-

一个超酷按钮CSS3 返回按钮

<!doctype html> <HTML> <head> <title>一个按钮CSS3 返回按钮</title> <style> .kele:before{ position: absolute; content: " "; border: transparent 14px solid; border-width: 13px 8px ; border-right-color: #CCC; top: 1px; l

精选10款超酷的HTML5/CSS3菜单

今天向大家精选了10款超酷的HTML5/CSS3菜单,给你的网页添加不一样的精彩,一起来围观一下吧. 1.CSS3手风琴菜单 下拉展开带弹性动画 利用CSS3技术可以实现各种各样的网页菜单,我们之前也在CSS3菜单栏目中分享了许多CSS3菜单.今天我们分享的这款是CSS3手风琴菜单,菜单项在展开和收缩的时候菜单项会有弹性动画效果.每一层父级菜单有一个小三角,菜单项在展开的时候这个小三角也会出现动画,非常酷. 在线演示 / 源码下载 2.CSS3动画下拉菜单 带动画图标 利用CSS3可以制作很多精

CSS3超酷移动手机滑动隐藏側边栏菜单特效

这是一组共4种效果很炫酷的CSS3移动手机滑动隐藏側边栏菜单特效. 这四种效果各自是:默认的点击滑动側边栏菜单效果.带3D transforms的滑动側边栏效果.文字缩放和淡入淡出效果的滑动側边栏以及使用translate来实现滑动側边栏的效果. 每个滑动側边栏效果都带有从右到左淡入淡出的滑动过渡效果. 菜单条中的菜单项以一个接一个的方式显示,这样的效果是通过为它们分别加入 transition-delay 来实现的.以下来看看默认的滑动側边栏效果的制作方法. 插件中使用了font-awesom

CSS3超酷移动手机滑动隐藏侧边栏菜单特效

这是一组共4种效果非常炫酷的CSS3移动手机滑动隐藏侧边栏菜单特效.这四种效果分别是:默认的点击滑动侧边栏菜单效果.带3D transforms的滑动侧边栏效果.文字缩放和淡入淡出效果的滑动侧边栏以及使用translate来实现滑动侧边栏的效果. 每一个滑动侧边栏效果都带有从右到左淡入淡出的滑动过渡效果.菜单栏中的菜单项以一个接一个的方式显示,这种效果是通过为它们分别添加 transition-delay 来实现的.下面来看看默认的滑动侧边栏效果的制作方法. 插件中使用了font-awesome

10款基于HTML5+CSS3实现的超酷源码动画

1.基于Bootstrap的jQuery登录表单 这是一款基于Bootstrap的登录表单,表单的外观自然不用说,沿用了Bootstrap的风格,非常漂亮.这款登录表单有一个经过CSS3处理过的头像图片,同时还有HTML5表单字段的简单验证,CSS3的使用,让整个登录表单的投影显得更加立体. 在线演示 源码下载 2.很酷的CSS3多窗口邮件阅读器 这是一款非常炫酷华丽的CSS3邮件阅读器界面,它的特点是你可以同时点开多个邮件,而不必跳转页面.当你阅读完后可以点击关闭按钮关闭当前邮件的窗口.对于这

CSS3实现的超酷超炫的立体开关效果

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-

CSS3打造的超酷的多级扇形菜单

<!DOCTYPE HTML> <html lang=zh-cn> <head> <meta charset=utf-8> <title>CSS3打造的超酷的多级扇形菜单丨梨花粉丨石家庄学前教育</title> <style> *{margin:0px;padding:0px;} body{background:#b1b1b1;margin:0px;padding:0px;font-size:14px;color:#000