js图片向右一张张滚动效果实例代码


Posted in Javascript onNovember 23, 2013

先来张效果图

js图片向右一张张滚动效果实例代码

样式

        #div_left{float:left;width:60px;height:86px;}
        #starScroll{width:843px;height:188px;margin-left:15px;margin-right:15px;padding-top:9px;overflow:hidden;border:1px solid red;float:left;}
        #starScroll #contentScroll{width:500%}
        #starScroll #ScrollOne{float:left;}
        #starScroll #ScrollOne a{float:left;width:204px;height:188px;margin-right:9px;float:left;display:inline;}
        #starScroll #ScrollOne img{width:204px;height:188px;border:0px;}
        #starScroll #ScrollTwo{float:left;}
        #starScroll #ScrollTwo a{float:left;width:204px;height:188px;margin-right:9px;float:left;display:inline;}
        #starScroll #ScrollTwo img{width:204px;height:188px;border:0px;}
        #div_right{float:left;width:60px;height:86px;}
        .arrow{background:url(images/arrow.png) no-repeat;cursor:pointer;height:86px;width:60px;cursor:pointer;display:block;margin-top:50px;}
        .prev{background-position:left top;}
        .prev:hover{background-position:left bottom;}
        .next{background-position:right top;}
        .next:hover{background-position:right bottom;}

html代码

<div>
    <div id="div_left">
        <span id="btn_left" class="arrow prev"></span>
    </div>
    <div id="starScroll">
        <div id="contentScroll">
            <div id="ScrollOne">
                <a href="#" title="1"><img src="images/1.jpg" /></a>
                <a href="#" title="2"><img src="images/2.jpg" /></a>
                <a href="#" title="3"><img src="images/3.jpg" /></a>
                <a href="#" title="4"><img src="images/4.jpg" /></a>
                <a href="#" title="5"><img src="images/5.jpg" /></a>
                <a href="#" title="6"><img src="images/6.jpg" /></a>
                <a href="#" title="7"><img src="images/7.jpg" /></a>
                <a href="#" title="8"><img src="images/8.jpg" /></a>
            </div>
            <div id="ScrollTwo"></div>
        </div>
    </div>
    <div id="div_right">
        <span id="btn_right" class="arrow next"></span>
    </div>
</div>

JS代码

    <script type="text/javascript">
var Scroll=(function(){
    return function(){
        var starScroll = document.getElementById("starScroll"),
            ScrollOne = document.getElementById("ScrollOne"),
            aCollection = ScrollOne.getElementsByTagName("a"),
            aLength = aCollection.length,
            ScrollTwo = document.getElementById("ScrollTwo"),
            btn_left = document.getElementById("btn_left"),
            btn_right = document.getElementById("btn_right");
        var Width = 204,Current = 1,Rate = 7,TimeTimeout=1000,TimeInterval=10,MarginRight=9;
        var SInterval=null,STimeout=null;
        var flag=true;
        function ScrollLeft(){
            var CountWidth = Current*Width+Current*MarginRight,
                SLeftPara=starScroll.scrollLeft;
            if(ScrollTwo.offsetWidth-SLeftPara==0){
                starScroll.scrollLeft=0;
                Current=0;
            }
            if(CountWidth-SLeftPara==0){
                Forward();
            }
            else{
                var v = Math.round((CountWidth-SLeftPara)/Rate);
                v = v<1 ? 1 : v;
                SetScrollLeft(SLeftPara+v);
            }
        }
        function SetScrollLeft(scrollleft){
            starScroll.scrollLeft=scrollleft;
        }
        function Init(){
            flag=false;
            SInterval=setInterval(ScrollLeft,TimeInterval);
        }
        function Forward(){
            clearInterval(SInterval);
            Current++;
            flag=true;
            STimeout = setTimeout(Init,TimeTimeout);
        }
        btn_right.onclick=function(){
            if(flag){
                clearTimeout(STimeout);
                Init();
            }
        }
        function ScrollRight(){
            var CountWidth = Current*Width+Current*MarginRight,
                SLeftPara = starScroll.scrollLeft;
            if(CountWidth-SLeftPara==0){
                Forward();
            }
            else{
                var v = Math.round((CountWidth-SLeftPara)/Rate);
                v = v>-1?-1:v;
                SetScrollLeft(SLeftPara+v);
            }
        }
        btn_left.onclick=function(){
            if(!flag){
                return;
            }
            flag=false;
            clearTimeout(STimeout);
            if(Current==1){
                SetScrollLeft(ScrollTwo.offsetWidth);
                Current=aLength+1;
            }
            Current-=2;
            SInterval = setInterval(ScrollRight,TimeInterval);
        }
        if(aLength>0){
            starScroll.scrollLeft=0;
            ScrollTwo.innerHTML = ScrollOne.innerHTML;
            STimeout = setTimeout(Init,TimeTimeout);
        }
    }
})();
Scroll();
    </script>
