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 相关文章推荐
在视频前插入广告
Nov 20 Javascript
Javascript 鼠标移动上去 滑块跟随效果代码分享
Nov 23 Javascript
js获取select标签的值且兼容IE与firefox
Dec 30 Javascript
js学习之----深入理解闭包
Nov 21 Javascript
js导出Excel表格超出26位英文字符的解决方法ES6
Nov 15 Javascript
JS设计模式之命令模式概念与用法分析
Feb 06 Javascript
解决Layui 表单提交数据为空的问题
Aug 15 Javascript
从零开始用electron手撸一个截屏工具的示例代码
Oct 10 Javascript
Vue keepAlive 数据缓存工具实现返回上一个页面浏览的位置
May 10 Javascript
pm2启动ssr失败的解决方法
Jun 29 Javascript
layui表单提交到后台自动封装到实体类的方法
Sep 12 Javascript
vue实现滚动鼠标滚轮切换页面
Dec 13 Vue.js
浅谈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
一篇有意思的技术文章php介绍篇
2010/10/26 PHP
php与paypal整合方法
2010/11/28 PHP
PHP超级全局变量数组小结
2012/10/04 PHP
php调整gif动画图片尺寸示例代码分享
2013/12/05 PHP
php实现用于删除整个目录的递归函数
2015/03/16 PHP
thinkPHP+ajax实现统计页面pv浏览量的方法
2017/03/15 PHP
详解PHP使用日期时间处理器Carbon人性化显示时间
2017/08/10 PHP
php进行md5加密简单实例方法
2019/09/19 PHP
Javascript加载速度慢的解决方案
2014/03/11 Javascript
jQuery多项选项卡的实现思路附样式及代码
2014/06/03 Javascript
javascript实现带下拉子菜单的导航菜单效果
2015/05/14 Javascript
vue事件修饰符和按键修饰符用法总结
2017/07/25 Javascript
关于Stream和Buffer的相互转换详解
2017/07/26 Javascript
详解升级react-router 4 踩坑指南
2017/08/14 Javascript
手写Node静态资源服务器的实现方法
2018/03/20 Javascript
微信{"errcode":48001,"errmsg":"api unauthorized, hints: [ req_id: 1QoCla0699ns81 ]"}
2018/10/12 Javascript
在vue中使用echarts图表实例代码详解
2018/10/22 Javascript
详解vue2.0 资源文件assets和static的区别
2018/11/27 Javascript
three.js实现炫酷的全景3D重力感应
2018/12/30 Javascript
Python连接phoenix的方法示例
2017/09/29 Python
python筛选出两个文件中重复行的方法
2018/05/31 Python
python 使用pdfminer3k 读取PDF文档的例子
2019/08/27 Python
pytorch实现特殊的Module--Sqeuential三种写法
2020/01/15 Python
解决tensorflow打印tensor有省略号的问题
2020/02/04 Python
Pyinstaller 打包发布经验总结
2020/06/02 Python
详解CSS3阴影 box-shadow的使用和技巧总结
2016/12/03 HTML / CSS
酷瑞网络科技面试题
2012/03/30 面试题
《石榴》教学反思
2014/03/02 职场文书
实用的简历自我评价
2014/03/06 职场文书
《飞向蓝天的恐龙》教学反思
2014/04/09 职场文书
教师政风行风评议心得体会
2014/10/21 职场文书
2014年保卫科工作总结
2014/12/05 职场文书
党校学习个人总结
2015/02/15 职场文书
婚姻出轨保证书
2015/05/08 职场文书
小学六一主持词开场白
2015/05/28 职场文书
Python循环之while无限迭代
2022/04/30 Python