JS按钮控制内容左右滚动

运行效果如下:

代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>JS按钮控制内容左右滚动</title>
    <style>
    *{ padding: 0; margin: 0;}
    li{ list-style: none;}
    .clearfix{ *zoom:1;}
    .clearfix:after{ clear: both; display: block; content: ""; height: 0; overflow: hidden;}
    a{ text-decoration: none; color: #333;}
    a:hover{ color: #f00;}
    .center{ text-align: center; margin-top: 20px; font-family: "Microsoft Yahei";}
    #box{ width: 700px; margin: 20px auto; border: 1px solid #ccc; background: #fff; font-size: 12px; position: relative; height: 120px;}
    #left ,#right{ position: absolute; z-index: 2px; cursor: pointer; background: #eee; width: 20px; text-align: center; height: 100%; line-height: 2.4; }
    #left{ left: 0;}
    #right{ right: 0;}
    .content{ margin-left: 20px; width: 660px; height: 120px; overflow: hidden; position: relative; background: #ccc;}
    #wrap{ position: absolute; left: 0; width: 1500px;}
    #wrap ul{ padding: 10px 0;}
    #wrap li{ float: left; width: 120px; height: 100px; background: purple; margin-left: 10px;}
    </style>
</head>
<body>
    <h3 class="center">先向左滚动试试,然后向右滚动试试</h3>
    <div id="box">
        <a id="left" href="javascript:;">向左滚动</a>
        <a id="right" href="javascript:;">右下滚动</a>
        <div class="content">
            <div id="wrap">
                <ul class="clearfix">
                    <li>1</li>
                    <li>2</li>
                    <li>3</li>
                    <li>4</li>
                    <li>5</li>
                    <li>6</li>
                    <li>7</li>
                    <li>8</li>
                    <li>9</li>
                    <li>10</li>
                </ul>
            </div>
        </div>
    </div>
    <script>

    // 封装getStyle函数
    function getStyle(obj,attr){
        return obj.currentStyle ? obj.currentStyle[attr] : getComputedStyle(obj,false)[attr];
    }

    window.onload = function(){
        var oBox = document.getElementById(‘box‘);
        // alert(getStyle(oBox,‘width‘));        // 700px
        var oLeft = document.getElementById(‘left‘);
        var oRight = document.getElementById(‘right‘);
        var oWrap = document.getElementById(‘wrap‘);
        var num = 0;
        var timer = null;

        oLeft.onmousedown = function(){
            oWrap.timer = setInterval(function(){
                var dis = parseInt(getStyle(oWrap,‘left‘)) - 5;
                if(dis < -650){
                    dis = -650;
                }
                oWrap.style.left = dis + ‘px‘;
            },30);
        };

        oLeft.onmouseup = function(){
            clearInterval(oWrap.timer);
        };

        oRight.onmousedown = function(){
            oWrap.timer = setInterval(function(){
                var dis = parseInt(getStyle(oWrap,‘left‘)) + 5;
                if(dis > 0){
                    dis = 0;
                }
                oWrap.style.left = dis + ‘px‘;
            },30);
        };

        oRight.onmouseup = function(){
            clearInterval(oWrap.timer);
        };
    };
    /*function getStyle(obj ,attr){
        return obj.currentStyle ? obj.currentStyle[attr] :getComputedStyle(obj ,false)[attr];
    }

    window.onload = function(){
        var oBox = document.getElementById(‘box‘);
        // alert(getStyle(oBox,‘width‘))        // 168px
        var oUp = document.getElementById(‘up‘);
        var oDown = document.getElementById(‘down‘);
        var oWrap = document.getElementById(‘wrap‘);
        var num = 0;
        var timer = null;

        // 鼠标按下向上链接,开启定时器
        oUp.onmousedown = function(){
            oWrap.timer = setInterval(function(){
                // 先获取内容的top值[获取的是字符串,所以要用parseInt转换成数字],然后让它每隔300ms减少5px使之向上运动
                var dis = parseInt(getStyle(oWrap,‘top‘)) - 5;
                // 这里的200是根据当前案例设置的,可以根据实际情况调整数值
                if( dis < -220){
                    dis = -220;
                }
                oWrap.style.top = dis + ‘px‘;
            },30);
        };

        // 鼠标移开向上链接,关闭定时器
        oUp.onmouseup = function(){
            clearInterval(oWrap.timer);
        };

        // 鼠标按下向下链接,开启定时器
        oDown.onmousedown = function(){
            oWrap.timer = setInterval(function(){
                var dis = parseInt(getStyle(oWrap,‘top‘)) + 5;
                if(dis > 0){
                    dis = 0;
                }
                oWrap.style.top = dis + ‘px‘;
            },30);
        };

        // 鼠标移开向下链接,关闭定时器
        oDown.onmouseup = function(){
            clearInterval(oWrap.timer);
        };
    };*/
    </script>
</body>
</html>
时间: 2024-12-09 12:58:53

JS按钮控制内容左右滚动的相关文章

jquery 文字滚动大全 scroll 支持文字或图片 单行滚动 多行滚动 带按钮控制滚动

<!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-

js如何控制css伪元素内容(before,after)

原文:js如何控制css伪元素内容(before,after) js如何控制css伪元素(before,after) @(CSS 笔记)[伪元素|css3]曾经遇到的问题,在对抗UC浏览器屏蔽需要把内容输出到css 伪元素中输出.有个疑问如何用js控制它.于是在segmentfault提问,如下是对问题的整理: 如何用js控制css伪类after 简单粗暴的方式: 简单粗暴的方式,直接在html中添加样式覆盖掉之前样式规则 <style> p:after{content:'我是后缀'} <

利用JS实现键盘控制下拉列表的滚动

昨晚自己倒腾的.估计这种代码只有自己看得懂了.第一篇博文,纪念一下. 代码插入这个还是比较方便的~~ var keyHandler=function(event){ var e = event || window.event || arguments.callee.caller.arguments[0]; var hoverCSS={ color: '#FFF', 'background-color': '#6E9DE4' }; var backCSS={ color:'#000', 'back

h5之scrollIntoView控制页面元素滚动

如果滚动页面也是DOM没有解决的一个问题.为了解决这个问题,浏览器实现了一下方法,以方便开发人员如何更好的控制页面的滚动.在各种专有方法中,HTML5选择了scrollIntoView()作为标准方法.scrollIntoView()可以在所有的HTML元素上调用,通过滚动浏览器窗口或某个容器元素,调用元素就可以出现在视窗中.如果给该方法传入true作为参数,或者不传入任何参数,那么窗口滚动之后会让调动元素顶部和视窗顶部尽可能齐平.如果传入false作为参数,调用元素会尽可能全部出现在视口中(可

csu 1770按钮控制彩灯实验(树状数组)

1770: 按钮控制彩灯实验 Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 194  Solved: 65[Submit][Status][Web Board] Description 应 教学安排,yy又去开心的做电学实验了.实验的内容分外的简单一串按钮通过编程了的EEPROM可以控制一串彩灯.然而选择了最low的一种一对一的控制 模式,并很快按照实验指导书做完实验的yy马上感觉到十分无趣.于是他手指在一排按钮上无聊的滑来滑去,对应的彩灯也不断的

页面滚动显示或隐藏元素Headroom.js插件帮助你实现滚动效果

Headroom.js 是什么? Headroom.js 是一个轻量级.高性能的JS小工具(不依赖任何工具库!),它能在页面滚动时做出响应.此页面顶部的导航条就是一个鲜活的案例,当页面向下滚动时,导航条消失,当页面向上滚动时,导航条就出现了. Headroom.js 有什么用? 固定页头(导航条)可以方便用户在各个页面之间切换.但是这也会带来些问题…本文原创博客地址:http://www.cnblogs.com/unofficial官网地址:www.pushself.com) 大屏幕一般都是宽度

csu 1770: 按钮控制彩灯实验

1770: 按钮控制彩灯实验 Submit Page   Summary   Time Limit: 1 Sec     Memory Limit: 128 Mb     Submitted: 341     Solved: 127 Description 应教学安排,yy又去开心的做电学实验了.实验的内容分外的简单一串按钮通过编程了的EEPROM可以控制一串彩灯.然而选择了最low的一种一对一的控制模式,并很快按照实验指导书做完实验的yy马上感觉到十分无趣.于是他手指在一排按钮上无聊的滑来滑去

js原生 + jQuery实现页面滚动字幕

js原生/jQuery实现页面滚动字幕效果 17:45:49 在新闻列表或者文章列表信息等页面中很容易要求实现字幕滚动的效果,以下为简单的实现页面中滚动字幕的效果 1.jQuery实现页面滚动字幕效果 代码如下: <div class="box"> <ul class="list"> <li>这是滚动加载的第1条数据</li> <li>你猜猜这是第几条滚动加载的文字</li> <li>

Js间断/连续的文字滚动代码

Js间断/连续的文字滚动代码 Js文字滚动代码,可设置间断滚动和连续滚动.滚动时是向上滚动的,控制Li列表滚动,兼容性表现地不错,兼容IE/火狐.Opera等浏览器,代码如下: 01 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"> 02 <html> 03 <head> 04 <title>文字间隔滚动代码-兼容IE和FireFox</title>