Javascript 相关文章推荐
Some tips of wmi scripting in jscript (1)
Apr 03 Javascript
javascript下判断一个对象是否具有指定名称的属性的的代码
Jan 11 Javascript
JavaScript DOM 学习第五章 表单简介
Feb 19 Javascript
jquery ajax方式直接提交整个表单核心代码
Aug 15 Javascript
jQuery Mobile 导航栏代码
Nov 01 Javascript
原生js实现日期联动
Jan 12 Javascript
WordPress中利用AJAX技术进行评论提交的实现示例
Jan 12 Javascript
关于angular js_$watch监控属性和对象详解
Apr 24 Javascript
JavaScript自执行函数和jQuery扩展方法详解
Oct 27 jQuery
详解Vue Elememt-UI构建管理后台
Feb 27 Javascript
js prototype深入理解及应用实例分析
Nov 25 Javascript
Javascript如何实现双指控制图片功能
Feb 25 Javascript
JavaScript实现简单的时钟实例代码
Nov 23 #Javascript
JS控制日期显示的小例子
Nov 23 #Javascript
Jquery 动态循环输出表格具体方法
Nov 23 #Javascript
基于jquery异步传输json数据格式实例代码
Nov 23 #Javascript
JavaScript Ajax Json实现上下级下拉框联动效果实例代码
Nov 23 #Javascript
javascript阻止浏览器后退事件防止误操作清空表单
Nov 22 #Javascript
js获取电脑分辨率的思路及操作
Nov 22 #Javascript
You might like
图书管理程序(一)
2006/10/09 PHP
PHP3 safe_mode 失效漏洞
2006/10/09 PHP
PHP将DateTime对象转化为友好时间显示的实现代码
2011/09/20 PHP
采集邮箱的php代码(抓取网页中的邮箱地址)
2012/07/17 PHP
PHP中session变量的销毁
2014/02/27 PHP
PHP基于单例模式编写PDO类的方法
2016/09/13 PHP
PHP简单实现记录网站访问量功能示例
2018/06/06 PHP
jQuery学习笔记之控制页面实现代码
2012/02/27 Javascript
解决js正则匹配换行问题实现代码
2012/12/10 Javascript
js实现获取焦点后光标在字符串后
2014/09/17 Javascript
18个非常棒的jQuery代码片段
2015/11/02 Javascript
浅谈jQuery双事件多重加载的问题
2016/10/05 Javascript
JavaScript两个变量交换值的实现方法
2017/03/01 Javascript
移动设备手势事件库Touch.js使用详解
2017/08/18 Javascript
浅析Vue自定义组件的v-model
2017/11/26 Javascript
详解从0开始搭建微信小程序(前后端)的全过程
2019/04/15 Javascript
layui表格内容溢出的解决方法
2019/09/06 Javascript
原生js实现随机点餐效果
2019/12/10 Javascript
微信小程序点击按钮动态切换input的disabled禁用/启用状态功能
2020/03/07 Javascript
JavaScript实现指定数量的并发限制的示例代码
2020/03/10 Javascript
全面了解python字符串和字典
2016/07/07 Python
Python 专题一 函数的基础知识
2017/03/16 Python
Python实现KNN邻近算法
2021/01/28 Python
python实现简易通讯录修改版
2018/03/13 Python
详解Python正则表达式re模块
2019/03/19 Python
Django获取model中的字段名和字段的verbose_name方式
2020/05/19 Python
Python selenium键盘鼠标事件实现过程详解
2020/07/28 Python
细说CSS3中的选择符
2008/10/17 HTML / CSS
万宝龙英国官网:Montblanc手表、书写工具、皮革和珠宝
2018/10/16 全球购物
教师申诉制度
2014/01/29 职场文书
2014年效能监察工作总结
2014/11/21 职场文书
军训个人总结
2015/03/03 职场文书
贴吧吧主申请感言
2015/08/03 职场文书
python如何做代码性能分析
2021/04/26 Python
Python中使用Opencv开发停车位计数器功能
2022/04/04 Python
微软Win11 全新照片应用面向 Dev预览版推出 新版本上手体验图集
2022/09/23 数码科技