需要jquery库支持

代码如下:

<!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-Type" content="text/html; charset=utf-8" />
<title>ZJ_slider兼容Firefox,IE,Opera,Safari的滑动条,拖动条</title>
<style type="text/css">
div{margin:0px;padding:0px;}
.leftStyle{background:#9F9;width:10px;border:1px solid #999;cursor:default;}
.rightStyle{background:#9f9;width:10px;border:1px solid #999;cursor:default}
.sliderStyle{border:1px solid #999;}
.sliderBlockStyle{background:#CCC; width:40px;}
</style>
<script type="text/javascript" src="jquery.js"></script>
</head>
<body>
<div id="x1" style="margin:auto;"></div>
<div id="re"></div>
<script type="text/javascript">
//--JZ_slider for IE,FF,Opera,Safari
//--Lisences: to anybody,doing anything for any purpose
//--author:mender
//blog:http://hi.baidu.com/%D4%FA%BF%A1/blog/
//postqustion:http://hi.baidu.com/%D4%FA%BF%A1/blog/item/c5fd23d3a7febb1e3bf3cf7d.html
function ZJ_slider(){
this.objid    = arguments[0]||"ZJ_slider";
this.leftBtnStyle  = arguments[1]||"leftStyle";
this.rightBtnStyle  = arguments[2]||"rightStyle";
this.sliderStyle  = arguments[3]||"sliderStyle";
this.sliderBlockStyle = arguments[4]||"sliderBlockStyle";
this.sliderMax   = arguments[5]||255;
this.sliderMin   = arguments[6]||0;
this.step    = arguments[7]||1;
this.width    = arguments[8]||255;
this.height    = arguments[9]||25;
this.callback   = arguments[10]||"ZJ_callback";
this.initPoint   = this.sliderMin;
this.oName    = "";
//this.moveStatus   = 0;
}
moveStatus=0;
ZJ_slider.prototype.init=function (){
ostr="#"+this.objid;
$(ostr).html("");
$(ostr).css("position","relative");
$(ostr).width(this.width);
$(ostr).height(this.height);
$(ostr).append("<div id='leftBtn' οnclick='"+this.oName+".moveLeft()' class='"+this.leftBtnStyle+"' style='float:left;position:relative;'><<div>");
$(ostr).append("<div id='slider' class='"+this.sliderStyle+"' style='float:left;position:relative;'></div>")
$(ostr).append("<div id='rightBtn'  οnclick='"+this.oName+".moveRight()' class='"+this.rightBtnStyle+"' style='float:left;position:relative;'>></div>");
$("#slider").width(parseInt($(ostr).width())-parseInt($("#leftBtn").width())-parseInt($("#rightBtn").width())-20);
$("#slider").append("<div id='sliderBlock' class='"+this.sliderBlockStyle+"' style='position:absolute;'></div>");
if (this.browser()=="ipad"){
document.getElementById("sliderBlock").addEventListener("touchstart",this.touchStart,false);
}
else{
document.getElementById("sliderBlock").setAttribute("onmousedown",this.oName+".moveStart(event)");
}
$("#leftBtn").height(this.height);
$("#slider").height(this.height);
$("#rightBtn").height(this.height);
$("#sliderBlock").height(this.height);
this.setPoint(this.initPoint);
alert(navigator.userAgent);
}
ZJ_slider.prototype.touchStart=function(){
moveStatus=1;
document.addEventListener("touchmove",this.touchMove,false);
document.addEventListener("touchend",this.touchEnd,false);
alert("开始了");
}
ZJ_slider.prototype.touchMove=function (e){
e.preventDefault();
if(!e.touches.length) return;
if (moveStatus==1){
if (parseInt($("#sliderBlock").css("left"))>=0&& parseInt($("#sliderBlock").css("left"))<=(parseInt($("#slider").width())-parseInt($("#sliderBlock").width()))){
offsetL=e.clientX-parseInt(getSliderBlockPosition(document.getElementById("slider")))-parseInt($("#sliderBlock").width())/2;
if (offsetL<0) offsetL=0;
if(offsetL>parseInt($("#slider").width())-parseInt($("#sliderBlock").width())){                      offsetL=parseInt($("#slider").width())-parseInt($("#sliderBlock").width());                                                               }
$("#sliderBlock").css("left",offsetL);
ZJ_sldr.callb();
}
}
}
ZJ_slider.prototype.touchEnd=function(e){
moveStatus=0;
document.removeEventListener("touchmove",this.touchMove,false);
document.removeEventListener("touchend",this.touchEnd,false);
}
ZJ_slider.prototype.moveLeft=function(){
if (this.getPoint()-this.sliderMin>this.step){
this.setPoint(this.getPoint()-this.step);
}else if (this.getPoint()>1){
this.setPoint(this.sliderMin);
}
}
ZJ_slider.prototype.moveRight=function (){
if (this.sliderMax-this.getPoint()>this.step){
this.setPoint(this.getPoint()+this.step);
}else if (this.sliderMax-this.getPoint()>1){
this.setPoint(this.sliderMax);
}
}
ZJ_slider.prototype.getPoint=function(){
return Math.floor(this.sliderMin+(parseInt($("#sliderBlock").css("left"))*(this.sliderMax-this.sliderMin)/(parseInt($("#slider").width())-parseInt($("#sliderBlock").width()))));
}
ZJ_slider.prototype.browser=function (){
var ua=navigator.userAgent
ua=ua.toLocaleLowerCase();
return ua.match("msie")? ua.match("msie"):
ua.match("firefox")? ua.match("firefox"):
ua.match("chrome")? ua.match("chrome"):
ua.match("opera")? ua.match("opera"):
ua.match("ipad")? ua.match("ipad"):
ua.match("safari")? ua.match("safari"):"Unknown Browser";
return ua;
}
ZJ_slider.prototype.moveStart=function (){
moveStatus=1;
document.οnmοuseup=this.moveStop;
document.οnmοusemοve=this.moving;
}
ZJ_slider.prototype.moving=function (e){
e=e? e:window.event;
if (moveStatus==1){
if (parseInt($("#sliderBlock").css("left"))>=0&& parseInt($("#sliderBlock").css("left"))<=(parseInt($("#slider").width())-parseInt($("#sliderBlock").width()))){
offsetL=e.clientX-parseInt(getSliderBlockPosition(document.getElementById("slider")))-parseInt($("#sliderBlock").width())/2;
if (offsetL<0) offsetL=0;
if(offsetL>parseInt($("#slider").width())-parseInt($("#sliderBlock").width())){                      offsetL=parseInt($("#slider").width())-parseInt($("#sliderBlock").width());                                                               }
$("#sliderBlock").css("left",offsetL);
ZJ_sldr.callb();
}
}
}
ZJ_slider.prototype.moveStop=function(){
moveStatus=0;
document.οnmοusemοve="";
document.οnmοuseup="";
//document.getElementById("sliderBlock").setAttribute("onmousemove","");
//document.getElementById("sliderBlock").setAttribute("onmouseup","");
}
//ZJ_slider.prototype.getSliderBlockPosition=function (e){
function getSliderBlockPosition(e){
var l=e.offsetLeft;
var t=e.offsetTop;
while(e=e.offsetParent) {
t+=e.offsetTop;
l+=e.offsetLeft;
}
return l;
}
ZJ_slider.prototype.setPoint=function (p){
if (p>ZJ_slider.sliderMax){p=ZJ_slider.sliderMax}
if(p<ZJ_slider.sliderMin){p=ZJ_slider.sliderMin}
p=p-this.sliderMin;
p=Math.floor(parseInt(parseInt(p)*(parseInt($("#slider").width())-parseInt($("#sliderBlock").width()))/parseInt(this.sliderMax-this.sliderMin)));
$("#sliderBlock").css("left",p);
this.callb();
}
ZJ_slider.prototype.callb=function (){
eval(this.callback+"("+this.getPoint()+")");
}
function ccs(x){
$("#re").html("当前值为:"+x);
}
var s=new ZJ_slider("x1");
s.initPoint=100;//初始位置
s.step=10;//左右移动时的步进值
s.oName="s";//实例名称
s.sliderMin=50;
s.callback="ccs";//回调函数名称
s.init();//初始化
ZJ_sldr=s;//这句是必须要的,不然会出错,ZJ_sldr=你定义的实例名称,如这里的s=new ZJ_slider的s
</script>
</body>
</html>

ZJ_slider兼容Firefox,IE,Opera,Safari的滑动条,拖动条相关推荐

  1. [乐意黎原创] JS根据useAgent来判断edge, ie, firefox, chrome, opera, safari 等浏览器的类型及版本

    JS根据浏览器的useAgent来判断浏览器的类型. userAgent 属性是一个只读的字符串,声明了浏览器用于 HTTP 请求的用户代理头的值. javascript语法:navigator.us ...

  2. 怎么实现在FireFox IE Opera Safari 都可以正常播放WMV和MOV的网页播放器代码

    最近要做一个网页播放器的代码,用户需要在FireFox , IE , Opera , 甚至苹果下的 Safari 浏览器中都可以正常的播放. 调试了许久发现不加任何播放器属性的Embed标签可以在所有 ...

  3. css hack(ie6-9,firefox,chrome,opera,safari)

    来源:http://www.cnblogs.com/WuQiang/archive/2011/08/23/2150240.html 在这个浏览器百花争鸣的时代,作为前端开发的我们为了我们漂亮的设计能适 ...

  4. [JS] - onmusewheel事件(兼容IE,FF,opera,safari,chrome)

    来源:http://www.denisdeng.com/?p=685 相信用户在浏览Google Map 时,都注意到向上或向下滚动鼠标可以使地图放大或缩小.其实,对于鼠标滚动我们并不陌生.但要给一个 ...

  5. FireFox IE Opera Safari 都可以正常播放WMV和MOV的网页播放器代码

    < DOCTYPE html PUBLIC -WCDTD XHTML StrictEN httpwwwworgTRxhtmlDTDxhtml-strictdtd> WMV 格式 : < ...

  6. 如何检测Safari,Chrome,IE,Firefox和Opera浏览器?

    我有5个FF,Chrome,IE,Opera和Safari插件/扩展程序. 如何识别用户浏览器并重定向(一旦单击安装按钮)下载相应的插件? #1楼 简单的一行JavaScript代码将为您提供浏览器的 ...

  7. 浏览器专属 CSS Hack:区分 Firefox / Opera / Safari / Internet Explorer

    浏览器专属 CSS Hack:区分 Firefox / Opera / Safari / Internet Explorer CSS Hack 是在标准 CSS 没办法兼容各浏览器显示效果时才会用上的 ...

  8. 五大浏览器的历史、差异、对CSS和ES的支持 内核:Trident、Gecko、Blink、Webkit 浏览器:IE Opera Safari Firefox Chrome

    五大浏览器的历史.差异.对CSS和ES的支持 内核:Trident.Gecko.Blink.Webkit 浏览器:IE Opera Safari Firefox Chrome 历史 Internet ...

  9. [完美]原生JS获取浏览器版本判断--支持Edge,IE,Chrome,Firefox,Opera,Safari,以及各种使用Chrome和IE混合内核的浏览器...

    [完美]原生JS获取浏览器版本判断--支持Edge,IE,Chrome,Firefox,Opera,Safari,以及各种使用Chrome和IE混合内核的浏览器 原文:[完美]原生JS获取浏览器版本判 ...

最新文章

  1. Maven项目的基本创建步骤
  2. mysql开发要注意什么_Mysql日常开发注意要点
  3. 操作系统学习---进程
  4. 用计算机控制人造卫星和导弹发射,广西成人高校计算机实用基础统考理论试题(...
  5. docker-compose nginx + ssl配置
  6. Rocksdb参数总结
  7. 【Windows脚本】打印机脚本2-共享打印机
  8. 基于J2EE的网上购书系统(SSM框架)
  9. 紫外线测光仪的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  10. 医疗图像论文笔记二:《Learning to recognize Abnormalities in Chest X-Rays with Location-Aware Dense Networks》
  11. 禁毒海报|国际禁毒日海报素材图片大全
  12. 【matlab】正弦波、方波、三角波、白噪声等8种基本信号
  13. SQL数据查询——单表查询(二)
  14. Android投屏到Windows电脑
  15. YOLO&Deepsort的车速&车流量检测系统(源码&部署教程)
  16. 1168: 6112不吉利的日期
  17. IIS管理器和文件流
  18. Word使用心得:邮件合并
  19. .chm文件打不开或者不显示具体内容
  20. 【微服务】什么是微服务?微服务与分布式的区别?微服务怎么具体实践微服务?服务端发现和客户端发现

热门文章

  1. 做最漂亮的玩Android小程序第三版
  2. java用scanner循环输入_Scanner怎么实现连续输入
  3. 研磨设计模式之 装饰模式-3
  4. npm run serve报错 C:\Users\Administrator\AppData\Roaming\npm-cache\_logsZ-
  5. 一款好用的时间控件(时间选择器)-jeDate
  6. Unity中的自动布局(AutoLayout)
  7. SylixOS应用层中访问串口设备
  8. Moco测试知多少?什么是moco?如何使用?
  9. JDBC(模拟银行转账)
  10. 虚拟机设置静态ip(固定ip地址)