JS+CSS实现的拖动分页效果实例


Posted in Javascript onMay 11, 2015

本文实例讲述了JS+CSS实现拖动分页效果的方法。分享给大家供大家参考。具体实现方法如下:

<html>
<head>
<title>拖动分页</title>
<meta http-equiv=Content-Type content="text/html; charset=utf-8">
<style>
body{
border:0px;
margin:0px;
overflow:hidden;
background-color:transparent;
}
.page{
position:absolute;
width:700px;
border:1px solid #999;
background-color:#000;
left:425px;
margin-left:-350px;
cursor:default;
z-index:0;
}
ul{
height:320px;
list-style:none;
margin:40px 50px 0px;
padding:0px;
}
li{
width:100%;
height:30px;
line-height:30px;
font-size:14px;
text-align:left;
border-bottom:1px dashed #999;
}
a{
text-decoration:none;
color:#999;
}
a:hover{
font-weight:bold;
}
li span{
float:right;
color:#999;
}
.tip{
display:block;
width:100%;
font-size:12px;
color:#999;
text-align:center;
margin:10px 0px 20px;
}
</style>
</head>
<body onselectstart="return false;">
<script>
function id(obj){
return document.getElementById(obj);
}
var page;
var lm,mx;
var md=false;
var sh=0;
var en=false;
window.onload=function(){
page=document.getElementsByTagName("div");
if(page.length>0){
page[0].style.zIndex=2;
}
for(i=0;i<page.length;i++){
page[i].className="page";
page[i].innerHTML+="<span class=\"tip\">第 "+(i+1)+"/"+page.length+" 页 提示:左右拖拽翻页</span>";
page[i].id="page"+i;
page[i].i=i;
page[i].onmousedown=function(e){
if(!en){
if(!e){e=e||window.event;}
lm=this.offsetLeft;
mx=(e.pageX)?e.pageX:e.x;
this.style.cursor="w-resize";
md=true;
if(document.all){
this.setCapture();
}else{
window.captureEvents(Event.MOUSEMOVE|Event.MOUSEUP);
}
}
}
page[i].onmousemove=function(e){
if(md){
en=true;
if(!e){e=e||window.event;}
var ex=(e.pageX)?e.pageX:e.x;
this.style.left=ex-(mx-lm)+350;
if(this.offsetLeft<75){
var cu=(this.i==0)?page.length-1:this.i-1;
page[sh].style.zIndex=0;
page[cu].style.zIndex=1;
this.style.zIndex=2;
sh=cu;
}
if(this.offsetLeft>75){
var cu=(this.i==page.length-1)?0:this.i+1;
page[sh].style.zIndex=0;
page[cu].style.zIndex=1;
this.style.zIndex=2;
sh=cu;
}
}
}
page[i].onmouseup=function(){
this.style.cursor="default";
md=false;
if(document.all){
this.releaseCapture();
}else{
window.releaseEvents(Event.MOUSEMOVE|Event.MOUSEUP);
}
flyout(this);
}
}
}
function flyout(obj){
if(obj.offsetLeft<75){
if( (obj.offsetLeft + 350 - 20) > -275 ){
obj.style.left=obj.offsetLeft + 350 - 20;
window.setTimeout("flyout(id('"+obj.id+"'));",0);
}else{
obj.style.left=-275;
obj.style.zIndex=0;
flyin(id(obj.id));
}
}
if(obj.offsetLeft>75){
if( (obj.offsetLeft + 350 + 20) < 1125 ){
obj.style.left=obj.offsetLeft + 350 + 20;
window.setTimeout("flyout(id('"+obj.id+"'));",0);
}else{
obj.style.left=1125;
obj.style.zIndex=0;
flyin(id(obj.id));
}
}
}
function flyin(obj){
if(obj.offsetLeft<75){
if( (obj.offsetLeft + 350 + 20) < 425 ){
obj.style.left=obj.offsetLeft + 350 + 20;
window.setTimeout("flyin(id('"+obj.id+"'));",0);
}else{
obj.style.left=425;
en=false;
}
}
if(obj.offsetLeft>75){
if( (obj.offsetLeft + 350 - 20) > 425 ){
obj.style.left=obj.offsetLeft + 350 - 20;
window.setTimeout("flyin(id('"+obj.id+"'));",0);
}else{
obj.style.left=425;
en=false;
}
}
}
</script>
<div>
<ul>
<li><span>2009-4-29 02:16</span><a href=#>东方之珠</a></li>
<li><span>2009-4-29 02:16</span><a href=#>啊!爱人</a></li>
<li><span>2009-4-29 02:16</span><a href=#>宁静温泉</a></li>
<li><span>2009-4-29 02:16</span><a href=#>你的样子</a></li>
<li><span>2009-4-29 02:16</span><a href=#>恋曲1980</a></li>
<li><span>2009-4-29 02:16</span><a href=#>恋曲1980</a></li>
<li><span>2009-4-29 02:16</span><a href=#>恋曲2000</a></li>
<li><span>2009-4-29 02:16</span><a href=#>亚细亚的孤儿</a></li>
<li><span>2009-4-29 02:16</span><a href=#>童年</a></li>
</ul>
</div>
<div>
<ul>
<li><span>2009-4-29 02:16</span><a href=#>弹唱词</a></li>
<li><span>2009-4-29 02:16</span><a href=#>飞车</a></li>
<li><span>2009-4-29 02:16</span><a href=#>东方之珠</a></li>
<li><span>2009-4-29 02:16</span><a href=#>滚滚红尘</a></li>
<li><span>2009-4-29 02:16</span><a href=#>光阴的故事</a></li>
<li><span>2009-4-29 02:16</span><a href=#>之乎者也</a></li>
<li><span>2009-4-29 02:16</span><a href=#>现象七十二变</a></li>
<li><span>2009-4-29 02:16</span><a href=#>乡愁四韵</a></li>
<li><span>2009-4-29 02:16</span><a href=#>穿过你的黑发我的手</a></li>
</ul>
</div>
<div>
<ul>
<li><span>2009-4-29 02:16</span><a href=#>大兵歌</a></li>
<li><span>2009-4-29 02:16</span><a href=#>黄色面孔</a></li>
<li><span>2009-4-29 02:16</span><a href=#>台北红玫瑰</a></li>
</ul>
</div>
</body>
</html>

希望本文所述对大家的javascript程序设计有所帮助。

Javascript 相关文章推荐
JavaScript中的集合及效率
Jan 08 Javascript
javascript 动态修改样式和层叠样式表代码
Apr 27 Javascript
CSS和JS标签style属性对照表(方便js开发的朋友)
Nov 11 Javascript
JS限制Textarea文本域字符个数的具体实现
Aug 02 Javascript
jQuery中校验时间格式的正则表达式小结
Sep 22 Javascript
jQuery的cookie插件实现保存用户登陆信息
Apr 15 Javascript
jQuery插件开发的五种形态小结
Mar 04 Javascript
js创建对象的方法汇总
Jan 07 Javascript
jQuery判断邮箱格式对错实例代码讲解
Apr 12 jQuery
详解Angular路由 ng-route和ui-router的区别
May 22 Javascript
Vue 实现树形视图数据功能
May 07 Javascript
js实现简单进度条效果
Mar 25 Javascript
浅谈jQuery构造函数分析
May 11 #Javascript
在JavaScript中正确引用bind方法的应用
May 11 #Javascript
jQuery实现页面内锚点平滑跳转特效的方法总结
May 11 #Javascript
javascript实现验证IP地址等相关信息代码
May 10 #Javascript
招聘网站基于jQuery实现自动刷新简历
May 10 #Javascript
javascript实现获取字符串hash值
May 10 #Javascript
Javascript实现计算个人所得税
May 10 #Javascript
You might like
Apache2 httpd.conf 中文版
2006/11/17 PHP
10个php函数实用却不常见
2015/10/13 PHP
yii数据库的查询方法
2015/12/28 PHP
Yii2使用swiftmailer发送邮件的方法
2016/05/03 PHP
laravel创建类似ThinPHP中functions.php的全局函数
2016/11/26 PHP
PHP实现一个限制实例化次数的类示例
2019/09/16 PHP
php变量与字符串的增删改查操作示例
2020/05/07 PHP
为Yahoo! UI Extensions Grid增加内置的可编辑器
2007/03/10 Javascript
DOMAssitant最新版 DOMAssistant 2.5发布
2007/12/25 Javascript
jquery 子窗口操作父窗口的代码
2009/09/21 Javascript
javascript 隔行换色函数代码
2010/10/24 Javascript
jQuery层次选择器选择元素使用介绍
2013/04/18 Javascript
jquery使用经验小结
2015/05/20 Javascript
基于jquery实现动态竖向柱状条特效
2016/02/12 Javascript
jQuery实现选项联动轮播效果【附实例】
2016/04/19 Javascript
浅谈Nodejs应用主文件index.js
2016/08/28 NodeJs
layui问题之模拟select点击事件的实例讲解
2018/08/15 Javascript
Vue安装浏览器开发工具的步骤详解
2019/05/12 Javascript
bootstrap table列和表头对不齐的解决方法
2019/07/19 Javascript
layui 上传文件_批量导入数据UI的方法
2019/09/23 Javascript
小程序使用分包的示例代码
2020/03/23 Javascript
vue 使用post/get 下载导出文件操作
2020/08/07 Javascript
JS实现密码框效果
2020/09/10 Javascript
[01:05:59]Mineski vs Secret 2019国际邀请赛淘汰赛 败者组 BO3 第二场 8.22
2019/09/05 DOTA
python list 合并连接字符串的方法
2013/03/09 Python
Flask入门之上传文件到服务器的方法示例
2018/07/18 Python
Python列表切片常用操作实例解析
2020/03/10 Python
python 实现IP子网计算
2021/02/18 Python
html5的input的required使用中遇到的问题及解决方法
2018/04/24 HTML / CSS
世界上最大的专业美容用品零售商:Sally Beauty
2017/07/02 全球购物
官方授权图形T恤和服装:Fifth Sun
2019/06/12 全球购物
内容编辑个人求职信
2013/12/10 职场文书
心理健康课教学反思
2014/02/13 职场文书
个人委托书怎么写
2014/04/04 职场文书
新学期开学寄语2016
2015/12/04 职场文书
详解Vue的列表渲染
2021/11/20 Vue.js